Exemple #1
0
        public async Task <int> AddDocuments(RequestDocument document)
        {
            using (IDbConnection dbConnection = this.GetConnection())
            {
                try
                {
                    dbConnection.Open();

                    var result = await dbConnection.QueryMultipleAsync("AddRequestDocument",
                                                                       new
                    {
                        RequestId    = document.RequestId,
                        DocumentName = document.Name,
                        DocumentType = document.Type,
                        DocumentData = document.Data,
                        FileType     = document.FileType
                    },
                                                                       commandType : CommandType.StoredProcedure);

                    var docsEnt = result.ReadAsync <int>().Result.Single();

                    return(docsEnt);

                    //documents = docsEnt.ToList();
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    dbConnection.Close();
                }
            }
        }
Exemple #2
0
        public async Task <IActionResult> UploadDocument([FromForm] RequestDocument document)
        {
            if (document.DataAsBase64.Contains(","))
            {
                document.DataAsBase64 = document.DataAsBase64
                                        .Substring(document.DataAsBase64
                                                   .IndexOf(",") + 1);
            }

            var blobData = Convert.FromBase64String(document.DataAsBase64);

            document.Data = null;

            var response = await _requestManager.uploadDocument(document);

            string filePath = requestDocumentsFolder + document.RequestId.ToString() + "/" + response;
            var    result   = await _fileManager.UploadFile(blobData, filePath, document.FileType);


            if (response == 0 || result.Contains("failed"))
            {
                return(BadRequest(new { message = "Upload failed" }));
            }

            return(Ok(response));
        }
Exemple #3
0
        public void Execute(RequestDocument requestDocument)
        {
            var repo = Uow.GetRepository <RequestDocument>();

            repo.Create(requestDocument);
            Uow.SaveChanges();
        }
Exemple #4
0
        public async Task <IActionResult> Patch(string id, [FromBody] RequestDocument <WidgetResource> request)
        {
            try
            {
                var resource = request.Data;
                if (string.IsNullOrWhiteSpace(resource?.Id))
                {
                    return(BadRequest());
                }

                var widget = await _widgetRepository.Get(resource.Id);

                WidgetMap.ApplyUpdates(widget, resource);
                await _widgetRepository.Update(widget);

                var updatedResource = WidgetMap.ToResource(widget);
                await _bus.Publish(new WidgetEvent("WidgetUpdated", updatedResource, GetRequestor()), "WidgetEvents");

                return(Ok(updatedResource));
            }
            catch (WidgetNotFoundException)
            {
                return(NotFound());
            }
        }
Exemple #5
0
        private async Task CreateDocumentResultDistributionRequests(int requestId, int userId)
        {
            var docType  = Executor.GetQuery <GetDicDocumentTypeByCodeQuery>().Process(q => q.Execute(DicDocumentTypeCodes.ResultDistributionRequests));
            var document = new Domain.Entities.Document.Document
            {
                DocumentType = DocumentType.Internal,
                TypeId       = docType.Id,
            };
            var documentId = await Executor.GetCommand <CreateDocumentCommand>()
                             .Process(q => q.ExecuteAsync(document));

            await Executor.GetHandler <GenerateDocumentBarcodeHandler>().Process(c => c.ExecuteAsync(documentId));

            await Executor.GetHandler <GenerateRegisterDocumentNumberHandler>().Process(c => c.ExecuteAsync(documentId));

            var requestDocument = new RequestDocument {
                RequestId = requestId, DocumentId = documentId
            };

            Executor.GetCommand <AddRequestDocumentCommand>().Process(c => c.Execute(requestDocument));
            var initialWorkflow = await Executor.GetQuery <GetInitialDocumentWorkflowQuery>()
                                  .Process(q => q.ExecuteAsync(documentId, userId));

            await Executor.GetCommand <ApplyDocumentWorkflowCommand>().Process(c => c.ExecuteAsync(initialWorkflow));

            var userInputDto = new Model.Models.Material.UserInputDto
            {
                Code       = DicDocumentTypeCodes.ResultDistributionRequests,
                DocumentId = documentId,
                OwnerId    = requestId,
            };
            await Executor.GetCommand <CreateUserInputCommand>().Process(c => c.ExecuteAsync(documentId, userInputDto));
        }
        public bool IsPassesRequirements()
        {
            _requestDocument = NiisAmbientContext.Current.Executor.GetQuery <GetRequestDocumentByDocumentIdQuery>().Process(q => q.Execute(CurrentRequestObject.Id));

            if (_requestDocument == null)
            {
                return(false);
            }

            var routeStageCodes = new[]
            {
                RouteStageCodes.PO_02_1,
                RouteStageCodes.I_02_1,
                RouteStageCodes.NMPT_02_1,
                RouteStageCodes.SA_02_1,
                RouteStageCodes.ITZ_02_1,
                RouteStageCodes.TZ_02_1,
                RouteStageCodes.UM_02_1,
            };

            if (CurrentRequestObject.Type.Code.Equals(DicDocumentTypeCodes.Statement) &&
                CurrentRequestObject.CurrentWorkflows.Any(cwf => cwf.CurrentStage.Code.Equals(DicRouteStage.Codes.SentStage)) &&
                routeStageCodes.Contains(_requestDocument.Request.CurrentWorkflow.CurrentStage.Code))
            {
                return(true);
            }

            return(false);
        }
Exemple #7
0
        public RequestDocumentCollection Convert(IEnumerable <Item> obj)
        {
            var results = new RequestDocumentCollection {
                Documents = new List <RequestDocument>()
            };

            foreach (var item in obj)
            {
                var indexable = new SitecoreIndexableItem(item);
                using (var searchContext = ContentSearchManager.GetIndex(indexable)
                                           .CreateSearchContext(SearchSecurityOptions.DisableSecurityCheck))
                {
                    var searchResult = searchContext.GetQueryable <ExtendedSearchResultItem>()
                                       .Where(x => x.ItemId == item.ID && x.Language == item.Language.Name && x.LatestVersion).GetResults().FirstOrDefault();
                    if (searchResult != null && searchResult.Document != null && !string.IsNullOrWhiteSpace(searchResult.Document.Content))
                    {
                        var document = new RequestDocument();
                        document.Text     = searchResult.Document.Content;
                        document.Id       = item.ID.Guid;
                        document.Language = item.Language.Name;

                        if (!results.Documents.Any(x => x.Id == document.Id))
                        {
                            results.Documents.Add(document);
                        }
                    }
                }
            }

            return(results);
        }
Exemple #8
0
        public bool IsPassesRequirements()
        {
            _requestDocument = NiisAmbientContext.Current.Executor.GetQuery <GetRequestDocumentByDocumentIdQuery>().Process(q => q.Execute(CurrentRequestObject.Id));

            if (_requestDocument == null)
            {
                return(false);
            }

            var docTypeCodes = new[]
            {
                DicDocumentTypeCodes.ExpertTmRegisterRefusalOpinion,
                DicDocumentTypeCodes.ExpertTmRegisterOpinion
            };

            if (CurrentRequestObject.CurrentWorkflows.Any(cwf => cwf.CurrentStage.Code == RouteStageCodes.DocumentOutgoing_03_1) &&
                !string.IsNullOrEmpty(CurrentRequestObject.OutgoingNumber) &&
                docTypeCodes.Contains(CurrentRequestObject.Type.Code)
                )
            {
                return(true);
            }

            return(false);
        }
