/// <summary> /// Условия отправки шаблона /// </summary> /// <param name="templ">шаблон</param> /// <param name="smsSendConditionses">список условий</param> /// <param name="context"></param> /// <returns></returns> SMS_TEMPLATES AddSendConditionParams(SMS_TEMPLATES templ, IEnumerable <SmsSendConditions> smsSendConditionses, BdpEntities context) { foreach (var smsSendConditionse in smsSendConditionses) { templ.SMS_SEND_CONDITIONS_PARAMS.Add(new SMS_SEND_CONDITIONS_PARAMS { VALUE = smsSendConditionse.Value, ID_SMS_SEND_CONDITIONS = context.SMS_SEND_CONDITIONS.Single(x => x.KEY_CHAR_VALUE.Equals(smsSendConditionse.TypeCondition.ToString())).ID, ID_TYPE = context.SMS_SEND_CONDITIONS_TYPES.Single(x => x.KEY_CHAR_VALUE.Equals(smsSendConditionse.Parameter)).ID }); } return(templ); }
/// <summary> /// Параметры шаблона /// </summary> /// <param name="templ"></param> /// <param name="smsTemplatesParamses"></param> /// <param name="context"></param> /// <returns></returns> SMS_TEMPLATES AddSmsTemplatesParams(SMS_TEMPLATES templ, IEnumerable <SmsTemplatesParams> smsTemplatesParamses, BdpEntities context) { foreach (var smsTemplatesParamse in smsTemplatesParamses) { templ.SMS_TEMPLATES_PARAMS.Add(new SMS_TEMPLATES_PARAMS { VALUE = smsTemplatesParamse.Value, ID_CONDITION = context.SYS_CONDITIONS.Single(x => x.KEY_CHAR_VALUE.Equals(smsTemplatesParamse.TypeCondition.ToString())).ID, ID_FIELD = context.SYS_FIELDS.Single(x => x.KEY_CHAR_VALUE.Equals(smsTemplatesParamse.Field)).ID }); } return(templ); }
public Result <bool> SaveTemplate(ISmsTemplates template) { var res = new Result <bool>(); using (var context = new BdpEntities()) { using (var dbContextTransaction = context.Database.BeginTransaction()) { try { var existTemplate = CheckExistTemplate(template.SmsTemplatesParamses, context, template.Event.EventType, template.IsDefault); if (existTemplate != null) { //условия отправки шаблона existTemplate.SMS_SEND_CONDITIONS_PARAMS.ToList().ForEach(x => context.SMS_SEND_CONDITIONS_PARAMS.Remove(x)); existTemplate = AddSendConditionParams(existTemplate, template.SmsSendConditionses, context); existTemplate.IS_SEND = template.IsSend; existTemplate.MESSAGE = template.Message; existTemplate.IS_NEED_TRANSLIT = template.IsNeedTranslit; existTemplate.IS_DEFAULT = template.IsDefault; //запись в историю existTemplate.SMS_TEMPLATES_HISTORY.Add(new SMS_TEMPLATES_HISTORY { EDIT_DATE = DateTime.UtcNow, US_ID = context.SC_USERS.Single(x => x.SCU_LDAP_ACCOUNT.Equals(template.User.LadpName)).US_ID, }); } else { var templ = new SMS_TEMPLATES(); //условия отправки шаблона templ = AddSendConditionParams(templ, template.SmsSendConditionses, context); //параметры шаблона templ = AddSmsTemplatesParams(templ, template.SmsTemplatesParamses, context); //событие шаблона templ.OPT_SMS_EVENTS = context.OPT_SMS_EVENTS.Single( x => x.KEY_CHAR_VALUE.Equals(template.Event.EventType.ToString())); templ.IS_SEND = template.IsSend; templ.MESSAGE = template.Message; templ.IS_NEED_TRANSLIT = template.IsNeedTranslit; templ.IS_DEFAULT = template.IsDefault; //запись в историю templ.SMS_TEMPLATES_HISTORY.Add(new SMS_TEMPLATES_HISTORY { EDIT_DATE = DateTime.UtcNow, US_ID = context.SC_USERS.Single(x => x.SCU_LDAP_ACCOUNT.Equals(template.User.LadpName)).US_ID, }); context.SMS_TEMPLATES.Add(templ); } context.SaveChanges(); dbContextTransaction.Commit(); } catch (Exception ex) { dbContextTransaction.Rollback(); res.ResultOperation = false; res.ErrorMessage = ex.Message; res.Exception = res.Exception; } return(res); } } }