コード例 #1
0
        public async Task <SendResponse> DeleteBodyAsync(EditTemplateRequest request)
        {
            var partitionKey = TemplateMyNoSqlEntity.GeneratePartitionKey();
            var rowKey       = TemplateMyNoSqlEntity.GenerateRowKey(request.TemplateId.ToString());

            var templateEntity = await _templateWriter.GetAsync(partitionKey, rowKey);

            if (templateEntity == null)
            {
                _logger.LogError("Template with part.key {partitionKey} & row key {rowKey} doesn't exist.", partitionKey, rowKey);

                return(new SendResponse
                {
                    Result = SmsSendResult.TEMPLATE_NOT_FOUND,
                    ErrorMessage = "Template doesn't exist."
                });
            }

            templateEntity.Template.BrandLangBodies.First(b => b.Brand == request.Brand).LangBodies
            .Remove(request.Lang);
            if (!templateEntity.Template.BrandLangBodies.First(b => b.Brand == request.Brand).LangBodies.Any())
            {
                templateEntity.Template.BrandLangBodies = templateEntity.Template.BrandLangBodies
                                                          .Where(b => b.Brand != request.Brand).ToArray();
            }
            await _templateWriter.InsertOrReplaceAsync(templateEntity);

            return(new SendResponse {
                Result = SmsSendResult.OK
            });
        }
コード例 #2
0
 /// <summary>
 ///  修改富媒体短信内容接口
 /// </summary>
 /// <param name="request">请求参数信息</param>
 /// <returns>请求结果信息</returns>
 public async Task <EditTemplateResponse> EditTemplate(EditTemplateRequest request)
 {
     return(await new EditTemplateExecutor().Client(this).Execute <EditTemplateResponse, EditTemplateResult, EditTemplateRequest>(request).ConfigureAwait(false));
 }
コード例 #3
0
 /// <summary>
 ///  修改富媒体短信内容接口
 /// </summary>
 /// <param name="request">请求参数信息</param>
 /// <returns>请求结果信息</returns>
 public EditTemplateResponse EditTemplate(EditTemplateRequest request)
 {
     return(new EditTemplateExecutor().Client(this).Execute <EditTemplateResponse, EditTemplateResult, EditTemplateRequest>(request));
 }
コード例 #4
0
        public async Task <SendResponse> EditTemplateAsync(EditTemplateRequest request)
        {
            var partitionKey = TemplateMyNoSqlEntity.GeneratePartitionKey();
            var rowKey       = TemplateMyNoSqlEntity.GenerateRowKey(request.TemplateId.ToString());

            var templateEntity = await _templateWriter.GetAsync(partitionKey, rowKey);

            if (templateEntity == null)
            {
                _logger.LogError("Template with part.key {partitionKey} & row key {rowKey} doesn't exist.", partitionKey, rowKey);

                return(new SendResponse
                {
                    Result = SmsSendResult.TEMPLATE_NOT_FOUND,
                    ErrorMessage = "Template doesn't exist."
                });
            }

            if (string.IsNullOrEmpty(request.TemplateBody))
            {
                var blb = templateEntity.Template.BrandLangBodies.FirstOrDefault(b => b.Brand == request.Brand);
                if (blb != null)
                {
                    var lng = request.Lang.ToString();
                    if (blb.LangBodies.ContainsKey(lng))
                    {
                        blb.LangBodies.Remove(lng);

                        _logger.LogInformation("Lang body with lang {lang} has been removed from brand ({brand}).", request.Lang, request.Brand);

                        if (!blb.LangBodies.Any())
                        {
                            templateEntity.Template.BrandLangBodies = templateEntity.Template.BrandLangBodies
                                                                      .Where(b => b.Brand != blb.Brand).ToArray();

                            _logger.LogInformation("Brand ({brand}) removed because it no longer has lang bodies.", request.Brand);
                        }

                        return(new SendResponse {
                            Result = SmsSendResult.OK
                        });
                    }
                }
            }

            var lang            = request.Lang.ToString();
            var brandLangBodies = templateEntity.Template.BrandLangBodies.FirstOrDefault(b => b.Brand == request.Brand);

            if (brandLangBodies == null)
            {
                _logger.LogInformation("Template (ID: {templateId}) for required brand {brand} doesn't exist, creating new one.",
                                       templateEntity.Template.Id, request.Brand);

                templateEntity.Template.BrandLangBodies = templateEntity.Template.BrandLangBodies.Append(new BrandLangBody
                {
                    Brand      = request.Brand,
                    LangBodies = new Dictionary <string, string>
                    {
                        { lang, request.TemplateBody }
                    }
                }).ToArray();
            }
            else
            {
                if (!brandLangBodies.LangBodies.ContainsKey(lang))
                {
                    _logger.LogInformation("Template (ID: {templateId}) for brand {brand} with required lang {lang} doesn't exist, creating new one.",
                                           templateEntity.Template.Id, request.Brand, request.Lang);

                    brandLangBodies.LangBodies.Add(lang, request.TemplateBody);
                }

                brandLangBodies.LangBodies[lang] = request.TemplateBody;
            }

            if (!string.IsNullOrEmpty(request.DefaultBrand))
            {
                templateEntity.Template.DefaultBrand = request.DefaultBrand;
            }

            templateEntity.Template.DefaultLang = request.DefaultLang;

            await _templateWriter.InsertOrReplaceAsync(templateEntity);

            return(new SendResponse {
                Result = SmsSendResult.OK
            });
        }