Exemple #9
0
        public bool IsPassesRequirements()
        {
            _requestDocument = NiisAmbientContext.Current.Executor.GetQuery <GetRequestDocumentByDocumentIdQuery>().Process(q => q.Execute(CurrentRequestObject.Id));

            if (_requestDocument == null)
            {
                return(false);
            }

            var docTypeCodes = new[]
            {
                DicDocumentTypeCodes.NotificationOfPaymentlessOfficeWorkTermination,
                DicDocumentTypeCodes.NotificationOfOfficeWorkTerminationByRequest,
                DicDocumentTypeCodes.NotificationOfAnswerlessOfficeWorkTermination,
                DicDocumentTypeCodes.CoveringLetterOfDkAboutDelay,
                DicDocumentTypeCodes.CoveringLetterOfDkAboutDelay_1,
                DicDocumentTypeCodes.TZPRED1,
                DicDocumentTypeCodes.NotificationOfTrademarkRequestRegistationByRequest,
                DicDocumentTypeCodes.NotificationOfTmRegistration,
                DicDocumentTypeCodes.NotificationOfRegistrationDecision,
                DicDocumentTypeCodes.UV_KPM,
                DicDocumentTypeCodes.NotificationOfAbsencePaymentOfDK,
                DicDocumentTypeCodes.ExpertTmRegistrationOpinionWithDisclaimer,
                DicDocumentTypeCodes.ResponseReleaseRequestRegistrationNotification,
                DicDocumentTypeCodes.NotificationReleaseRequestRegistrationNotification,
                DicDocumentTypeCodes.ResponseTermProlongationNotification,
                DicDocumentTypeCodes.NotificationOfTmRequestReviewingAcceptance,
                DicDocumentTypeCodes.ResponseDelapFormsExp,
                DicDocumentTypeCodes.RequestForPreExamination,
                DicDocumentTypeCodes.RequestForFullExamination,

                DicDocumentTypeCodes.OfficeWorkRestartNotification,
                DicDocumentTypeCodes.OUT_Uv_pol_prekr_del_otv_zap_v1_19,
                DicDocumentTypeCodes.OUT_UV_Pol_Reg_TZ_AP_sov_v1_19,
                DicDocumentTypeCodes.OUT_UV_Pred_Prekr_del_bez_opl_v1_19,
                DicDocumentTypeCodes.OUT_UV_Pred_preobr_zayav_TZ_na_KTZ_v1_19,
                DicDocumentTypeCodes.OUT_UV_Pred_izmen_adres_v1_19,
                DicDocumentTypeCodes.OUT_UV_Pred_izmen_naim_adr_v1_19,
                DicDocumentTypeCodes.OUT_UV_Pred_izmen_yur_adr_v1_19,
                DicDocumentTypeCodes.OUT_UV_Pol_neprin_hod_v1_19,
                DicDocumentTypeCodes.OUT_UV_GR_neprin_zayav_v1_19,
            };

            if (CurrentRequestObject.CurrentWorkflows.Any(cwf => cwf.CurrentStage.Code == RouteStageCodes.DocumentOutgoing_03_1) &&
                !string.IsNullOrEmpty(CurrentRequestObject.OutgoingNumber) &&
                docTypeCodes.Contains(CurrentRequestObject.Type.Code)
                )
            {
                return(true);
            }

            return(false);
        }
        public bool IsPassesRequirements()
        {
            _requestDocument = NiisAmbientContext.Current.Executor.GetQuery <GetRequestDocumentByDocumentIdQuery>().Process(q => q.Execute(CurrentRequestObject.Id));

            if (_requestDocument == null)
            {
                return(false);
            }

            if (_requestDocument.Request.CurrentWorkflow.CurrentStage.Code != RouteStageCodes.TZ_03_2_2)
            {
                return(false);
            }

            _answerDate = _calendarProvider.GetExecutionDate(CurrentRequestObject.SendingDate.GetValueOrDefault(DateTimeOffset.MinValue), Domain.Enums.ExpirationType.CalendarMonth, 3);

            var docTypeCodes = new[]
            {
                //DicDocumentTypeCodes.RequestOfprocuratory,
                //DicDocumentTypeCodes.RequestForImagesTA,
                //DicDocumentTypeCodes.OUT_Zap_Pred_Prior_v1_19,
                //DicDocumentTypeCodes.OUT_Zap_Pred_Perevod_v1_19,
                //DicDocumentTypeCodes.OUT_Zap_Pred_Nesootv_MKTU_v1_19,
                //DicDocumentTypeCodes.OUT_Zap_Pred_Adres_v1_19,
                //DicDocumentTypeCodes.OUT_Zap_Pred_ECO_v1_19,
                //DicDocumentTypeCodes.OUT_Zap_Pred_otsuts_MKTU_v1_19,
                //DicDocumentTypeCodes.OUT_Zap_Pred_perevod_oboz_v1_19,
                //DicDocumentTypeCodes.OUT_Zap_Pol_perevod_oboz_v1_19,
                DicDocumentTypeCodes.OUT_Zap_Pol_pismo_sogl_v1_19,
                //DicDocumentTypeCodes.OUT_Zap_Pred_kach_izobr_v1_19,
                //DicDocumentTypeCodes.OUT_Zap_Pol_kach_izobr_v1_19,
                //DicDocumentTypeCodes.OUT_Zap_Pred_otsut_izobr_v1_19,
                DicDocumentTypeCodes.OUT_Zap_Pred_gos_sim_v1_19,
                DicDocumentTypeCodes.OUT_Zap_Pol_gos_sim_v1_19,
                //DicDocumentTypeCodes.OUT_Zap_Pred_dover_v1_19,
                //DicDocumentTypeCodes.OUT_Zap_Pol_dover_v1_19,
                DicDocumentTypeCodes.OUT_Zap_Pol_avtor_v1_19,
                DicDocumentTypeCodes.OUT_Zap_Pol_lich_neimush_v1_19,
                DicDocumentTypeCodes.OUT_Zap_Pol_obyect_sv_v1_19,
                DicDocumentTypeCodes.OUT_Zap_Pol_kult_dost_v1_19
            };

            if (CurrentRequestObject.CurrentWorkflows.Any(cwf => cwf.CurrentStage.Code == RouteStageCodes.DocumentOutgoing_03_1) &&
                !string.IsNullOrEmpty(CurrentRequestObject.OutgoingNumber) &&
                docTypeCodes.Contains(CurrentRequestObject.Type.Code)
                )
            {
                return(true);
            }

            return(false);
        }
        public async Task <WidgetResource> CreateWidget(WidgetResource widget)
        {
            using (var client = NewClient())
            {
                var requestDocument = RequestDocument.Containing(widget);
                var response        = await client.PostAsJsonAsync("widgets", requestDocument);

                response.EnsureSuccessStatusCode();
                var responseContent = await response.Content.ReadAsStringAsync();

                var responseDocument = JsonConvert.DeserializeObject <ResponseDocument <WidgetResource> >(responseContent);
                return(responseDocument.Data);
            }
        }
Exemple #12
0
        public bool IsPassesRequirements()
        {
            _requestDocument = NiisAmbientContext.Current.Executor.GetQuery <GetRequestDocumentByDocumentIdQuery>().Process(q => q.Execute(CurrentRequestObject.Id));

            if (_requestDocument == null)
            {
                return(false);
            }

            if (_requestDocument.Request.CurrentWorkflow.CurrentStage.Code != RouteStageCodes.TZFirstFullExpertize)
            {
                return(false);
            }

            var docTypeCodes = new[]
            {
                //DicDocumentTypeCodes.RequestOfprocuratory,
                //DicDocumentTypeCodes.RequestForImagesTA,
                //DicDocumentTypeCodes.OUT_Zap_Pred_Prior_v1_19,
                //DicDocumentTypeCodes.OUT_Zap_Pred_Perevod_v1_19,
                //DicDocumentTypeCodes.OUT_Zap_Pred_Nesootv_MKTU_v1_19,
                //DicDocumentTypeCodes.OUT_Zap_Pred_Adres_v1_19,
                //DicDocumentTypeCodes.OUT_Zap_Pred_ECO_v1_19,
                //DicDocumentTypeCodes.OUT_Zap_Pred_otsuts_MKTU_v1_19,
                //DicDocumentTypeCodes.OUT_Zap_Pred_perevod_oboz_v1_19,
                //DicDocumentTypeCodes.OUT_Zap_Pol_perevod_oboz_v1_19,
                DicDocumentTypeCodes.OUT_Zap_Pol_pismo_sogl_v1_19,
                //DicDocumentTypeCodes.OUT_Zap_Pred_kach_izobr_v1_19,
                //DicDocumentTypeCodes.OUT_Zap_Pol_kach_izobr_v1_19,
                //DicDocumentTypeCodes.OUT_Zap_Pred_otsut_izobr_v1_19,
                DicDocumentTypeCodes.OUT_Zap_Pred_gos_sim_v1_19,
                DicDocumentTypeCodes.OUT_Zap_Pol_gos_sim_v1_19,
                //DicDocumentTypeCodes.OUT_Zap_Pred_dover_v1_19,
                //DicDocumentTypeCodes.OUT_Zap_Pol_dover_v1_19,
                DicDocumentTypeCodes.OUT_Zap_Pol_avtor_v1_19,
                DicDocumentTypeCodes.OUT_Zap_Pol_lich_neimush_v1_19,
                DicDocumentTypeCodes.OUT_Zap_Pol_obyect_sv_v1_19,
                DicDocumentTypeCodes.OUT_Zap_Pol_kult_dost_v1_19
            };

            if (CurrentRequestObject.CurrentWorkflows.Any(cwf => cwf.CurrentStage.Code == RouteStageCodes.DocumentOutgoing_03_1) &&
                !string.IsNullOrEmpty(CurrentRequestObject.OutgoingNumber) &&
                docTypeCodes.Contains(CurrentRequestObject.Type.Code)
                )
            {
                return(true);
            }

            return(false);
        }
