Esempio n. 1
0
 public async Task <int> InsertAsync(WxReplyRule rule)
 {
     return(await _repository.InsertAsync(rule));
 }
Esempio n. 2
0
 public async Task UpdateAsync(WxReplyRule rule)
 {
     await _repository.UpdateAsync(rule);
 }
Esempio n. 3
0
        public async Task <ActionResult <BoolResult> > Submit([FromBody] SubmitRequest request)
        {
            if (!await _authManager.HasSitePermissionsAsync(request.SiteId,
                                                            MenuUtils.SitePermissions.WxReply))
            {
                return(Unauthorized());
            }

            if (request.RuleId > 0)
            {
                var rule = await _wxReplyRuleRepository.GetAsync(request.RuleId);

                rule.RuleName = request.RuleName;
                rule.Random   = request.Random;
                await _wxReplyRuleRepository.UpdateAsync(rule);

                await _wxReplyKeywordRepository.DeleteAllAsync(request.SiteId, request.RuleId);

                await _wxReplyMessageRepository.DeleteAllAsync(request.SiteId, request.RuleId);

                foreach (var keyword in request.Keywords)
                {
                    await _wxReplyKeywordRepository.InsertAsync(new WxReplyKeyword
                    {
                        SiteId = request.SiteId,
                        RuleId = request.RuleId,
                        Exact  = keyword.Exact,
                        Text   = keyword.Text
                    });
                }

                foreach (var message in request.Messages)
                {
                    await _wxReplyMessageRepository.InsertAsync(new WxReplyMessage
                    {
                        SiteId       = request.SiteId,
                        RuleId       = request.RuleId,
                        MaterialType = message.MaterialType,
                        MaterialId   = message.MaterialId,
                        Text         = message.Text
                    });
                }
            }
            else
            {
                var rule = new WxReplyRule
                {
                    SiteId   = request.SiteId,
                    RuleName = request.RuleName,
                    Random   = request.Random
                };
                var ruleId = await _wxReplyRuleRepository.InsertAsync(rule);

                foreach (var keyword in request.Keywords)
                {
                    await _wxReplyKeywordRepository.InsertAsync(new WxReplyKeyword
                    {
                        SiteId = request.SiteId,
                        RuleId = ruleId,
                        Exact  = keyword.Exact,
                        Text   = keyword.Text
                    });
                }

                foreach (var message in request.Messages)
                {
                    await _wxReplyMessageRepository.InsertAsync(new WxReplyMessage
                    {
                        SiteId       = request.SiteId,
                        RuleId       = ruleId,
                        MaterialType = message.MaterialType,
                        MaterialId   = message.MaterialId,
                        Text         = message.Text
                    });
                }
            }

            return(new BoolResult
            {
                Value = true
            });
        }