示例#1
0
        private async Task <WxReplyMessage> GetMessageAsync(WxReplyMessage message)
        {
            if (message.MaterialType == MaterialType.Message)
            {
                var material = await _materialMessageRepository.GetAsync(message.MaterialId);

                if (material != null)
                {
                    message.MediaId = material.MediaId;
                    message.Items   = material.Items;
                    return(message);
                }
            }
            else if (message.MaterialType == MaterialType.Image)
            {
                var material = await _materialImageRepository.GetAsync(message.MaterialId);

                if (material != null)
                {
                    message.MediaId = material.MediaId;
                    message.Image   = material;
                    return(message);
                }
            }
            else if (message.MaterialType == MaterialType.Audio)
            {
                var material = await _materialAudioRepository.GetAsync(message.MaterialId);

                if (material != null)
                {
                    message.MediaId = material.MediaId;
                    message.Audio   = material;
                    return(message);
                }
            }
            else if (message.MaterialType == MaterialType.Video)
            {
                var material = await _materialVideoRepository.GetAsync(message.MaterialId);

                if (material != null)
                {
                    message.MediaId = material.MediaId;
                    message.Video   = material;
                    return(message);
                }
            }
            else if (message.MaterialType == MaterialType.Text)
            {
                return(message);
            }

            return(null);
        }
        public async Task <ActionResult <GetResult> > Get([FromQuery] GetRequest request)
        {
            if (!await _authManager.HasSitePermissionsAsync(request.SiteId,
                                                            Types.SitePermissions.WxReplyAuto, Types.SitePermissions.WxReplyBeAdded))
            {
                return(Unauthorized());
            }

            WxReplyMessage message = null;

            var account = await _wxAccountRepository.GetBySiteIdAsync(request.SiteId);

            var(success, _, errorMessage) = await _wxManager.GetAccessTokenAsync(account.MpAppId, account.MpAppSecret);

            if (success)
            {
                if (StringUtils.EqualsIgnoreCase(request.ActiveName, "replyAuto"))
                {
                    if (account.MpReplyAutoMessageId > 0)
                    {
                        message = await _wxManager.GetMessageAsync(request.SiteId, account.MpReplyAutoMessageId);
                    }
                }
                else if (StringUtils.EqualsIgnoreCase(request.ActiveName, "replyBeAdded"))
                {
                    if (account.MpReplyBeAddedMessageId > 0)
                    {
                        message = await _wxManager.GetMessageAsync(request.SiteId, account.MpReplyBeAddedMessageId);
                    }
                }
            }

            return(new GetResult
            {
                Success = success,
                ErrorMessage = errorMessage,
                Message = message
            });
        }
示例#3
0
 public async Task CustomSendAsync(string accessTokenOrAppId, string openId, WxReplyMessage message)
 {
     if (message.MaterialType == MaterialType.Message)
     {
         await CustomSendMessageAsync(accessTokenOrAppId, openId, message.SiteId, message.MaterialId, message.MediaId);
     }
     else if (message.MaterialType == MaterialType.Text)
     {
         await CustomSendTextAsync(accessTokenOrAppId, openId, message.SiteId, message.Text);
     }
     else if (message.MaterialType == MaterialType.Image)
     {
         await CustomSendImageAsync(accessTokenOrAppId, openId, message.SiteId, message.MaterialId, message.MediaId);
     }
     else if (message.MaterialType == MaterialType.Audio)
     {
         await CustomSendAudioAsync(accessTokenOrAppId, openId, message.SiteId, message.MaterialId, message.MediaId);
     }
     else if (message.MaterialType == MaterialType.Video)
     {
         await CustomSendVideoAsync(accessTokenOrAppId, openId, message.SiteId, message.MaterialId, message.MediaId);
     }
 }
示例#4
0
        public async Task <ActionResult <IntResult> > Submit([FromBody] SubmitRequest request)
        {
            if (!await _authManager.HasSitePermissionsAsync(request.SiteId,
                                                            MenuUtils.SitePermissions.WxReplyAuto, MenuUtils.SitePermissions.WxReplyBeAdded))
            {
                return(Unauthorized());
            }

            WxReplyMessage message = null;
            var            account = await _wxAccountRepository.GetBySiteIdAsync(request.SiteId);

            if (StringUtils.EqualsIgnoreCase(request.ActiveName, "replyAuto"))
            {
                if (account.MpReplyAutoMessageId > 0)
                {
                    message = await _wxManager.GetMessageAsync(request.SiteId, account.MpReplyAutoMessageId);
                }
            }
            else if (StringUtils.EqualsIgnoreCase(request.ActiveName, "replyBeAdded"))
            {
                if (account.MpReplyBeAddedMessageId > 0)
                {
                    message = await _wxManager.GetMessageAsync(request.SiteId, account.MpReplyBeAddedMessageId);
                }
            }

            int messageId;

            if (message == null)
            {
                message = new WxReplyMessage
                {
                    SiteId       = request.SiteId,
                    RuleId       = 0,
                    MaterialType = request.MaterialType,
                    MaterialId   = request.MaterialId,
                    Text         = request.Text
                };
                messageId = await _wxReplyMessageRepository.InsertAsync(message);

                if (StringUtils.EqualsIgnoreCase(request.ActiveName, "replyAuto"))
                {
                    account.MpReplyAutoMessageId = messageId;
                }
                else if (StringUtils.EqualsIgnoreCase(request.ActiveName, "replyBeAdded"))
                {
                    account.MpReplyBeAddedMessageId = messageId;
                }

                await _wxAccountRepository.SetAsync(account);
            }
            else
            {
                messageId            = message.Id;
                message.MaterialType = request.MaterialType;
                message.MaterialId   = request.MaterialId;
                message.Text         = request.Text;
                await _wxReplyMessageRepository.UpdateAsync(message);
            }

            return(new IntResult
            {
                Value = messageId
            });
        }
示例#5
0
 public async Task UpdateAsync(WxReplyMessage message)
 {
     await _repository.UpdateAsync(message, Q
                                   .CachingRemove(GetCacheKey(message.SiteId))
                                   );
 }
示例#6
0
 public async Task <int> InsertAsync(WxReplyMessage message)
 {
     return(await _repository.InsertAsync(message, Q
                                          .CachingRemove(GetCacheKey(message.SiteId))
                                          ));
 }