Exemple #13
0
        public override void OnExecuted()
        {
            try
            {
                WX_InteractionInfo model = new WX_InteractionInfo
                {
                    OpenID             = OpenId,
                    CreateTime         = DateTime.Now,
                    MsgType            = (WxMsgType)((int)Request.MsgType),
                    InteractionContent = RequestDocument.ToString(),
                    CompanyID          = config.CompanyID
                };
                bool result = false;
                if ((int)Request.MsgType != 6)
                {
                    result = WXInteractionInfoServices.Add(model);
                    if (!result)
                    {
                        string msg = string.Format("保存微信和平台交换信息失败:OpenID:{0};CreateTime:{1}:MsgType:{2};Content:{3}", model.OpenID, model.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"), model.MsgType.GetDescription(), model.InteractionContent);
                        TxtLogServices.WriteTxtLogEx("WeiXinConversation", msg);
                    }
                }

                if (ResponseDocument != null)
                {
                    int replyId = 0;
                    if (result)
                    {
                        replyId = WXInteractionInfoServices.QueryMaxIdByOpenId(OpenId);
                    }
                    //回复给用户的消息
                    WX_InteractionInfo respModel = new WX_InteractionInfo
                    {
                        OpenID             = OpenId,
                        CreateTime         = DateTime.Now,
                        MsgType            = (WxMsgType)((int)Request.MsgType),
                        InteractionContent = ResponseDocument.ToString(),
                        ReplyID            = replyId.ToString(),
                        CompanyID          = config.CompanyID
                    };
                    WXInteractionInfoServices.Add(respModel);
                }
            }
            catch (Exception ex)
            {
                ExceptionsServices.AddExceptions(ex, string.Format("保存微信交互消息失败,OPENID:{0}", OpenId), LogFrom.WeiXin);
                TxtLogServices.WriteTxtLogEx("WeiXinConversation", ex);
            }
        }
Exemple #14
0
        public async Task <IActionResult> Post([FromBody] RequestDocument <WidgetResource> request)
        {
            try
            {
                var widget = WidgetMap.ToEntity(request.Data ?? new WidgetResource());
                await _widgetRepository.Add(widget);

                var createdResource = WidgetMap.ToResource(widget);
                await _bus.Publish(new WidgetEvent("WidgetCreated", createdResource, GetRequestor()), "WidgetEvents");

                return(CreatedAtAction("Post", createdResource));
            }
            catch (WidgetAlreadyExistsException)
            {
                return(new StatusCodeResult((int)HttpStatusCode.Conflict));
            }
        }
        public bool IsPassesRequirements()
        {
            _requestDocument = NiisAmbientContext.Current.Executor.GetQuery <GetRequestDocumentByDocumentIdQuery>().Process(q => q.Execute(CurrentRequestObject.Id));

            if (_requestDocument == null)
            {
                return(false);
            }

            if (_requestDocument.Request.CurrentWorkflow.CurrentStage.Code != RouteStageCodes.TZ_03_2_2)
            {
                return(false);
            }

            _answerDate = _calendarProvider.GetExecutionDate(CurrentRequestObject.SendingDate.GetValueOrDefault(DateTimeOffset.MinValue), Domain.Enums.ExpirationType.CalendarMonth, 3);

            var docTypeCodes = new[]
            {
                DicDocumentTypeCodes.TZ_ZAP_O_IZOBR,
                DicDocumentTypeCodes.PriorityRequest,
                DicDocumentTypeCodes.TranslationRequest,
                DicDocumentTypeCodes.IcgsMismatchRequest,
                DicDocumentTypeCodes.DeclarantAddressMismatchRequest,
                DicDocumentTypeCodes.EcoBioOrganicDesignationRequest,
                DicDocumentTypeCodes.IcgsOrImageMissingRequest,
                DicDocumentTypeCodes.DesignationTranslationRequest,
                DicDocumentTypeCodes.OUT_Zap_Pol_pismo_sogl_v1_19,
                DicDocumentTypeCodes.OUT_Zap_Pred_gos_sim_v1_19,
                DicDocumentTypeCodes.OUT_Zap_Pol_gos_sim_v1_19,
                DicDocumentTypeCodes.TZ_ZAP_O_DOV,
                DicDocumentTypeCodes.OUT_Zap_Pol_avtor_v1_19,
                DicDocumentTypeCodes.OUT_Zap_Pol_lich_neimush_v1_19,
                DicDocumentTypeCodes.OUT_Zap_Pol_obyect_sv_v1_19,
                DicDocumentTypeCodes.OUT_Zap_Pol_kult_dost_v1_19
            };

            if (CurrentRequestObject.CurrentWorkflows.Any(cwf => cwf.CurrentStage.Code == RouteStageCodes.DocumentOutgoing_03_1) &&
                !string.IsNullOrEmpty(CurrentRequestObject.OutgoingNumber) &&
                docTypeCodes.Contains(CurrentRequestObject.Type.Code)
                )
            {
                return(true);
            }

            return(false);
        }
        public bool IsPassesRequirements()
        {
            _requestDocument = NiisAmbientContext.Current.Executor.GetQuery <GetRequestDocumentByDocumentIdQuery>().Process(q => q.Execute(CurrentRequestObject.Id));

            if (_requestDocument == null)
            {
                return(false);
            }

            if (_requestDocument.Request.CurrentWorkflow.CurrentStage.Code != RouteStageCodes.TZFirstFullExpertize)
            {
                return(false);
            }

            var docTypeCodes = new[]
            {
                DicDocumentTypeCodes.PriorityRequest,
                DicDocumentTypeCodes.TranslationRequest,
                DicDocumentTypeCodes.IcgsMismatchRequest,
                DicDocumentTypeCodes.DeclarantAddressMismatchRequest,
                DicDocumentTypeCodes.EcoBioOrganicDesignationRequest,
                DicDocumentTypeCodes.IcgsOrImageMissingRequest,
                DicDocumentTypeCodes.DesignationTranslationRequest,
                DicDocumentTypeCodes.OUT_Zap_Pol_pismo_sogl_v1_19,
                DicDocumentTypeCodes.TZ_ZAP_O_IZOBR,
                DicDocumentTypeCodes.OUT_Zap_Pred_gos_sim_v1_19,
                DicDocumentTypeCodes.OUT_Zap_Pol_gos_sim_v1_19,
                DicDocumentTypeCodes.TZ_ZAP_O_DOV,
                DicDocumentTypeCodes.OUT_Zap_Pol_avtor_v1_19,
                DicDocumentTypeCodes.OUT_Zap_Pol_lich_neimush_v1_19,
                DicDocumentTypeCodes.OUT_Zap_Pol_obyect_sv_v1_19,
                DicDocumentTypeCodes.OUT_Zap_Pol_kult_dost_v1_19
            };

            if (CurrentRequestObject.CurrentWorkflows.Any(cwf => cwf.CurrentStage.Code == RouteStageCodes.DocumentOutgoing_03_1) &&
                !string.IsNullOrEmpty(CurrentRequestObject.OutgoingNumber) &&
                docTypeCodes.Contains(CurrentRequestObject.Type.Code)
                )
            {
                return(true);
            }

            return(false);
        }
Exemple #17
0
        public async void LoadForm()
        {
            try
            {
                Clean();
                dialogService.ShowProgress();
                if (whoSelected.Trim().ToLower().Equals("A un tercero".Trim().ToLower()))
                {
                    RequestDocument request  = new RequestDocument();
                    var             response = await apiService.GetDocuments(request);

                    if (response.Success && response.Documents != null)
                    {
                        Documents           = new ObservableCollection <Document>(response.Documents);
                        IsVisibleThirdParty = true;
                    }
                }
                else
                {
                    RequestPQRSUser request = new RequestPQRSUser
                    {
                        Document     = loginViewModel.User.Document,
                        DocumentType = loginViewModel.User.DocumentType,
                        Controller   = "pqrs",
                        Action       = "ValidateActive"
                    };
                    IsVisibleThirdParty = false;
                    if (await ValidateActiveUser(request))
                    {
                        LoadNewPQRS();
                    }
                }
            }
            catch (Exception e)
            {
                ServiceLocator.Current.GetInstance <IExceptionService>().RegisterException(e);
            }
            finally
            {
                dialogService.HideProgress();
            }
        }
        public async Task <WidgetResource> UpdateWidget(string id, WidgetResource updates)
        {
            using (var client = NewClient())
            {
                var requestDocument = RequestDocument.Containing(updates);
                var requestContent  = JsonConvert.SerializeObject(requestDocument);
                var requestMessage  = new HttpRequestMessage(new HttpMethod("PATCH"), "widgets/" + id)
                {
                    Content = new StringContent(requestContent, Encoding.UTF8, "application/json")
                };

                var response = await client.SendAsync(requestMessage);

                response.EnsureSuccessStatusCode();
                var responseContent = await response.Content.ReadAsStringAsync();

                var responseDocument = JsonConvert.DeserializeObject <ResponseDocument <WidgetResource> >(responseContent);
                return(responseDocument.Data);
            }
        }
        public async Task LoadPersonalData()
        {
            ErrorEmail = ErrorCellPhone = string.Empty;
            dialogService.ShowProgress();
            RequestAffiliate  request  = new RequestAffiliate();
            ResponseAffiliate response = await apiService.GetAffiliate(request);

            if (await ValidateResponseAffiliate(response))
            {
                RequestDocument   requestDocument   = new RequestDocument();
                ResponseDocuments responseDocuments = await apiService.GetDocuments(requestDocument);

                ValidateResponseDocuments(responseDocuments);
                dialogService.HideProgress();
            }
            else
            {
                dialogService.HideProgress();
                await navigationService.Back();
            }
        }
        private RequestDocument CreateRefDocument(RfMessageDocument oldRefDocument, int requestId)
        {
            try
            {
                var requestDocument = new RequestDocument
                {
                    DateCreate = new DateTimeOffset(oldRefDocument.DateCreate.GetValueOrDefault(DateTime.Now)),
                    DateUpdate = new DateTimeOffset(oldRefDocument.DateCreate.GetValueOrDefault(DateTime.Now)),
                    DocumentId = oldRefDocument.RefdocumentId,
                    ExternalId = oldRefDocument.Id,
                    RequestId  = requestId,
                    Timestamp  = BitConverter.GetBytes(DateTime.Now.Ticks)
                };

                return(requestDocument);
            }
            catch (Exception)
            {
                return(null);
            }
        }
 /// <summary>
 /// Create model
 /// </summary>
 /// <param name="document"></param>
 public static RequestDocument Clone(
     this RequestDocument document)
 {
     return(new RequestDocument {
         RequestId = document.RequestId,
         Entity = document.Entity.Clone(),
         GroupId = document.GroupId,
         Type = document.Type,
         SigningRequest = document.SigningRequest.ToArray(),
         SubjectName = document.SubjectName,
         Certificate = document.Certificate,
         ClassType = document.ClassType,
         ETag = document.ETag,
         KeyHandle = document.KeyHandle,
         ErrorInfo = document.ErrorInfo,
         Index = document.Index,
         State = document.State,
         Completed = document.Completed,
         Approved = document.Approved,
         Submitted = document.Submitted,
         Deleted = document.Deleted,
     });
 }
 /// <summary>
 /// Create model
 /// </summary>
 /// <param name="document"></param>
 public static CertificateRequestModel ToServiceModel(
     this RequestDocument document)
 {
     return(new CertificateRequestModel {
         Record = new CertificateRequestRecordModel {
             RequestId = document.RequestId,
             EntityId = document.Entity.Id,
             GroupId = document.GroupId,
             Type = document.Type,
             State = document.State,
             ErrorInfo = document.ErrorInfo,
             Accepted = document.Completed,
             Approved = document.Approved,
             Deleted = document.Deleted,
             Submitted = document.Submitted,
         },
         Index = document.Index,
         Entity = document.Entity.Clone(),
         Certificate = document.Certificate,
         KeyHandle = document.KeyHandle,
         SigningRequest = document.SigningRequest
     });
 }
Exemple #23
0
        public bool IsPassesRequirements()
        {
            _requestDocument = NiisAmbientContext.Current.Executor.GetQuery <GetRequestDocumentByDocumentIdQuery>().Process(q => q.Execute(CurrentRequestObject.Id));

            if (_requestDocument == null)
            {
                return(false);
            }

            var docTypes = new[]
            {
                DicDocumentTypeCodes.StatementCopyrights, DicDocumentTypeCodes.StatementIndustrialDesigns,
                DicDocumentTypeCodes.StatementInventions, DicDocumentTypeCodes.StatementNamePlaces,
                DicDocumentTypeCodes.StatementSelectiveAchievs, DicDocumentTypeCodes.StatementTrademark,
                DicDocumentTypeCodes.StatementUsefulModels
            };

            var routeStageCodes = new[]
            {
                RouteStageCodes.PO_02_1,
                RouteStageCodes.I_02_1,
                RouteStageCodes.NMPT_02_1,
                RouteStageCodes.SA_02_1,
                RouteStageCodes.ITZ_02_1,
                RouteStageCodes.TZ_02_1,
                RouteStageCodes.UM_02_1,
            };

            if (CurrentRequestObject.CurrentWorkflows.Any(d => d.CurrentStage.Code.Equals(DicRouteStage.Codes.SentStage)) &&
                docTypes.Contains(CurrentRequestObject.Type.Code) &&
                routeStageCodes.Contains(_requestDocument.Request.CurrentWorkflow.CurrentStage.Code))
            {
                return(true);
            }

            return(false);
        }
Exemple #24
0
 private Expression <Func <DicRouteStage, bool> > GetStagePredicate(RequestDocument rd)
 {
     return(_logicMap.ContainsKey(rd.Document.Type.Code)
         ? _logicMap[rd.Document.Type.Code].Invoke(rd.Request)
         : null);
 }
Exemple #25
0
 public override async Task ApplyAsync(RequestDocument requestDocument)
 {
     await ApplyStageAsync(GetStagePredicate(requestDocument), requestDocument.Request);
 }
        public override IResponseMessageBase OnEvent_ClickRequest(RequestMessageEvent_Click requestMessage)
        {
            IResponseMessageBase reponseMessage = null;

            //菜单点击,需要跟创建菜单时的Key匹配
            switch (requestMessage.EventKey)
            {
            case "OneClick":
            {
                ////这个过程实际已经在OnTextOrEventRequest中完成,这里不会执行到。
                //var strongResponseMessage = CreateResponseMessage<ResponseMessageText>();
                //reponseMessage = strongResponseMessage;
                //strongResponseMessage.Content = "您点击了底部按钮。\r\n为了测试微信软件换行bug的应对措施,这里做了一个——\r\n换行";
            }
            break;

            case "SubClickRoot_Text":
            {
                //var strongResponseMessage = CreateResponseMessage<ResponseMessageText>();
                //reponseMessage = strongResponseMessage;
                //strongResponseMessage.Content = "您点击了子菜单按钮。";
            }
            break;

            case "SubClickRoot_News":
            {
                //var strongResponseMessage = CreateResponseMessage<ResponseMessageNews>();
                //reponseMessage = strongResponseMessage;
                //strongResponseMessage.Articles.Add(new Article()
                //{
                //    Title = "您点击了子菜单图文按钮",
                //    Description = "您点击了子菜单图文按钮,这是一条图文信息。",
                //    PicUrl = "http://weixin.senparc.com/Images/qrcode.jpg",
                //    Url = "http://weixin.senparc.com"
                //});
            }
            break;

            case "SubClickRoot_Music":
            {
                ////上传缩略图
                //var accessToken = CommonAPIs.AccessTokenContainer.TryGetToken(appId, appSecret);
                //var uploadResult = AdvancedAPIs.Media.MediaApi.Upload(accessToken, UploadMediaFileType.thumb,
                //                                             Server.GetMapPath("~/Images/Logo.jpg"));
                ////设置音乐信息
                //var strongResponseMessage = CreateResponseMessage<ResponseMessageMusic>();
                //reponseMessage = strongResponseMessage;
                //strongResponseMessage.Music.Title = "天籁之音";
                //strongResponseMessage.Music.Description = "真的是天籁之音";
                //strongResponseMessage.Music.MusicUrl = "http://weixin.senparc.com/Content/music1.mp3";
                //strongResponseMessage.Music.ThumbMediaId = uploadResult.thumb_media_id;
            }
            break;

            case "SubClickRoot_Customer":
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageText>();
                reponseMessage = strongResponseMessage;
                using (WXDBEntities db = new WXDBEntities())
                {
                    var tmp = db.WXKewWords.Where(s => s.Type == 0).FirstOrDefault();
                    if (tmp != null)
                    {
                        strongResponseMessage.Content = tmp.Description;
                    }
                    else
                    {
                        strongResponseMessage.Content = "你好,欢迎关注恒大御景湾 !";
                        //\r\n输入序号快速了解我们\r\n[1]查看项目投资方\r\n[2]查看户型\r\n[3]查看交通,\r\n加入誉天下会,尊享更多优惠!\r\n<a href=\"http://zhengrong.tencenthouse.com/member/registerMember.aspx\">马上加入》》》</a>
                    }
                }
            }
            break;

            case "SubClick_sh":
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageText>();
                reponseMessage = strongResponseMessage;
                strongResponseMessage.Content = "开盘时间待定,敬请关注官方微信。";
            }
            break;

            case "SubClick_xs":
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageText>();
                reponseMessage = strongResponseMessage;
                strongResponseMessage.Content = "销售热线:021-60259333";
            }
            break;

            case "SubClick_jt":
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageText>();
                reponseMessage = strongResponseMessage;
                strongResponseMessage.Content = "来访动线:\r\n1、地铁11号线,马陆站2号出口(出口前进20米,到阿克苏南路后右转);\r\n2、市区方向:\r\n(1)您可以就近上中环高架,转S5沪嘉高速至【马陆】出口下,左转至【宝安公路】,然后到【永盛南路】左转,根据我们的道旗指引就到了。\r\n(2)沪翔高速:S6沪翔高速至【永盛路出口】下,至永盛南路向北行驶再右转,根据我们的道旗指引就到了。\r\n3、使用手机【高德导航】,搜索“恒大御景湾”根据指示即可到达";
            }
            break;

            case "SubClick_xm":
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageText>();
                reponseMessage = strongResponseMessage;
                strongResponseMessage.Content = "项目地址:嘉定区马陆镇【阿克苏南路】与【合作南路】交汇处东50米。";
            }
            break;

            case "SubClickRoot_Image":
            {
                //上传图片
                //var accessToken = CommonAPIs.AccessTokenContainer.TryGetToken(appId, appSecret);
                //var uploadResult = AdvancedAPIs.Media.MediaApi.Upload(accessToken, UploadMediaFileType.image,
                //                                             Server.GetMapPath("~/Images/Logo.jpg"));
                ////设置图片信息
                //var strongResponseMessage = CreateResponseMessage<ResponseMessageImage>();
                //reponseMessage = strongResponseMessage;
                //strongResponseMessage.Image.MediaId = uploadResult.media_id;
                //return null;
            }
            break;

            case "SubClickRoot_Agent":    //代理消息
            {
                //获取返回的XML
                DateTime dt1 = DateTime.Now;
                reponseMessage = MessageAgent.RequestResponseMessage(this, agentUrl, agentToken, RequestDocument.ToString());
                //上面的方法也可以使用扩展方法:this.RequestResponseMessage(this,agentUrl, agentToken, RequestDocument.ToString());

                DateTime dt2 = DateTime.Now;

                if (reponseMessage is ResponseMessageNews)
                {
                    return(null);
                }
            }
            break;

            case "Member":    //托管代理会员信息
            {
                //原始方法为:MessageAgent.RequestXml(this,agentUrl, agentToken, RequestDocument.ToString());//获取返回的XML
                //return null;
            }
            break;

            case "OAuth":    //OAuth授权测试
            {
                //return null;
            }
            break;

            case "Description":
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageText>();
                strongResponseMessage.Content = GetWelcomeInfo();
                reponseMessage = strongResponseMessage;
            }
            break;

            default:
            {
                // return null;
            }
            break;
            }

            return(reponseMessage);
        }
        /// <summary>
        /// 处理文字请求
        /// </summary>
        /// <param name="requestMessage">请求消息</param>
        /// <returns></returns>
        public override IResponseMessageBase OnTextRequest(RequestMessageText requestMessage)
        {
            //说明:实际项目中这里的逻辑可以交给Service处理具体信息,参考OnLocationRequest方法或/Service/LocationSercice.cs

            #region 书中例子
            //if (requestMessage.Content == "你好")
            //{
            //    var responseMessage = base.CreateResponseMessage<ResponseMessageNews>();
            //    var title = "Title";
            //    var description = "Description";
            //    var picUrl = "PicUrl";
            //    var url = "Url";
            //    responseMessage.Articles.Add(new Article()
            //    {
            //        Title = title,
            //        Description = description,
            //        PicUrl = picUrl,
            //        Url = url
            //    });
            //    return responseMessage;
            //}
            //else if (requestMessage.Content == "Senparc")
            //{
            //    //相似处理逻辑
            //}
            //else
            //{
            //    //...
            //}

            #endregion

            #region 历史方法

            //方法一(v0.1),此方法调用太过繁琐,已过时(但仍是所有方法的核心基础),建议使用方法二到四
            //var responseMessage =
            //    ResponseMessageBase.CreateFromRequestMessage(RequestMessage, ResponseMsgType.Text) as
            //    ResponseMessageText;

            //方法二(v0.4)
            //var responseMessage = ResponseMessageBase.CreateFromRequestMessage<ResponseMessageText>(RequestMessage);

            //方法三(v0.4),扩展方法,需要using Senparc.Weixin.MP.Helpers;
            //var responseMessage = RequestMessage.CreateResponseMessage<ResponseMessageText>();

            //方法四(v0.6+),仅适合在HandlerMessage内部使用,本质上是对方法三的封装
            //注意:下面泛型ResponseMessageText即返回给客户端的类型,可以根据自己的需要填写ResponseMessageNews等不同类型。

            #endregion

            var defaultResponseMessage = base.CreateResponseMessage <ResponseMessageText>();

            var requestHandler =
                requestMessage.StartHandler()
                //关键字不区分大小写,按照顺序匹配成功后将不再运行下面的逻辑
                .Keyword("约束", () =>
            {
                defaultResponseMessage.Content =
                    @"您正在进行微信内置浏览器约束判断测试。您可以:
<a href=""https://sdk.weixin.senparc.com/FilterTest/"">点击这里</a>进行客户端约束测试(地址:https://sdk.weixin.senparc.com/FilterTest/),如果在微信外打开将直接返回文字。
或:
<a href=""https://sdk.weixin.senparc.com/FilterTest/Redirect"">点击这里</a>进行客户端约束测试(地址:https://sdk.weixin.senparc.com/FilterTest/Redirect),如果在微信外打开将重定向一次URL。";
                return(defaultResponseMessage);
            }).
                //匹配任一关键字
                Keywords(new[] { "托管", "代理" }, () =>
            {
                //开始用代理托管,把请求转到其他服务器上去,然后拿回结果
                //甚至也可以将所有请求在DefaultResponseMessage()中托管到外部。

                var dt1 = SystemTime.Now;     //计时开始

                var agentXml = RequestDocument.ToString();

                #region 暂时转发到SDK线上Demo

                agentUrl = "https://sdk.weixin.senparc.com/weixin";
                //agentToken = WebConfigurationManager.AppSettings["WeixinToken"];//Token

                //修改内容,防止死循环
                var agentDoc = XDocument.Parse(agentXml);
                agentDoc.Root.Element("Content").SetValue("代理转发文字:" + requestMessage.Content);
                agentDoc.Root.Element("CreateTime").SetValue(DateTimeHelper.GetUnixDateTime(SystemTime.Now)); //修改时间,防止去重
                agentDoc.Root.Element("MsgId").SetValue("123");                                               //防止去重
                agentXml = agentDoc.ToString();

                #endregion

                var responseXml = MessageAgent.RequestXml(this, agentUrl, agentToken, agentXml);
                //获取返回的XML
                //上面的方法也可以使用扩展方法:this.RequestResponseMessage(this,agentUrl, agentToken, RequestDocument.ToString());

                /* 如果有WeiweihiKey,可以直接使用下面的这个MessageAgent.RequestWeiweihiXml()方法。
                 * WeiweihiKey专门用于对接www.weiweihi.com平台,获取方式见:https://www.weiweihi.com/ApiDocuments/Item/25#51
                 */
                //var responseXml = MessageAgent.RequestWeiweihiXml(weiweihiKey, RequestDocument.ToString());//获取Weiweihi返回的XML

                var dt2 = SystemTime.Now;     //计时结束

                //转成实体。

                /* 如果要写成一行,可以直接用:
                 * responseMessage = MessageAgent.RequestResponseMessage(agentUrl, agentToken, RequestDocument.ToString());
                 * 或
                 *
                 */
                var msg = string.Format("\r\n\r\n代理过程总耗时:{0}毫秒", (dt2 - dt1).Milliseconds);
                var agentResponseMessage = responseXml.CreateResponseMessage(this.MessageEntityEnlightener);
                if (agentResponseMessage is ResponseMessageText)
                {
                    (agentResponseMessage as ResponseMessageText).Content += msg;
                }
                else if (agentResponseMessage is ResponseMessageNews)
                {
                    (agentResponseMessage as ResponseMessageNews).Articles[0].Description += msg;
                }
                return(agentResponseMessage);   //可能出现多种类型,直接在这里返回
            })
                .Keywords(new[] { "测试", "退出" }, () =>
            {
                /*
                 * 这是一个特殊的过程,此请求通常来自于微微嗨(http://www.weiweihi.com)的“盛派网络小助手”应用请求(https://www.weiweihi.com/User/App/Detail/1),
                 * 用于演示微微嗨应用商店的处理过程,由于微微嗨的应用内部可以单独设置对话过期时间,所以这里通常不需要考虑对话状态,只要做最简单的响应。
                 */
                if (defaultResponseMessage.Content == "测试")
                {
                    //进入APP测试
                    defaultResponseMessage.Content = "您已经进入【盛派网络小助手】的测试程序,请发送任意信息进行测试。发送文字【退出】退出测试对话。10分钟内无任何交互将自动退出应用对话状态。";
                }
                else
                {
                    //退出APP测试
                    defaultResponseMessage.Content = "您已经退出【盛派网络小助手】的测试程序。";
                }
                return(defaultResponseMessage);
            })
                .Keyword("AsyncTest", () =>
            {
                //异步并发测试(提供给单元测试使用)
#if NET45
                var begin = SystemTime.Now;
                int t1, t2, t3;
                System.Threading.ThreadPool.GetAvailableThreads(out t1, out t3);
                System.Threading.ThreadPool.GetMaxThreads(out t2, out t3);
                System.Threading.Thread.Sleep(TimeSpan.FromSeconds(4));
                var end    = SystemTime.Now;
                var thread = System.Threading.Thread.CurrentThread;
                defaultResponseMessage.Content = string.Format("TId:{0}\tApp:{1}\tBegin:{2:mm:ss,ffff}\tEnd:{3:mm:ss,ffff}\tTPool:{4}",
                                                               thread.ManagedThreadId,
                                                               HttpContext.Current != null ? HttpContext.Current.ApplicationInstance.GetHashCode() : -1,
                                                               begin,
                                                               end,
                                                               t2 - t1
                                                               );
#endif

                return(defaultResponseMessage);
            })
                .Keyword("OPEN", () =>
            {
                var openResponseMessage = requestMessage.CreateResponseMessage <ResponseMessageNews>();
                openResponseMessage.Articles.Add(new Article()
                {
                    Title       = "开放平台微信授权测试!",
                    Description = @"点击进入Open授权页面。

授权之后,您的微信所收到的消息将转发到第三方(盛派网络小助手)的服务器上,并获得对应的回复。

测试完成后,您可以登陆公众号后台取消授权。",
                    Url         = "https://sdk.weixin.senparc.com/OpenOAuth/JumpToMpOAuth"
                });
                return(openResponseMessage);
            })
                .Keyword("错误", () =>
            {
                var errorResponseMessage = requestMessage.CreateResponseMessage <ResponseMessageText>();
                //因为没有设置errorResponseMessage.Content,所以这小消息将无法正确返回。
                return(errorResponseMessage);
            })
                .Keyword("容错", () =>
            {
                Thread.Sleep(4900);    //故意延时1.5秒,让微信多次发送消息过来,观察返回结果
                var faultTolerantResponseMessage     = requestMessage.CreateResponseMessage <ResponseMessageText>();
                faultTolerantResponseMessage.Content = string.Format("测试容错,MsgId:{0},Ticks:{1}", requestMessage.MsgId,
                                                                     SystemTime.Now.Ticks);
                return(faultTolerantResponseMessage);
            })
                .Keyword("TM", () =>
            {
                var openId    = requestMessage.FromUserName;
                var checkCode = Guid.NewGuid().ToString("n").Substring(0, 3);    //为了防止openId泄露造成骚扰,这里启用验证码
                TemplateMessageCollection[checkCode] = openId;
                defaultResponseMessage.Content       = string.Format(@"新的验证码为:{0},请在网页上输入。网址:https://sdk.weixin.senparc.com/AsyncMethods", checkCode);
                return(defaultResponseMessage);
            })
                .Keyword("OPENID", () =>
            {
                var openId   = requestMessage.FromUserName;  //获取OpenId
                var userInfo = UserApi.Info(appId, openId, Language.zh_CN);

                defaultResponseMessage.Content = string.Format(
                    "您的OpenID为:{0}\r\n昵称:{1}\r\n性别:{2}\r\n地区(国家/省/市):{3}/{4}/{5}\r\n关注时间:{6}\r\n关注状态:{7}",
                    requestMessage.FromUserName, userInfo.nickname, (WeixinSex)userInfo.sex, userInfo.country, userInfo.province, userInfo.city, DateTimeHelper.GetDateTimeFromXml(userInfo.subscribe_time), userInfo.subscribe);
                return(defaultResponseMessage);
            })
                .Keyword("EX", () =>
            {
                var ex = new WeixinException("openid:" + requestMessage.FromUserName + ":这是一条测试异常信息");    //回调过程在global的ConfigWeixinTraceLog()方法中
                defaultResponseMessage.Content = "请等待异步模板消息发送到此界面上(自动延时数秒)。\r\n当前时间:" + SystemTime.Now.ToString();
                return(defaultResponseMessage);
            })
                .Keyword("MUTE", () => //不回复任何消息
            {
                //方案一:
                return(new SuccessResponseMessage());

                //方案二:
                var muteResponseMessage = base.CreateResponseMessage <ResponseMessageNoResponse>();
                return(muteResponseMessage);

                //方案三:
                base.TextResponseMessage = "success";
                return(null);

                //方案四:
                return(null);   //在 Action 中结合使用 return new FixWeixinBugWeixinResult(messageHandler);
            })
                .Keyword("JSSDK", () =>
            {
                defaultResponseMessage.Content = "点击打开:https://sdk.weixin.senparc.com/WeixinJsSdk";
                return(defaultResponseMessage);
            })


                //选择菜单,关键字:101(微信服务器端最终格式:id="s:101",content="满意")
                .SelectMenuKeyword("101", () =>
            {
                defaultResponseMessage.Content = $"感谢您的评价({requestMessage.Content})!我们会一如既往为提高企业和开发者生产力而努力!";
                return(defaultResponseMessage);
            })
                //选择菜单,关键字:102(微信服务器端最终格式:id="s:102",content="一般")
                .SelectMenuKeyword("102", () =>
            {
                defaultResponseMessage.Content = $"感谢您的评价({requestMessage.Content})!希望我们的服务能让您越来越满意!";
                return(defaultResponseMessage);
            })
                //选择菜单,关键字:103(微信服务器端最终格式:id="s:103",content="不满意")
                .SelectMenuKeyword("103", () =>
            {
                defaultResponseMessage.Content = $"感谢您的评价({requestMessage.Content})!我们需要您的意见或建议,欢迎向我们反馈! <a href=\"https://github.com/JeffreySu/WeiXinMPSDK/issues/new\">点击这里</a>";
                return(defaultResponseMessage);
            })
                .SelectMenuKeywords(new[] { "110", "111" }, () =>
            {
                defaultResponseMessage.Content = $"这里只是演示,可以同时支持多个选择菜单";
                return(defaultResponseMessage);
            })

                //Default不一定要在最后一个
                .Default(() =>
            {
                var result = new StringBuilder();
                result.AppendFormat("您刚才发送了文字信息:{0}\r\n\r\n", requestMessage.Content);

                if (CurrentMessageContext.RequestMessages.Count > 1)
                {
                    result.AppendFormat("您刚才还发送了如下消息({0}/{1}):\r\n", CurrentMessageContext.RequestMessages.Count,
                                        CurrentMessageContext.StorageData);
                    for (int i = CurrentMessageContext.RequestMessages.Count - 2; i >= 0; i--)
                    {
                        var historyMessage = CurrentMessageContext.RequestMessages[i];
                        result.AppendFormat("{0} 【{1}】{2}\r\n",
                                            historyMessage.CreateTime.ToString("HH:mm:ss"),
                                            historyMessage.MsgType.ToString(),
                                            (historyMessage is RequestMessageText)
                                    ? (historyMessage as RequestMessageText).Content
                                    : "[非文字类型]"
                                            );
                    }
                    result.AppendLine("\r\n");
                }

                result.AppendFormat("如果您在{0}分钟内连续发送消息,记录将被自动保留(当前设置:最多记录{1}条)。过期后记录将会自动清除。\r\n",
                                    GlobalMessageContext.ExpireMinutes, GlobalMessageContext.MaxRecordCount);
                result.AppendLine("\r\n");
                result.AppendLine(
                    "您还可以发送【位置】【图片】【语音】【视频】等类型的信息(注意是这几种类型,不是这几个文字),查看不同格式的回复。\r\nSDK官方地址:https://sdk.weixin.senparc.com");

                defaultResponseMessage.Content = result.ToString();

                return(defaultResponseMessage);
            })
                //“一次订阅消息”接口测试
                .Keyword("订阅", () =>
            {
                defaultResponseMessage.Content = "点击打开:https://sdk.weixin.senparc.com/SubscribeMsg";
                return(defaultResponseMessage);
            })
                //正则表达式
                .Regex(@"^\d+#\d+$", () =>
            {
                defaultResponseMessage.Content = string.Format("您输入了:{0},符合正则表达式:^\\d+#\\d+$", requestMessage.Content);
                return(defaultResponseMessage);
            });

            return(requestHandler.GetResponseMessage() as IResponseMessageBase);
        }
        /// <summary>
        /// 点击事件
        /// </summary>
        /// <param name="requestMessage"></param>
        /// <returns></returns>
        public override IResponseMessageBase OnEvent_ClickRequest(RequestMessageEvent_Click requestMessage)
        {
            IResponseMessageBase reponseMessage = null;

            //菜单点击,需要跟创建菜单时的Key匹配
            switch (requestMessage.EventKey)
            {
            case "toupiao":
                return(this.GetVoteUrlResponse(requestMessage.FromUserName));

                break;

            case "OneClick":
            {
                //这个过程实际已经在OnTextOrEventRequest中完成,这里不会执行到。
                var strongResponseMessage = CreateResponseMessage <ResponseMessageText>();
                reponseMessage = strongResponseMessage;
                strongResponseMessage.Content = "您点击了底部按钮。\r\n为了测试微信软件换行bug的应对措施,这里做了一个——\r\n换行";
            }
            break;

            case "SubClickRoot_Text":
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageText>();
                reponseMessage = strongResponseMessage;
                strongResponseMessage.Content = "您点击了子菜单按钮。";
            }
            break;

            case "SubClickRoot_News":
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageNews>();
                reponseMessage = strongResponseMessage;
                strongResponseMessage.Articles.Add(new Article()
                    {
                        Title       = "您点击了子菜单图文按钮",
                        Description = "您点击了子菜单图文按钮,这是一条图文信息。这个区域是Description内容\r\n可以使用\\r\\n进行换行。",
                        PicUrl      = "http://sdk.weixin.senparc.com/Images/qrcode.jpg",
                        Url         = "http://sdk.weixin.senparc.com"
                    });

                //随机添加一条图文,或只输出一条图文信息
                if (DateTime.Now.Second % 2 == 0)
                {
                    strongResponseMessage.Articles.Add(new Article()
                        {
                            Title       = "这是随机产生的第二条图文信息,用于测试多条图文的样式",
                            Description = "这是随机产生的第二条图文信息,用于测试多条图文的样式",
                            PicUrl      = "http://sdk.weixin.senparc.com/Images/qrcode.jpg",
                            Url         = "http://sdk.weixin.senparc.com"
                        });
                }
            }
            break;

            case "SubClickRoot_Music":
            {
                //上传缩略图
                var accessToken  = Containers.AccessTokenContainer.TryGetAccessToken(appId, appSecret);
                var uploadResult = AdvancedAPIs.MediaApi.UploadTemporaryMedia(accessToken, UploadMediaFileType.thumb,
                                                                              Server.GetMapPath("~/Images/Logo.jpg"));
                //设置音乐信息
                var strongResponseMessage = CreateResponseMessage <ResponseMessageMusic>();
                reponseMessage = strongResponseMessage;
                strongResponseMessage.Music.Title        = "天籁之音";
                strongResponseMessage.Music.Description  = "真的是天籁之音";
                strongResponseMessage.Music.MusicUrl     = "http://sdk.weixin.senparc.com/Content/music1.mp3";
                strongResponseMessage.Music.HQMusicUrl   = "http://sdk.weixin.senparc.com/Content/music1.mp3";
                strongResponseMessage.Music.ThumbMediaId = uploadResult.thumb_media_id;
            }
            break;

            case "SubClickRoot_Image":
            {
                //上传图片
                var accessToken  = Containers.AccessTokenContainer.TryGetAccessToken(appId, appSecret);
                var uploadResult = AdvancedAPIs.MediaApi.UploadTemporaryMedia(accessToken, UploadMediaFileType.image,
                                                                              Server.GetMapPath("~/Images/Logo.jpg"));
                //设置图片信息
                var strongResponseMessage = CreateResponseMessage <ResponseMessageImage>();
                reponseMessage = strongResponseMessage;
                strongResponseMessage.Image.MediaId = uploadResult.media_id;
            }
            break;

            case "SubClickRoot_Agent":    //代理消息
            {
                //获取返回的XML
                DateTime dt1 = DateTime.Now;
                reponseMessage = MessageAgent.RequestResponseMessage(this, agentUrl, agentToken, RequestDocument.ToString());
                //上面的方法也可以使用扩展方法:this.RequestResponseMessage(this,agentUrl, agentToken, RequestDocument.ToString());

                DateTime dt2 = DateTime.Now;

                if (reponseMessage is ResponseMessageNews)
                {
                    (reponseMessage as ResponseMessageNews)
                    .Articles[0]
                    .Description += string.Format("\r\n\r\n代理过程总耗时:{0}毫秒", (dt2 - dt1).Milliseconds);
                }
            }
            break;

            case "Member":    //托管代理会员信息
            {
                //原始方法为:MessageAgent.RequestXml(this,agentUrl, agentToken, RequestDocument.ToString());//获取返回的XML
                reponseMessage = this.RequestResponseMessage(agentUrl, agentToken, RequestDocument.ToString());
            }
            break;

            case "OAuth":    //OAuth授权测试
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageNews>();

                strongResponseMessage.Articles.Add(new Article()
                    {
                        Title       = "OAuth2.0测试",
                        Description = "选择下面两种不同的方式进行测试,区别在于授权成功后,最后停留的页面。",
                        //Url = "http://sdk.weixin.senparc.com/oauth2",
                        //PicUrl = "http://sdk.weixin.senparc.com/Images/qrcode.jpg"
                    });

                strongResponseMessage.Articles.Add(new Article()
                    {
                        Title       = "OAuth2.0测试(不带returnUrl),测试环境可使用",
                        Description = "OAuth2.0测试(不带returnUrl)",
                        Url         = "http://sdk.weixin.senparc.com/oauth2",
                        PicUrl      = "http://sdk.weixin.senparc.com/Images/qrcode.jpg"
                    });

                var returnUrl = "/OAuth2/TestReturnUrl";
                strongResponseMessage.Articles.Add(new Article()
                    {
                        Title       = "OAuth2.0测试(带returnUrl),生产环境强烈推荐使用",
                        Description = "OAuth2.0测试(带returnUrl)",
                        Url         = "http://sdk.weixin.senparc.com/oauth2?returnUrl=" + returnUrl.UrlEncode(),
                        PicUrl      = "http://sdk.weixin.senparc.com/Images/qrcode.jpg"
                    });

                reponseMessage = strongResponseMessage;
            }
            break;

            case "Description":
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageText>();
                strongResponseMessage.Content = GetWelcomeInfo();
                reponseMessage = strongResponseMessage;
            }
            break;

            case "SubClickRoot_PicPhotoOrAlbum":
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageText>();
                reponseMessage = strongResponseMessage;
                strongResponseMessage.Content = "您点击了【微信拍照】按钮。系统将会弹出拍照或者相册发图。";
            }
            break;

            case "SubClickRoot_ScancodePush":
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageText>();
                reponseMessage = strongResponseMessage;
                strongResponseMessage.Content = "您点击了【微信扫码】按钮。";
            }
            break;

            case "ConditionalMenu_Male":
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageText>();
                reponseMessage = strongResponseMessage;
                strongResponseMessage.Content = "您点击了个性化菜单按钮,您的微信性别设置为:男。";
            }
            break;

            case "ConditionalMenu_Femle":
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageText>();
                reponseMessage = strongResponseMessage;
                strongResponseMessage.Content = "您点击了个性化菜单按钮,您的微信性别设置为:女。";
            }
            break;

            default:
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageText>();
                strongResponseMessage.Content = "正在建设中,敬请期待";
                reponseMessage = strongResponseMessage;
            }
            break;
            }

            return(reponseMessage);
        }
