예제 #1
0
        /// <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);
        }
예제 #2
0
        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
                }
            });
        }
예제 #3
0
        /// <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 = "数据提交有误",
                },
            });
        }