Exemple #1
0
 public async Task CreateOrUpdate(CreateOrUpdateSMSTemplateInput input)
 {
     CheckSMSProvider(input.SmsProvider);
     if (input.Id.HasValue && input.Id.Value > 0)
     {
         await UpdateTemplateAsync(input);
     }
     else
     {
         await CreateTemplateAsync(input);
     }
 }
Exemple #2
0
        protected virtual async Task UpdateTemplateAsync(CreateOrUpdateSMSTemplateInput input)
        {
            Debug.Assert(input.Id != null, "input.Edition.Id should be set.");

            var template = await _smsTemplateManager.GetByIdAsync(input.Id.Value);

            template.Name         = input.Name;
            template.TemplateCode = input.TemplateCode;
            template.SmsProvider  = input.SmsProvider;
            template.IsActive     = input.IsActive;

            await _smsTemplateManager.SMSTemplateRepository.EnsureCollectionLoadedAsync(template, t => t.Items);

            //删除不存在的参数
            var existItemIds = input.Items.Select(i => i.Id);
            var items2Remove = template.Items.Where(i => !existItemIds.Contains(i.Id)).ToList();

            foreach (var item in items2Remove)
            {
                template.Items.Remove(item);
            }

            //添加或更新参数
            foreach (var itemInput in input.Items)
            {
                if (itemInput.Id.HasValue && itemInput.Id.Value > 0)
                {
                    var item = template.Items.FirstOrDefault(x => x.Id == itemInput.Id.Value);
                    if (item != null)
                    {
                        item.DataItemName  = itemInput.DataItemName;
                        item.DataItemValue = itemInput.DataItemValue;
                    }
                }
                else
                {
                    template.Items.Add(new SMSTemplateItem()
                    {
                        DataItemName  = itemInput.DataItemName,
                        DataItemValue = itemInput.DataItemValue,
                    });
                }
            }

            await _smsTemplateManager.UpdateAsync(template);
        }
Exemple #3
0
        protected virtual async Task CreateTemplateAsync(CreateOrUpdateSMSTemplateInput input)
        {
            var template = new SMSTemplate()
            {
                Name         = input.Name,
                TemplateCode = input.TemplateCode,
                SmsProvider  = input.SmsProvider,
                IsActive     = input.IsActive,
                Items        = input.Items.Select(x => new SMSTemplateItem()
                {
                    DataItemName  = x.DataItemName,
                    DataItemValue = x.DataItemValue
                }).ToList(),
            };

            await _smsTemplateManager.CreateAsync(template);
        }