Exemple #29
0
        /// <summary>
        /// 点击事件
        /// </summary>
        /// <param name="requestMessage"></param>
        /// <returns></returns>
        public override IResponseMessageBase OnEvent_ClickRequest(RequestMessageEvent_Click requestMessage)
        {
            IResponseMessageBase reponseMessage = null;

            //菜单点击,需要跟创建菜单时的Key匹配

            switch (requestMessage.EventKey)
            {
            case "OneClick":
            {
                //这个过程实际已经在OnTextOrEventRequest中命中“OneClick”关键字,并完成回复,这里不会执行到。
                var strongResponseMessage = CreateResponseMessage <ResponseMessageText>();
                reponseMessage = strongResponseMessage;
                strongResponseMessage.Content = "您点击了底部按钮。\r\n为了测试微信软件换行bug的应对措施,这里做了一个——\r\n换行";
            }
            break;

            case "SubClickRoot_Text":
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageText>();
                reponseMessage = strongResponseMessage;
                strongResponseMessage.Content = "您点击了子菜单按钮。";
            }
            break;

            case "SubClickRoot_News":
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageNews>();
                reponseMessage = strongResponseMessage;
                strongResponseMessage.Articles.Add(new Article()
                    {
                        Title       = "您点击了子菜单图文按钮",
                        Description = "您点击了子菜单图文按钮,这是一条图文信息。这个区域是Description内容\r\n可以使用\\r\\n进行换行。",
                        PicUrl      = "https://sdk.weixin.senparc.com/Images/qrcode.jpg",
                        Url         = "https://sdk.weixin.senparc.com"
                    });

                //随机添加一条图文,或只输出一条图文信息
                if (SystemTime.Now.Second % 2 == 0)
                {
                    strongResponseMessage.Articles.Add(new Article()
                        {
                            Title       = "这是随机产生的第二条图文信息,用于测试多条图文的样式",
                            Description = "这是随机产生的第二条图文信息,用于测试多条图文的样式",
                            PicUrl      = "https://sdk.weixin.senparc.com/Images/qrcode.jpg",
                            Url         = "https://sdk.weixin.senparc.com"
                        });
                }
            }
            break;

            case "SubClickRoot_Music":
            {
                //上传缩略图

#if NET45
                var filePath = "~/Images/Logo.thumb.jpg";
#else
                var filePath = "~/wwwroot/Images/Logo.thumb.jpg";
#endif

                var uploadResult = AdvancedAPIs.MediaApi.UploadTemporaryMedia(appId, UploadMediaFileType.thumb,
                                                                              ServerUtility.ContentRootMapPath(filePath));
                //PS:缩略图官方没有特别提示文件大小限制,实际测试哪怕114K也会返回文件过大的错误,因此尽量控制在小一点(当前图片39K)

                //设置音乐信息
                var strongResponseMessage = CreateResponseMessage <ResponseMessageMusic>();
                reponseMessage = strongResponseMessage;
                strongResponseMessage.Music.Title        = "天籁之音";
                strongResponseMessage.Music.Description  = "真的是天籁之音";
                strongResponseMessage.Music.MusicUrl     = "https://sdk.weixin.senparc.com/Content/music1.mp3";
                strongResponseMessage.Music.HQMusicUrl   = "https://sdk.weixin.senparc.com/Content/music1.mp3";
                strongResponseMessage.Music.ThumbMediaId = uploadResult.thumb_media_id;
            }
            break;

            case "SubClickRoot_Image":
            {
                //上传图片
#if NET45
                var filePath = "~/Images/Logo.jpg";
#else
                var filePath = "~/wwwroot/Images/Logo.jpg";
#endif

                var uploadResult = AdvancedAPIs.MediaApi.UploadTemporaryMedia(appId, UploadMediaFileType.image,
                                                                              ServerUtility.ContentRootMapPath(filePath));
                //设置图片信息
                var strongResponseMessage = CreateResponseMessage <ResponseMessageImage>();
                reponseMessage = strongResponseMessage;
                strongResponseMessage.Image.MediaId = uploadResult.media_id;
            }
            break;

            case "SendMenu":
            {
                var menuContentList = new List <SendMenuContent>()
                {
                    new SendMenuContent("101", "满意"),
                    new SendMenuContent("102", "一般"),
                    new SendMenuContent("103", "不满意")
                };
                //使用异步接口
                CustomApi.SendMenu(appId, OpenId, "请对 Senparc.Weixin SDK 给出您的评价", menuContentList, "感谢您的参与!");

                reponseMessage = new ResponseMessageNoResponse();        //不返回任何消息
            }
            break;

            case "SubClickRoot_Agent":    //代理消息
            {
                //获取返回的XML
                var dt1 = SystemTime.Now;
                reponseMessage = MessageAgent.RequestResponseMessage(this, agentUrl, agentToken, RequestDocument.ToString());
                //上面的方法也可以使用扩展方法:this.RequestResponseMessage(this,agentUrl, agentToken, RequestDocument.ToString());

                var dt2 = SystemTime.Now;

                if (reponseMessage is ResponseMessageNews)
                {
                    (reponseMessage as ResponseMessageNews)
                    .Articles[0]
                    .Description += string.Format("\r\n\r\n代理过程总耗时:{0}毫秒", (dt2 - dt1).Milliseconds);
                }
            }
            break;

            case "Member":    //托管代理会员信息
            {
                //原始方法为:MessageAgent.RequestXml(this,agentUrl, agentToken, RequestDocument.ToString());//获取返回的XML
                reponseMessage = this.RequestResponseMessage(agentUrl, agentToken, RequestDocument.ToString());
            }
            break;

            case "OAuth":    //OAuth授权测试
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageNews>();

                strongResponseMessage.Articles.Add(new Article()
                    {
                        Title       = "OAuth2.0测试",
                        Description = "选择下面两种不同的方式进行测试,区别在于授权成功后,最后停留的页面。",
                        //Url = "https://sdk.weixin.senparc.com/oauth2",
                        //PicUrl = "https://sdk.weixin.senparc.com/Images/qrcode.jpg"
                    });

                strongResponseMessage.Articles.Add(new Article()
                    {
                        Title       = "OAuth2.0测试(不带returnUrl),测试环境可使用",
                        Description = "OAuth2.0测试(不带returnUrl)",
                        Url         = "https://sdk.weixin.senparc.com/oauth2",
                        PicUrl      = "https://sdk.weixin.senparc.com/Images/qrcode.jpg"
                    });

                var returnUrl = "/OAuth2/TestReturnUrl";
                strongResponseMessage.Articles.Add(new Article()
                    {
                        Title       = "OAuth2.0测试(带returnUrl),生产环境强烈推荐使用",
                        Description = "OAuth2.0测试(带returnUrl)",
                        Url         = "https://sdk.weixin.senparc.com/oauth2?returnUrl=" + returnUrl.UrlEncode(),
                        PicUrl      = "https://sdk.weixin.senparc.com/Images/qrcode.jpg"
                    });

                reponseMessage = strongResponseMessage;
            }
            break;

            case "Description":
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageText>();
                strongResponseMessage.Content = GetWelcomeInfo();
                reponseMessage = strongResponseMessage;
            }
            break;

            case "SubClickRoot_PicPhotoOrAlbum":
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageText>();
                reponseMessage = strongResponseMessage;
                strongResponseMessage.Content = "您点击了【微信拍照】按钮。系统将会弹出拍照或者相册发图。";
            }
            break;

            case "SubClickRoot_ScancodePush":
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageText>();
                reponseMessage = strongResponseMessage;
                strongResponseMessage.Content = "您点击了【微信扫码】按钮。";
            }
            break;

            case "ConditionalMenu_Male":
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageText>();
                reponseMessage = strongResponseMessage;
                strongResponseMessage.Content = "您点击了个性化菜单按钮,您的微信性别设置为:男。";
            }
            break;

            case "ConditionalMenu_Femle":
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageText>();
                reponseMessage = strongResponseMessage;
                strongResponseMessage.Content = "您点击了个性化菜单按钮,您的微信性别设置为:女。";
            }
            break;

            case "GetNewMediaId":    //获取新的MediaId
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageText>();
                try
                {
                    var result = AdvancedAPIs.MediaApi.UploadForeverMedia(appId, ServerUtility.ContentRootMapPath("~/Images/logo.jpg"));
                    strongResponseMessage.Content = result.media_id;
                }
                catch (Exception e)
                {
                    strongResponseMessage.Content = "发生错误:" + e.Message;
                    WeixinTrace.SendCustomLog("调用UploadForeverMedia()接口发生异常", e.Message);
                }
            }
            break;

            default:
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageText>();
                strongResponseMessage.Content = "您点击了按钮,EventKey:" + requestMessage.EventKey;
                reponseMessage = strongResponseMessage;
            }
            break;
            }

            return(reponseMessage);
        }
