Esempio n. 1
0
 /// <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);
 }
Esempio n. 2
0
 /// <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);
 }
Esempio n. 3
0
        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);
                }
            }
        }