예제 #1
0
        // TODO Write Unit Tests
        public EmailTemplateContentModel GetEmailTemplate(EmailTemplatePlaceholdersGeneratorRequestModel data)
        {
            try
            {
                var dictionary = GetEmailTemplatePlaceholderDictionary(data);

                if (data.EmailTemplateType == EmailTemplateType.Office365TransitionReport)
                {
                    dictionary = GetTransitionEmailTemplatePlaceholderDictionary(data, dictionary);
                }

                var requestData = new EmailTemplatePlaceholdersGeneratorModel
                {
                    EmailTemplateType = data.EmailTemplateType,
                    PlacehoderList    = dictionary
                };

                var template = _emailTemplateService.GetEmailTemplate(requestData);

                return(template);
            }
            catch (Exception ex)
            {
                this.Log().Error("Error occured on GetEmailTemplate!", ex);
                throw;
            }
        }
예제 #2
0
        public void When_Nonexistent_Template_Type_Is_Provided_Should_Throw_Exception()
        {
            var data = new EmailTemplatePlaceholdersGeneratorModel
            {
                EmailTemplateType = EmailTemplateType.ChangePassword,
                PlacehoderList    = _placeholders
            };

            _sut.Invoking(y => y.GetEmailTemplate(data)).Should().Throw <Exception>().WithMessage("Can not find template ChangePassword");
        }
예제 #3
0
        public void When_No_Placeholders_Are_Provided_Should_Return_Template()
        {
            var data = new EmailTemplatePlaceholdersGeneratorModel
            {
                EmailTemplateType = EmailTemplateType.WelcomeCompanyCustomer
            };

            var template = _sut.GetEmailTemplate(data);

            template.Should().BeEquivalentTo(new EmailTemplateContentModel
            {
                Subject = "Welcome Company Customer",
                Body    = "This is template example for company (#CompanyName#)"
            });
        }
예제 #4
0
        public void When_Data_Is_Provided_Should_Return_Template()
        {
            var data = new EmailTemplatePlaceholdersGeneratorModel
            {
                EmailTemplateType = EmailTemplateType.WelcomeCompanyCustomer,
                PlacehoderList    = _placeholders
            };

            var template = _sut.GetEmailTemplate(data);

            template.Should().BeEquivalentTo(new EmailTemplateContentModel
            {
                Subject = "Welcome Company Customer",
                Body    = "This is template example for company CloudPlus"
            });
        }
예제 #5
0
        // TODO Write and Update tests
        public EmailTemplateContentModel GetEmailTemplate(EmailTemplatePlaceholdersGeneratorModel data)
        {
            var dbTemplate = _dbContext.EmailTemplates.AsNoTracking().FirstOrDefault(t => t.Type == data.EmailTemplateType.ToString());

            if (dbTemplate == null)
            {
                throw new Exception($"Can not find template {data.EmailTemplateType.ToString()}");
            }

            var template = new EmailTemplateContentModel
            {
                Body = data.PlacehoderList != null?PopulatePlaceholdersWithData(dbTemplate.Template, data.PlacehoderList) : dbTemplate.Template,
                           Subject = data.PlacehoderList != null?PopulatePlaceholdersWithData(dbTemplate.Subject, data.PlacehoderList) : dbTemplate.Subject,
                                         //Subject = dbTemplate.Subject
            };

            return(template);
        }
        // TODO Write Unit Tests
        public EmailTemplateContentModel GetWelcomeUserDontSendPasswordTemplate(EmailTemplateType type,
                                                                                string userName)
        {
            try
            {
                var dictionary = GetWelcomeUserPlaceholderDictionary(userName);

                var requestData = new EmailTemplatePlaceholdersGeneratorModel
                {
                    EmailTemplateType = type,
                    PlacehoderList    = dictionary
                };

                var template = _emailTemplateService.GetEmailTemplate(requestData);

                return(template);
            }
            catch (Exception ex)
            {
                this.Log().Error("Error occured on GetWelcomeUserDontSendPasswordTemplate!", ex);
                throw;
            }
        }
예제 #7
0
        public void When_Data_Is_Not_Provided_Should_Throw_Exception()
        {
            var data = new EmailTemplatePlaceholdersGeneratorModel();

            _sut.Invoking(y => y.GetEmailTemplate(data)).Should().Throw <Exception>().WithMessage("Can not find template None");
        }