public async Task <IHttpActionResult> AddUser([FromBody] LoginDto user)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var email     = new EmailService();
            var checkUser = await _unitOfWork.Repository <User>().FindAsync(item => item.Email == user.Email);

            if (checkUser != null)
            {
                if (!checkUser.IsActived)
                {
                    var checkConfirm = await _unitOfWork.Repository <ConfirmRegistration>().GetAsync(checkUser.Id);

                    if (checkConfirm == null)
                    {
                        checkConfirm     = new ConfirmRegistration();
                        checkConfirm.Key = email.SendEmail(user).ToString();
                        checkConfirm.DateOfRegistration = DateTime.Now;
                        _unitOfWork.Repository <ConfirmRegistration>().Attach(checkConfirm);
                    }
                    else
                    {
                        checkConfirm.Key = email.SendEmail(user).ToString();
                        checkConfirm.DateOfRegistration = DateTime.Now;
                        _unitOfWork.Repository <ConfirmRegistration>().Attach(checkConfirm);
                    }
                    await _unitOfWork.SaveAsync();
                }
                else
                {
                    return(BadRequest("The user with this name already exists."));
                }
            }
            else
            {
                var key     = email.SendEmail(user);
                var newUser = new User {
                    Email = user.Email, Password = user.Password, IsActived = false, BirthDate = DateTime.UtcNow
                };
                _unitOfWork.Repository <User>().Add(newUser);
                _unitOfWork.Repository <ConfirmRegistration>().Add(new ConfirmRegistration()
                {
                    Id = newUser.Id, Key = key.ToString(), DateOfRegistration = DateTime.Now
                });
                await _unitOfWork.SaveAsync();
            }

            return(Ok());
        }
Exemplo n.º 2
0
        public async Task SendRegistrationConfirmationEmailAsync(ConfirmRegistrationMessage model)
        {
            var template = new ConfirmRegistration();

            template.ConfirmationCode = model.Token;

            var text = template.TransformText();

            var message = new SendGridMessage();

            message.To      = new[] { new MailAddress(model.Email, model.FullName) };
            message.Subject = $"Подтверждение регистрации на AZUREday {Configuration.Year}";
            message.Html    = text;
            message.From    = new MailAddress(Configuration.SendGridFromEmail, Configuration.SendGridFromName);
            message.ReplyTo = new[] { new MailAddress(Configuration.SendGridFromEmail, Configuration.SendGridFromName) };

            await SendEmail(message);
        }
Exemplo n.º 3
0
        public async Task <IHttpActionResult> Confirmation(ConfirmRegistration details)
        {
            // To do - Move the following code to a single method & use it across the project
            IEnumerable <string> tokenValues;
            string tokenValue = "";

            if (Request.Headers.TryGetValues("AuthorizationToken", out tokenValues))
            {
                tokenValue = tokenValues.FirstOrDefault();
            }
            var payment = await loanService.ConfirmationforLoanAsync(tokenValue, details);

            if (payment == null)
            {
                return(NotFound());
            }
            return(Ok(payment));
        }