Пример #1
0
        private Result GetMailResult
        (
            MessageTemplateType type,
            SystemMailEntity systemMail,
            object additionalData,
            out MailEntity mail
        )
        {
            mail = null;

            var result = new Result();

            var template = _factory.GetMessageTemplate(type, additionalData);

            if (template == null)
            {
                result.Message = "Wrong tepmlate type.";
                return(result);
            }

            try
            {
                mail = template.GetMail(systemMail, additionalData);
            }
            catch (ArgumentException)
            {
                result.Message = "Can'nt build template. " +
                                 "Additional data has wrong type.";
                return(result);
            }

            result.Success = true;

            return(result);
        }
Пример #2
0
 public IMailBuilder AddSystemPart(SystemMailEntity systemPart)
 {
     _mail.From     = systemPart.From;
     _mail.FromName = systemPart.FromName;
     _mail.To       = systemPart.To;
     _mail.ToName   = systemPart.ToName;
     return(this);
 }
Пример #3
0
        public override MailEntity GetMail(SystemMailEntity systemMail, object additionalTemplateData)
        {
            StringBuilder htmlBuilder = new StringBuilder();
            WorkTaskDto   workTaskDto = additionalTemplateData as WorkTaskDto;

            SetAdditionalTemplateData(additionalTemplateData);

            var subject = "TaskTracker Task Deadline.";

            var html = htmlBuilder.Append
                           (@"<!DOCTYPE html>
                    <html>
                        <head>
                             <style> ")
                       .Append(TemplateStyleHolder.ICloudSuportedStyle)
                       .Append(@"</style>
                        </head>
                        <body>
                            <div class= 'message-header'>
                                <div class='title'>
                                    TaskTracker
                                </div>
                            </div>
                            <div class='message-content'>
                                <div>
                                    <h3>TaskTracker Team.</h3>
                                     <hr>")
                       .Append($"Hello {systemMail.ToName}.<br>")
                       .Append(@"Welcome to TaskTracker!<br>
                    Hurry up!!! <br>
                    For deadline for your task ")
                       .Append($"({taskName}) will be on {taskDeadline}." +
                               $"You have only: {timeLeft} hr.")
                       .Append(@")
                                </div>
                                <div class='base-button-container'>
                                    <a href='#...' class='base-button'>
                                        Go To Task!</a>
                                </div>
                            </div>
                            <div class='message-footer'>
                                <div class='text'>
                                    <h4>Contacts: </h4>
                                    Phone number: xxx-xxx-xxx<br>
                                    E-Mail: xxxx @mail.com
                            </div>
                        </div>
                    </body>
                </html>").ToString();

            return(_builder
                   .AddSystemPart(systemMail)
                   .AddSubject(subject)
                   .AddHtml(html)
                   .Build());
        }
        public async Task <IHttpActionResult> Register(RegisterUserViewModel model)
        {
            if (model == null)
            {
                return(this.BadRequest("Invalid user data"));
            }

            if (!ModelState.IsValid)
            {
                return(this.BadRequest(this.ModelState));
            }

            var user = new ApplicationUser
            {
                UserName = model.Name,
                Email    = model.Email
            };

            var identityResult = await UserManager.CreateAsync
                                     (user, model.Password);

            if (!identityResult.Succeeded)
            {
                return(GetErrorResult(identityResult));
            }

            var loginResult = Login(new LoginUserViewModel
            {
                Name     = model.Name,
                Password = model.Password
            });

            var systemMailEntity = new SystemMailEntity
            {
                From     = "*****@*****.**",
                FromName = "Admin",
                To       = model.Email,
                ToName   = model.Name
            };

            var workTaskUserDto = _registerModelMapper.Map(model);

            var userCreationResult = await _userService.CreateWorkTaskUserAsync
                                         (workTaskUserDto);

            if (!userCreationResult.Success)
            {
                return(BadRequest(userCreationResult.Message));
            }

            /*await _templateSender.SendAsync(
             *  MessageTemplateType.RegistrationConfirm,
             *  systemMailEntity, null);*/

            return(await loginResult);
        }
        /// <summary>
        /// Get message content.
        /// </summary>
        /// <param name="systemMail">System mail part.</param>
        /// <returns>MailEntity with all needed content for registration.</returns>
        public override MailEntity GetMail(SystemMailEntity systemMail,
                                           object additionalTemplateData = null)
        {
            StringBuilder htmlBuilder = new StringBuilder();

            var subject = "TaskTracker Registration.";

            var html = htmlBuilder.Append
                           (@"<!DOCTYPE html>
                    <html>
                        <head>
                             <style> ")
                       .Append(TemplateStyleHolder.ICloudSuportedStyle)
                       .Append(@"</style>
                        </head>
                        <body>
                            <div class= 'message-header'>
                                <div class='title'>
                                    TaskTracker
                                </div>
                            </div>
                            <div class='message-content'>
                                <div>
                                    <h3>TaskTracker Team.</h3>
                                     <hr>")
                       .Append($"Hello {systemMail.ToName}.<br>")
                       .Append(@"Welcome to TaskTracker!<br>
                    Thanks for your registration. 
                    Return to the site to update your information 
                    and start work with your tasks!
                                </div>
                                <div class='base-button-container'>
                                    <a href='#...' class='base-button'>
                                        Go To TaskTracker!</a>
                                </div>
                            </div>
                            <div class='message-footer'>
                                <div class='text'>
                                    <h4>Contacts: </h4>
                                    Phone number: xxx-xxx-xxx<br>
                                    E-Mail: xxxx @mail.com
                            </div>
                        </div>
                    </body>
                </html>").ToString();

            return(_builder
                   .AddSystemPart(systemMail)
                   .AddSubject(subject)
                   .AddHtml(html)
                   .Build());
        }
Пример #6
0
        public async Task <Result> SendAsync(MessageTemplateType type,
                                             SystemMailEntity systemMail, object additionalData)
        {
            var result = GetMailResult(type, systemMail,
                                       additionalData, out MailEntity mail);

            if (result.Success == false)
            {
                return(result);
            }

            using (_mailSender)
            {
                await _mailSender.SendMailAsync(mail);
            }

            result = new Result(true,
                                $"Message sended to user({systemMail.To}).");

            return(result);
        }
Пример #7
0
 public override MailEntity GetMail(SystemMailEntity systemMail,
                                    object additionalTemplateData)
 {
     throw new NotImplementedException();
 }
 public abstract MailEntity GetMail(SystemMailEntity systemMail,
                                    object additionalTemplateData);