public static string GetEmailTemplateTable(RestCommand command, int emailTemplateTableID)
        {
            EmailTemplateTable emailTemplateTable = EmailTemplateTables.GetEmailTemplateTable(command.LoginUser, emailTemplateTableID);

            if (emailTemplateTable.OrganizationID != command.Organization.OrganizationID)
            {
                throw new RestException(HttpStatusCode.Unauthorized);
            }
            return(emailTemplateTable.GetXml("EmailTemplateTable", true));
        }
예제 #2
0
        public EmailResponseDto <EmailTemplateTable> AddEmailTemplate(EmailTemplateTable templateInput)
        {
            var response = new EmailResponseDto <EmailTemplateTable>();

            try
            {
                var template = _context.EmailTemplates.FirstOrDefault(st => st.Name.ToLower().Equals(templateInput.Name.ToLower()) &&
                                                                      st.EmailPoolID.Equals(templateInput.EmailPoolID) && (string.IsNullOrEmpty(templateInput.Variant) ||
                                                                                                                           st.Variant.ToLower().Equals(templateInput.Variant.ToLower())));
                if (template != null)
                {
                    response.Status  = false;
                    response.Message = $"This template is already used.";
                    response.Result  = templateInput;
                }
                else
                {
                    templateInput.ID = Guid.NewGuid().ToString();
                    _context.EmailTemplates.Add(templateInput);
                    if (_context.SaveChanges() == 1)
                    {
                        response.Status  = true;
                        response.Message = "Added";
                        response.Result  = templateInput;
                    }
                    else
                    {
                        response.Status  = false;
                        response.Message = "Not Added";
                        response.Result  = templateInput;
                    }
                }

                return(response);
            }
            catch (Exception ex)
            {
                response.Status  = false;
                response.Message = ex.Message;
                return(response);
            }
        }
예제 #3
0
        public EmailResponseDto <EmailTemplateTable> UpdateEmailTemplate(EmailTemplateTable templateInput)
        {
            var response = new EmailResponseDto <EmailTemplateTable>();

            try
            {
                var template = _context.EmailTemplates.FirstOrDefault(st => st.Name.ToLower().Equals(templateInput.Name.ToLower()) &&
                                                                      st.EmailPoolID.Equals(templateInput.EmailPoolID) && (string.IsNullOrEmpty(templateInput.Variant) ||
                                                                                                                           st.Variant.ToLower().Equals(templateInput.Variant.ToLower())));
                if (template != null)
                {
                    template.MessageTemplate = templateInput.MessageTemplate;
                    template.Sender          = templateInput.Sender;
                    if (_context.SaveChanges() == 1)
                    {
                        response.Status  = true;
                        response.Message = "Updated";
                        response.Result  = templateInput;
                    }
                    else
                    {
                        response.Status  = false;
                        response.Message = "Failed To Update";
                        response.Result  = templateInput;
                    }
                }
                else
                {
                    response.Status  = false;
                    response.Message = $"Unable to find template with name {templateInput.Name} and variant {templateInput.Variant}";
                    response.Result  = templateInput;
                }

                return(response);
            }
            catch (Exception ex)
            {
                response.Status  = false;
                response.Message = ex.Message;
                return(response);
            }
        }
예제 #4
0
        public EmailTemplateTable GetEmailTemplate(string templateName, string channelKey, string variant = null)
        {
            var emailTemplate = new EmailTemplateTable();
            var emailQry      = (from t in _context.EmailTemplates
                                 join c in _context.EmailChannels on t.EmailPoolID equals c.EmailPoolID
                                 where c.Key.ToLower().Equals(channelKey.ToLower()) &&
                                 (t.Name.Equals(templateName) && string.IsNullOrEmpty(variant) || !string.IsNullOrEmpty(variant) && t.Name.Equals(templateName) && t.Variant.ToLower().Equals(variant.ToLower()))
                                 select t).ToList();

            if (!string.IsNullOrEmpty(variant))
            {
                emailTemplate = emailQry.FirstOrDefault(st => !string.IsNullOrEmpty(st.Variant));
            }
            else
            {
                emailTemplate = emailQry.FirstOrDefault();
            }

            _logger.LogDebug($"Template used : {emailTemplate?.Name}");

            return(emailTemplate);
        }