public ActionResult CreatePost(EmailTemplateViewModel model)
        {
            if (!this.services.Authorizer.Authorize(Permissions.BasicDataPermission))
            {
                return new HttpUnauthorizedResult();
            }

            if (!this.ModelState.IsValid)
            {
                model = model ?? new EmailTemplateViewModel();
                this.FillByTypeItems(model.Types, null);
                return this.View("Create", model);
            }

            EmailTemplateRecord emailTemplate = new EmailTemplateRecord();

            emailTemplate.Name = model.Name;
            emailTemplate.TypeId = model.TypeId;
            emailTemplate.Body = model.Text;
            emailTemplate.Subject = model.Subject;

            this.emailTemplateRepository.Create(emailTemplate);
            this.emailTemplateRepository.Flush();

            return RedirectToAction("Index");
        }
Ejemplo n.º 2
0
        private void CreateEmailTemplates()
        {
            var emailTemplates = this.emailTemplatesRepository.Table.ToList();

            // Ticket
            EmailTemplateRecord newTicketEmailTemplate = emailTemplates.FirstOrDefault(c => c.TypeId == (int)EmailTemplateType.TicketAssignedToUser);

            if (newTicketEmailTemplate == null)
            {
                newTicketEmailTemplate = new EmailTemplateRecord
                {
                    TypeId  = (int)EmailTemplateType.TicketAssignedToUser,
                    Subject = "New Ticket {ETicket.Title}",
                    Body    = @"<p>Dear {EUser.FullName}</p>
<p>It is to let you know that the ticket '{ETicket.Title}' has been assigned to you.</p>
<p><span style='display: inline-block; width: 150px; color: gray;'>Requesting User:</span> <span>{ETicket.RequestingUserFullName}</span></p>
<p><span style='display: inline-block; width: 150px; color: gray;'>Title:</span> <span>{ETicket.Title}</span></p>
<p><span style='display: inline-block; width: 150px; color: gray;'>Priority:</span> <span>{ETicket.Priority}</span></p>
<p><span style='display: inline-block; width: 150px; color: gray;'>Service:</span> <span>{ETicket.Service}</span></p>
<p><span style='display: inline-block; width: 150px; color: gray;'>Ticket Type:</span> <span>{ETicket.TicketType}</span></p>
<p>Orchard Collaboration System</p>",
                    Name    = "Ticket Assignment EmailTemplate"
                };

                this.emailTemplatesRepository.Create(newTicketEmailTemplate);
            }

            // Ticket
            EmailTemplateRecord followerEmailTemplate = emailTemplates.FirstOrDefault(c => c.TypeId == (int)EmailTemplateType.FollowersNotification);

            if (followerEmailTemplate == null)
            {
                followerEmailTemplate = new EmailTemplateRecord
                {
                    TypeId  = (int)EmailTemplateType.FollowersNotification,
                    Subject = "New Changes in {EActivityStream.ContentDescription}",
                    Body    = @"<p>Dear {EUser.FullName}</p>
                        <p>It is to let you know that the following changes has been applied to <a href='{EActivityStream.Url}'>'{EActivityStream.ContentDescription}'</a></p>
                        <p><span style='display: inline-block; width: 150px; color: gray;'>Changed by:</span> <span>{EActivityStream.ChangedByFullname}</span></p>
                        <p><span style='display: inline-block; width: 150px; color: gray;'>Description:</span> <span>{EActivityStream.ChangeDescription}</span></p>
                        <p>{EActivityStream.Changes}</p>
                        <p>Orchard Collaboration System</p>",
                    Name    = "New Changes Notification"
                };

                this.emailTemplatesRepository.Create(followerEmailTemplate);
            }


            // CRM Comment
            EmailTemplateRecord commentEmailTemplate = emailTemplates.FirstOrDefault(c => c.TypeId == (int)EmailTemplateType.NewMessage);

            if (commentEmailTemplate == null)
            {
                commentEmailTemplate = new EmailTemplateRecord
                {
                    TypeId  = (int)EmailTemplateType.NewMessage,
                    Subject = "New Comment {ETitle.Title}",
                    Body    = @"<p>Dear {EUser.FullName}</p>
<p>It is to let you know that a new comment for the ticket '{ETicket.Title}' has been written.</p>
<p><span style='display: inline-block; width: 150px; color: gray;'>Requesting User:</span> <span>{ETicket.RequestingUserFullName}</span></p>
<p><span style='display: inline-block; width: 150px; color: gray;'>Title:</span> <span>{ETicket.Title}</span></p>
<p><span style='display: inline-block; width: 150px; color: gray;'>Priority:</span> <span>{ETicket.Priority}</span></p>
<p><span style='display: inline-block; width: 150px; color: gray;'>Service:</span> <span>{ETicket.Service}</span></p>
<p><span style='display: inline-block; width: 150px; color: gray;'>Ticket Type:</span> <span>{ETicket.TicketType}</span></p>
<p>Orchard Collaboration System</p>",
                    Name    = "New Message EmailTemplate"
                };

                this.emailTemplatesRepository.Create(commentEmailTemplate);
            }

            //
            EmailTemplateRecord createTicketConfirmationTemplate = emailTemplates.FirstOrDefault(c => c.TypeId == (int)EmailTemplateType.TicketCreated);

            if (createTicketConfirmationTemplate == null)
            {
                createTicketConfirmationTemplate = new EmailTemplateRecord
                {
                    TypeId  = (int)EmailTemplateType.TicketCreated,
                    Subject = "New Ticket Confirmation {ETitle.Title}",
                    Body    = @"<p>Dear {EUser.FullName}</p>
<p>It is to let you know that the ticket '{ETicket.Title}' has been created successfully.</p>
<p><span style='display: inline-block; width: 150px; color: gray;'>Requesting User:</span> <span>{ETicket.RequestingUserFullName}</span></p>
<p><span style='display: inline-block; width: 150px; color: gray;'>Title:</span> <span>{ETicket.Title}</span></p>
<p><span style='display: inline-block; width: 150px; color: gray;'>Priority:</span> <span>{ETicket.Priority}</span></p>
<p><span style='display: inline-block; width: 150px; color: gray;'>Service:</span> <span>{ETicket.Service}</span></p>
<p><span style='display: inline-block; width: 150px; color: gray;'>Ticket Type:</span> <span>{ETicket.TicketType}</span></p>
<p>Orchard Collaboration System</p>",
                    Name    = "Ticket creation EmailTemplate"
                };

                this.emailTemplatesRepository.Create(createTicketConfirmationTemplate);
            }

            this.emailTemplatesRepository.Flush();
        }