示例#1
0
        public ActionResult SaveClone(EmailTemplate model)
        {
            DBEntities e = COREobject.i.Context;

            if (ModelState.IsValid)
            {
                EmailTemplate row = e.EmailTemplates.Include("PlaceholderList").Include("ContentList").Single(m => m.Id == model.Id);

                // Naklonujeme šablonu
                EmailTemplate newRow = new EmailTemplate();
                newRow.Name    = model.Name;
                newRow.AppId   = model.AppId;
                newRow.Is_HTML = model.Is_HTML;

                e.EmailTemplates.Add(newRow);
                e.SaveChanges();

                // Naklonujeme proměnné
                foreach (EmailPlaceholder plc in row.PlaceholderList)
                {
                    EmailPlaceholder newPlc = new EmailPlaceholder();
                    newPlc.Description = plc.Description;
                    newPlc.Hermes_Email_Template_Id = newRow.Id;
                    newPlc.Num_Order = plc.Num_Order;
                    newPlc.Prop_Name = plc.Prop_Name;

                    e.EmailPlaceholders.Add(newPlc);
                }

                // Naklonujeme content
                foreach (EmailTemplateContent content in row.ContentList)
                {
                    EmailTemplateContent newContent = new EmailTemplateContent();
                    newContent.Content                  = content.Content;
                    newContent.Content_Plain            = content.Content_Plain;
                    newContent.From_Email               = content.From_Email;
                    newContent.From_Name                = content.From_Name;
                    newContent.Hermes_Email_Template_Id = newRow.Id;
                    newContent.LanguageId               = content.LanguageId;
                    newContent.Subject                  = content.Subject;

                    e.EmailContents.Add(newContent);
                }

                e.SaveChanges();

                return(RedirectToRoute("Hermes", new { @action = "Index" }));
            }
            else
            {
                return(View("~/Views/Hermes/Template/Form.cshtml", model));
            }
        }
示例#2
0
        public ActionResult Delete(int?emailId, int?id)
        {
            DBEntities       e   = COREobject.i.Context;
            EmailPlaceholder row = e.EmailTemplates.Single(t => t.Id == emailId).PlaceholderList.Single(p => p.Id == id);

            if (row == null)
            {
                throw new Exception("Došlo k neoèekávané chybì");
            }

            e.EmailPlaceholders.Remove(row);
            e.SaveChanges();

            return(RedirectToRoute("HermesPlaceholders", new { @action = "Index", @emailId = emailId }));
        }
示例#3
0
        public ActionResult Save(EmailPlaceholder model, int?emailId, int?id)
        {
            if (emailId == null)
            {
                throw new Exception("Došlo k neoèekávané chybì");
            }

            DBEntities e = COREobject.i.Context;

            if (!ModelState.IsValid && model.Id != 0)
            {
                return(View("~/Views/Hermes/Placeholder/Form.cshtml", model));
            }
            else
            {
                // Záznam již existuje - pouze upravujeme
                if (!model.Id.Equals(0))
                {
                    EmailPlaceholder row = e.EmailPlaceholders.Single(m => m.Id == model.Id);
                    row.Prop_Name   = model.Prop_Name;
                    row.Description = model.Description;

                    e.SaveChanges();
                }
                else
                {
                    model.Hermes_Email_Template_Id = emailId.Value;
                    if (e.EmailPlaceholders.Where(p => p.Hermes_Email_Template_Id == emailId).Count() == 0)
                    {
                        model.Num_Order = 1;
                    }
                    else
                    {
                        model.Num_Order = e.EmailPlaceholders.Where(p => p.Hermes_Email_Template_Id == emailId).OrderByDescending(p => p.Num_Order).First().Num_Order + 1;
                    }

                    e.EmailPlaceholders.Add(model);
                    e.SaveChanges();
                }
                return(RedirectToRoute("HermesPlaceholders", new { @action = "Index", @emailId = emailId }));
            }
        }
示例#4
0
        public ActionResult SaveNumOrder(int?emailId, ICollection <int> ids)
        {
            DBEntities e = COREobject.i.Context;
            List <EmailPlaceholder> list = e.EmailTemplates.Single(t => t.Id == emailId).PlaceholderList.ToList();

            int order = 1;

            foreach (int id in ids)
            {
                EmailPlaceholder row = list.Single(p => p.Id == id);
                if (row == null)
                {
                    throw new Exception("Došlo k neoèekávané chybì. Promìnná nebyla nalezena.");
                }

                row.Num_Order = order;
                order++;
            }

            e.SaveChanges();

            return(RedirectToRoute("HermesPlaceholders", new { @action = "Index", @emailId = emailId }));
        }
示例#5
0
        private void BuildHermes()
        {
            progressHandler.SetActiveSection(EModule.Hermes);

            if (context != masterContext)
            {
                try
                {
                    progressHandler.SetMessage(type: MessageType.Info, message: "Copying email templates");

                    // remove old
                    context.EmailPlaceholders.RemoveRange(context.EmailPlaceholders.Where(ep => ep.Hermes_Email_Template.AppId == app.Id));
                    context.EmailContents.RemoveRange(context.EmailContents.Where(ec => ec.Hermes_Email_Template.AppId == app.Id));
                    context.EmailTemplates.RemoveRange(app.EmailTemplates);

                    // add new
                    foreach (EmailTemplate template in masterApp.EmailTemplates)
                    {
                        EmailTemplate newTemplate = new EmailTemplate
                        {
                            Application = app,
                            Is_HTML     = template.Is_HTML,
                            Name        = template.Name
                        };

                        foreach (EmailPlaceholder placeholder in template.PlaceholderList)
                        {
                            EmailPlaceholder newPlaceholder = new EmailPlaceholder
                            {
                                Description = placeholder.Description,
                                Num_Order   = placeholder.Num_Order,
                                Prop_Name   = placeholder.Prop_Name
                            };
                            newTemplate.PlaceholderList.Add(newPlaceholder);
                        }
                        foreach (EmailTemplateContent content in template.ContentList)
                        {
                            EmailTemplateContent newContent = new EmailTemplateContent
                            {
                                Content       = content.Content,
                                Content_Plain = content.Content_Plain,
                                From_Email    = content.From_Email,
                                From_Name     = content.From_Name,
                                LanguageId    = content.LanguageId,
                                Subject       = content.Subject
                            };
                            newTemplate.ContentList.Add(newContent);
                        }

                        context.EmailTemplates.Add(newTemplate);
                    }
                    context.SaveChanges();

                    progressHandler.SetMessage(type: MessageType.Success, message: "Copying email templates completed");
                }
                catch (Exception ex)
                {
                    progressHandler.Error(ex.Message);
                }
            }
            else
            {
                progressHandler.SetMessage(type: MessageType.Info, message: "Copying email templates is not necessary to generate");
            }
        }