Exemple #30
0
        public override IResponseMessageBase OnEvent_ClickRequest(RequestMessageEvent_Click requestMessage)
        {
            IResponseMessageBase reponseMessage = null;

            //菜单点击,需要跟创建菜单时的Key匹配
            switch (requestMessage.EventKey)
            {
            case "OneClick":
            {
                //这个过程实际已经在OnTextOrEventRequest中完成,这里不会执行到。
                var strongResponseMessage = CreateResponseMessage <ResponseMessageText>();
                reponseMessage = strongResponseMessage;
                strongResponseMessage.Content = "您点击了底部按钮。\r\n为了测试微信软件换行bug的应对措施,这里做了一个——\r\n换行";
            }
            break;

            case "SubClickRoot_Text":
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageText>();
                reponseMessage = strongResponseMessage;
                strongResponseMessage.Content = "您点击了子菜单按钮。";
            }
            break;

            case "SubClickRoot_News":
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageNews>();
                reponseMessage = strongResponseMessage;
                strongResponseMessage.Articles.Add(new Article()
                    {
                        Title       = "您点击了子菜单图文按钮",
                        Description = "您点击了子菜单图文按钮,这是一条图文信息。",
                        PicUrl      = "http://www.w3ccloud.com/Images/qrcode.jpg",
                        Url         = "http://www.w3ccloud.com"
                    });
            }
            break;

            case "SubClickRoot_Music":
            {
                //上传缩略图
                var accessToken  = AccessTokenContainer.TryGetAccessToken(appId, appSecret);
                var uploadResult = MediaApi.UploadTemporaryMedia(accessToken, UploadMediaFileType.thumb,
                                                                 Server.GetMapPath("~/Images/Logo.jpg"));
                //设置音乐信息
                var strongResponseMessage = CreateResponseMessage <ResponseMessageMusic>();
                reponseMessage = strongResponseMessage;
                strongResponseMessage.Music.Title        = "天籁之音";
                strongResponseMessage.Music.Description  = "真的是天籁之音";
                strongResponseMessage.Music.MusicUrl     = "http://www.w3ccloud.com/Content/music1.mp3";
                strongResponseMessage.Music.HQMusicUrl   = "http://www.w3ccloud.com/Content/music1.mp3";
                strongResponseMessage.Music.ThumbMediaId = uploadResult.thumb_media_id;
            }
            break;

            case "SubClickRoot_Image":
            {
                //上传图片
                var accessToken  = AccessTokenContainer.TryGetAccessToken(appId, appSecret);
                var uploadResult = MediaApi.UploadTemporaryMedia(accessToken, UploadMediaFileType.image,
                                                                 Server.GetMapPath("~/Images/Logo.jpg"));
                //设置图片信息
                var strongResponseMessage = CreateResponseMessage <ResponseMessageImage>();
                reponseMessage = strongResponseMessage;
                strongResponseMessage.Image.MediaId = uploadResult.media_id;
            }
            break;

            case "SubClickRoot_Agent":    //代理消息
            {
                //获取返回的XML
                DateTime dt1 = DateTime.Now;
                reponseMessage = MessageAgent.RequestResponseMessage(this, agentUrl, agentToken, RequestDocument.ToString());
                //上面的方法也可以使用扩展方法:this.RequestResponseMessage(this,agentUrl, agentToken, RequestDocument.ToString());

                DateTime dt2 = DateTime.Now;

                if (reponseMessage is ResponseMessageNews)
                {
                    (reponseMessage as ResponseMessageNews)
                    .Articles[0]
                    .Description += string.Format("\r\n\r\n代理过程总耗时:{0}毫秒", (dt2 - dt1).Milliseconds);
                }
            }
            break;

            case "Member":    //托管代理会员信息
            {
                //原始方法为:MessageAgent.RequestXml(this,agentUrl, agentToken, RequestDocument.ToString());//获取返回的XML
                reponseMessage = this.RequestResponseMessage(agentUrl, agentToken, RequestDocument.ToString());
            }
            break;

            case "OAuth":    //OAuth授权测试
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageNews>();
                strongResponseMessage.Articles.Add(new Article()
                    {
                        Title       = "OAuth2.0测试",
                        Description = "点击【查看全文】进入授权页面。\r\n注意:此页面仅供测试(是专门的一个临时测试账号的授权,并非Senparc.Weixin.MP SDK官方账号,所以如果授权后出现错误页面数正常情况),测试号随时可能过期。请将此DEMO部署到您自己的服务器上,并使用自己的appid和secret。",
                        Url         = "http://www.w3ccloud.com/oauth2",
                        PicUrl      = "http://www.w3ccloud.com/Images/qrcode.jpg"
                    });
                reponseMessage = strongResponseMessage;
            }
            break;

            case "Description":
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageText>();
                strongResponseMessage.Content = GetWelcomeInfo();
                reponseMessage = strongResponseMessage;
            }
            break;

            case "SubClickRoot_PicPhotoOrAlbum":
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageText>();
                reponseMessage = strongResponseMessage;
                strongResponseMessage.Content = "您点击了【微信拍照】按钮。系统将会弹出拍照或者相册发图。";
            }
            break;

            case "SubClickRoot_ScancodePush":
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageText>();
                reponseMessage = strongResponseMessage;
                strongResponseMessage.Content = "您点击了【微信扫码】按钮。";
            }
            break;

            default:
            {
                var strongResponseMessage = CreateResponseMessage <ResponseMessageText>();
                strongResponseMessage.Content = "您点击了按钮,EventKey:" + requestMessage.EventKey;
                reponseMessage = strongResponseMessage;
            }
            break;
            }

            return(reponseMessage);
        }