Ejemplo n.º 1
0
        public IActionResult MessageUpdate(MessageTemplateModel model)
        {
            if (!ModelState.IsValid)
            {
                return(ErrorForKendoGridJson(ModelState.SerializeErrors().ToString()));
            }

            var message = _messageTemplateService.GetMessageTemplateById(model.Id);

            //standard message template
            if (model.TemplateTypeId == 0)
            {
                _genericAttributeService.SaveAttribute(message, SendinBlueDefaults.SendinBlueTemplateAttribute, false);
                model.TemplateType = _localizationService.GetResource("Plugins.Misc.SendinBlue.StandardTemplate");
                model.EditLink     = Url.Action("Edit", "MessageTemplate", new { id = model.Id, area = AreaNames.Admin });
            }

            //SendinBlue message template
            if (model.TemplateTypeId == 1)
            {
                var storeId            = _storeContext.ActiveStoreScopeConfiguration;
                var sendInBlueSettings = _settingService.LoadSetting <SendinBlueSettings>(storeId);

                //get template or create new one
                var currentTemplateId = _genericAttributeService.GetAttribute <int>(message, SendinBlueDefaults.TemplateIdAttribute);
                var templateId        = _sendInBlueEmailManager.GetTemplateId(currentTemplateId, message,
                                                                              _emailAccountService.GetEmailAccountById(sendInBlueSettings.EmailAccountId));

                _genericAttributeService.SaveAttribute(message, SendinBlueDefaults.SendinBlueTemplateAttribute, true);
                _genericAttributeService.SaveAttribute(message, SendinBlueDefaults.TemplateIdAttribute, templateId);
                model.TemplateType = _localizationService.GetResource("Plugins.Misc.SendinBlue.SendinBlueTemplate");
                model.EditLink     = $"{string.Format(SendinBlueDefaults.EditMessageTemplateUrl, templateId)}";
            }

            //update message template
            if (model.IsActive == message.IsActive)
            {
                return(new NullJsonResult());
            }

            message.IsActive = model.IsActive;
            _messageTemplateService.UpdateMessageTemplate(message);

            return(new NullJsonResult());
        }