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()); }
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); }
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)); }