public async Task CreateOrUpdate(CreateOrUpdateSMSTemplateInput input) { CheckSMSProvider(input.SmsProvider); if (input.Id.HasValue && input.Id.Value > 0) { await UpdateTemplateAsync(input); } else { await CreateTemplateAsync(input); } }
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); }
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); }