跳轉到

複製並發佈

你可以將任一問卷作為樣板,複製後進行發佈,其內容大致與原問卷相同,僅能調整下列設定:

  • 問卷標題
  • 調查時間
  • 調查對象

完整範例如下:

var model = new CloneAndPublishReqModel(){
    SourceQueCode = "原問卷代號",
    StartTime = DateTimeOffset.Now,
    EndTime = DateTimeOffset.Now.AddHours(1),
    NewTopic = "新問卷標題", 
    TopicMode = UpdateTopicMode.Append,
    SurveyUsers = new List<UserSetItem>()
    {
        UserSetItem.CreateEmployeeItem(user)
    }
};

var result = await UofxService.EIP.Que.CloneAndPublish(model);

輸入參數說明

參數 型態 必填 預設值 說明
SourceQueCode string V 要複製的來源問卷代號
StartTime DateTimeOffset V 調查時間-起
EndTime DateTimeOffset V 調查時間-迄
NewTopic string 新問卷標題,如果沒給值則會套用原問卷標題;有給值則將參考 TopicMode 參數設定修改標題。
TopicMode enum Override 標題更新模式
SurveyUsers UserSet 物件 調查對象,如果沒有給值則會套用原問卷的設定。

TopicMode 參數是 enum 型態,有三種模式

  • Override: 覆蓋原標題
  • Prepend: 附加在原標題之前
  • Append: 附加在原標題之後

回傳物件說明

此方法並不保證一定成功,因此請參考回傳的物件 ReleaseQueCheckViewModel 內容進行後續處理。

發佈成功

只有當 HasSettingErrorHasSettingError 都為 false 時,才代表複製並發佈成功。

public class ReleaseQueCheckViewModel
{
    /// <summary>
    ///  有問卷設定的error
    /// </summary>
    public bool HasSettingError { get; set; }
    /// <summary>
    ///  有內容編排的error
    /// </summary>
    public bool HasContentError { get; set; }

    /// <summary>
    ///  問卷設定錯誤ErrorId
    /// </summary>
    public List<string> SettingErrors { get; set; }

    /// <summary>
    /// 問卷內容錯誤
    /// </summary>
    public QuestionError QuestionErrors { get; set; }
}

/// <summary>
/// 問卷內容錯誤
/// </summary>
public class QuestionError
{
    public List<string> Errors { get; set; }

    public List<ItemDetailError> Items { get; set; }
}

public class ItemDetailError
{
    /// <summary>
    ///  題目id
    /// </summary>
    // public Guid Id { get; set; }

    /// <summary>
    /// 排序位置
    /// </summary>
    public int Seq { get; set; }

    /// <summary>
    /// 錯誤代碼
    /// </summary>
    public string ErrorCode { get; set; }
}

問卷內容錯誤

HasContentError = true, 問卷內容錯誤都是原問卷內容造成的,因此請先修改原問卷再重新複製並發佈。