public ActionResult ImportAllTemplates()
        {
            // Hidden action for admins
            var converter = new MessageTemplateConverter(Services.DbContext);

            converter.ImportAll(Services.WorkContext.WorkingLanguage);

            NotifySuccess("All file based message templates imported successfully.");

            return(RedirectToAction("List"));
        }
Exemple #2
0
        public void Seed(SmartObjectContext context)
        {
            context.MigrateLocaleResources(MigrateLocaleResources);
            context.SaveChanges();

            if (HostingEnvironment.IsHosted && DataSettings.DatabaseIsInstalled())
            {
                // Import all xml templates on disk
                var converter = new MessageTemplateConverter(context);
                var language  = ResolveMasterLanguage(context);
                converter.ImportAll(language);

                DropDefaultValueConstraint(context);
            }
        }
        public ActionResult SaveInFile(int id)
        {
            var template = _messageTemplateService.GetMessageTemplateById(id);

            if (template == null)
            {
                return(RedirectToAction("List"));
            }

            try
            {
                var converter = new MessageTemplateConverter(Services.DbContext);
                converter.Save(template, Services.WorkContext.WorkingLanguage);
            }
            catch (Exception ex)
            {
                NotifyError(ex);
            }

            return(RedirectToAction("Edit", template.Id));
        }
        private void PopulateMessageTemplates()
        {
            var converter = new MessageTemplateConverter(_ctx);

            converter.ImportAll(_config.Language);
        }
 private async Task PopulateMessageTemplates()
 {
     var converter = new MessageTemplateConverter(_db, EngineContext.Current.Application);
     await converter.ImportAllAsync(_config.Language);
 }
Exemple #6
0
        private void ValidateMessageContext(MessageContext ctx, ref object[] modelParts)
        {
            var t = ctx.MessageTemplate;

            if (t != null)
            {
                if (t.To.IsEmpty() || t.Subject.IsEmpty() || t.Name.IsEmpty())
                {
                    throw new InvalidOperationException("Message template validation failed, because at least one of the following properties has not been set: Name, To, Subject.");
                }
            }

            if (ctx.BaseUri == null)
            {
                ctx.BaseUri = new Uri(CommonHelper.GetBaseUrl);
            }

            if (ctx.LanguageId.GetValueOrDefault() == 0)
            {
                ctx.Language   = _services.WorkContext.WorkingLanguage;
                ctx.LanguageId = ctx.Language.Id;
            }
            else
            {
                ctx.Language = _languageService.GetById(ctx.LanguageId.Value);
            }

            var parts = modelParts?.AsEnumerable() ?? Enumerable.Empty <object>();

            if (ctx.MessageTemplate == null)
            {
                if (ctx.MessageTemplateName.IsEmpty())
                {
                    throw new ArgumentException("'MessageTemplateName' must not be empty if 'MessageTemplate' is null.", nameof(ctx));
                }

                ctx.MessageTemplate = MessageTemplateConverter.Load(ctx.MessageTemplateName);
                if (ctx.MessageTemplate == null)
                {
                    throw new FileNotFoundException("The message template '{0}' does not exist.".FormatInvariant(ctx.MessageTemplateName));
                }
            }

            if (ctx.EmailAccount == null)
            {
                ctx.EmailAccount = GetEmailAccountOfMessageTemplate(ctx.MessageTemplate);
            }

            if (ctx.SystemSettings == null)
            {
                ctx.SystemSettings = _services.Resolve <ISystemSettingService>().Get(x => x.Status == 1);
            }

            if (ctx.Customer == null)
            {
                // Try to move Customer from parts to MessageContext
                var customer = parts.OfType <Customer>().FirstOrDefault();
                if (customer != null)
                {
                    // Exclude the found customer from parts list
                    parts = parts.Where(x => !object.ReferenceEquals(x, customer));
                }

                ctx.Customer = customer ?? _services.WorkContext.CurrentCustomer;
            }

            var orderDefault = parts.OfType <Order>().FirstOrDefault();

            if (orderDefault != null)
            {
                foreach (var item in orderDefault.OrderItems)
                {
                    item.Post = _postService.GetById(item.PostId);
                }
            }

            modelParts = parts.ToArray();
        }