public async Task <string> IsValid(PreRegisteredUser user) { await Task.Run(() => { if (string.IsNullOrEmpty(user.UserName)) { return("User name is mandatory"); } _preRegistrationRepository.DeleteAsync(x => x.UserName == user.UserName).Wait(); _preRegistrationRepository.DeleteAsync(x => x.EmailAddress == user.EmailAddress).Wait(); if (string.IsNullOrEmpty(user.EmailAddress)) { return("Email address is mandatory"); } if (HttpContext.Current == null) { return(null); } var userExists = UserManager.FindByNameAsync(user.UserName).Result; return(userExists != null ? "The user name selected is already taken" : null); }); return(string.Empty); }
public async Task<string> IsValid(PreRegisteredUser user) { await Task.Run(() => { if (string.IsNullOrEmpty(user.UserName)) return "User name is mandatory"; if (string.IsNullOrEmpty(user.EmailAddress)) return "Email address is mandatory"; if (HttpContext.Current == null) return null; var userExists = UserManager.FindByNameAsync(user.UserName).Result; return userExists != null ? "The user name selected is already taken" : null; }); return string.Empty; }
public async Task <string> SavePreRegisteredUser(PreRegisteredUser user, bool sendEmail = true, bool inviteToTenant = false) { user.ValidUntil = DateTime.UtcNow.AddDays( Convert.ToInt32(ConfigurationManager.AppSettings["ValidPreregistrationDays"] ?? "5")); user.Token = Guid.NewGuid().ToString().Replace("-", ""); user.Activated = false; user = await _preRegistrationRepository.AddAsync(user); if (sendEmail && !inviteToTenant) { await _emailServices.SendEmail(user.EmailAddress, "TechTrackerX PreRegistration", "Preregistration", new Dictionary <string, string> { { "TOKEN", $"{ConfigurationManager.AppSettings["WebRoute"]}/register/{user.Token}" }, { "NAME", user.UserName } }, "EN-US"); } else if (sendEmail) { await _emailServices.SendEmail(user.EmailAddress, "TechTrackerX Invitation", "TenantInvite", new Dictionary <string, string> { { "LINK", $"{ConfigurationManager.AppSettings["WebRoute"]}/account/tenantinvite/{user.Token}" } }, "EN-US"); } return(user.Token); }
public async Task <IHttpActionResult> Preregistration([FromBody] PreRegisteredUser model) { var validation = await _userProfileServices.IsValid(model); string token; if (!string.IsNullOrEmpty(validation)) { return(BadRequest(validation)); } try { token = await _userProfileServices.SavePreRegisteredUser(model); return(Ok(token)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }