複製並發佈
你可以將任一問卷作為樣板,複製後進行發佈,其內容大致與原問卷相同,僅能調整下列設定:
- 問卷標題
- 調查時間
- 調查對象
完整範例如下:
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
內容進行後續處理。
發佈成功
只有當 HasSettingError
和 HasSettingError
都為 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
, 問卷內容錯誤都是原問卷內容造成的,因此請先修改原問卷再重新複製並發佈。