/// <summary> /// 创建输入表单 /// </summary> /// <param name="model"></param> /// <param name="errors"></param> /// <returns></returns> private AdaptiveCard CreateInputFormAdaptiveCard(InputWorkOrderModel model, IEnumerable <string> errors = null) { var card = new AdaptiveCard(new AdaptiveSchemaVersion(1, 3)) { Body = new List <AdaptiveElement> { new AdaptiveTextBlock("Subject"), new AdaptiveTextInput { Id = "subject", IsRequired = true, ErrorMessage = "Subject is required!", Value = model.Subject }, new AdaptiveTextBlock("Description"), new AdaptiveTextInput { Id = "description", IsRequired = true, ErrorMessage = "Description is required!", IsMultiline = true, Value = model.Description } }, Actions = new List <AdaptiveAction> { new AdaptiveSubmitAction { Title = "Submit" } } }; return(card); }
private async Task <AddRequestRequestModel> CreateRequestFromModelAsync(InputWorkOrderModel model, ITurnContext turnContext, CancellationToken cancellationToken) { var member = await TeamsInfo.GetMemberAsync(turnContext, turnContext.Activity.From.Id, cancellationToken); var requester = member.GetRequesterName(); return(new AddRequestRequestModel { Request = new AddRequestRequest(model.Subject, requester) { Description = model.Description } }); }
/// <summary> /// 提交请求表单时 /// </summary> /// <param name="turnContext"></param> /// <param name="taskModuleRequest"></param> /// <param name="cancellationToken"></param> /// <returns></returns> protected override async Task <TaskModuleResponse> OnTeamsTaskModuleSubmitAsync(ITurnContext <IInvokeActivity> turnContext, TaskModuleRequest taskModuleRequest, CancellationToken cancellationToken) { InputWorkOrderModel model = null; if (taskModuleRequest.Data is JObject @object) { model = @object.ToObject <InputWorkOrderModel>(); } if (!string.IsNullOrEmpty(model?.Subject)) { var request = await CreateRequestFromModelAsync(model, turnContext, cancellationToken); var result = await _request.AddRequestAsync(request); if (result.ResponseStatus.StatusCode == 2000) { var reply = MessageFactory.Text($"已为您提交请求[{model.Subject}]({GetRequestUrl(result.Request.Id)})。"); var resultCard = CreateResultAdaptiveCardAttachment(result.Request); await turnContext.SendActivityAsync(reply, cancellationToken); return(new TaskModuleResponse { Task = new TaskModuleContinueResponse { Value = new TaskModuleTaskInfo() { Title = "发起请求", Height = 500, Width = "medium", Card = resultCard } } }); } else { // TODO 提交失败 } } return(new TaskModuleResponse { Task = new TaskModuleMessageResponse() { Value = "数据提交有误", }, }); }