示例#1
0
        public override IEnumerable <LocalizedString> Execute(WorkflowContext workflowContext, ActivityContext activityContext)
        {
            var part        = workflowContext.Content.As <WXMsgPart>();
            var contentId   = activityContext.GetState <int>("contentId");
            var contentItem = _contentManager.Get(contentId);

            switch (contentItem.TypeDefinition.Name)
            {
            case "WXImageMsg":
                Process(() => ((dynamic)contentItem).WXImageMsg.WXMsgImageMediaIdField.Value
                        , () => ((dynamic)contentItem).WXImageMsg.WXMsgImageField.MediaParts[0]
                        , () => ((dynamic)contentItem).WXImageMsg.WXMsgImageMediaCreateAtField.Value
                        , (val) => ((dynamic)contentItem).WXImageMsg.WXMsgImageMediaIdField.Value       = val
                        , (val) => ((dynamic)contentItem).WXImageMsg.WXMsgImageMediaCreateAtField.Value = val.ToString()
                        , "image");
                break;

            case "WXMusicMsg":
                Process(() => ((dynamic)contentItem).WXMusicMsg.WXMsgMusicThumbMediaIdField.Value
                        , () => ((dynamic)contentItem).WXMusicMsg.WXMsgMusicThumbField.MediaParts[0]
                        , () => ((dynamic)contentItem).WXMusicMsg.WXMsgMusicThumbMediaCreateAtField.Value
                        , (val) => ((dynamic)contentItem).WXMusicMsg.WXMsgMusicThumbMediaIdField.Value       = val
                        , (val) => ((dynamic)contentItem).WXMusicMsg.WXMsgMusicThumbMediaCreateAtField.Value = val.ToString()
                        , "thumb");
                break;

            case "WXVideoMsg":
                Process(() => ((dynamic)contentItem).WXVideoMsg.WXMsgVideoMediaIdField.Value
                        , () => ((dynamic)contentItem).WXVideoMsg.WXMsgVideoField.MediaParts[0]
                        , () => ((dynamic)contentItem).WXVideoMsg.WXMsgVideoMediaCreateAtField.Value
                        , (val) => ((dynamic)contentItem).WXVideoMsg.WXMsgVideoMediaIdField.Value       = val
                        , (val) => ((dynamic)contentItem).WXVideoMsg.WXMsgVideoMediaCreateAtField.Value = val.ToString()
                        , "video");
                break;

            case "WXVoiceMsg":
                Process(() => ((dynamic)contentItem).WXVoiceMsg.WXMsgVoiceMediaIdField.Value
                        , () => ((dynamic)contentItem).WXVoiceMsg.WXMsgVoiceField.MediaParts[0]
                        , () => ((dynamic)contentItem).WXVoiceMsg.WXMsgVoiceMediaCreateAtField.Value
                        , (val) => ((dynamic)contentItem).WXVoiceMsg.WXMsgVoiceMediaIdField.Value       = val
                        , (val) => ((dynamic)contentItem).WXVoiceMsg.WXMsgVoiceMediaCreateAtField.Value = val.ToString()
                        , "voice");
                break;
            }

            _weiXinResp.Add(new Tuple <ContentItem, string>(contentItem, part.FromUserName));

            yield return(T("Done"));
        }