private async Task <(bool, ApplicationUser)> CreateUser(InviteCustomerModel inviteCustomerModel) { var user = new ApplicationUser { UserName = inviteCustomerModel.Email, Email = inviteCustomerModel.Email, FirstName = inviteCustomerModel.FirstName, LastName = inviteCustomerModel.LastName }; //_appDbContext.Add(user); //await _appDbContext.SaveChangesAsync(); var result = await _userManager.CreateAsync(user); await _userManager.AddToRoleAsync(user, "User"); List <UserAndProjects> listUserProject = new List <UserAndProjects>(); List <ProjectModel> projects = inviteCustomerModel.Projects.Where(x => x.IsSelected == true).ToList(); foreach (var item in projects) { var userProjects = new UserAndProjects() { UserId = user.Id, ProjectId = item.Id }; listUserProject.Add(userProjects); } _appDbContext.AddRange(listUserProject); return(await _appDbContext.SaveChangesAsync() > 0 ? (true, user) : (false, user)); }
public async Task <IActionResult> SendInvite([FromBody] InviteCustomerModel inviteCustomerModel) { // string callBackUrl = $"{Request.Scheme}://{Request.Host}/add-password?userId={{0}}"; if (ModelState.IsValid) { var result = await _accountRepository.SendInvite(inviteCustomerModel); if (result) { return(Ok(new Response <bool> { Code = HttpStatusCode.OK, Data = result, Message = ResponseMessageModel.UserAccount.InviteSuccessfullySent })); } } return(BadRequest(new ErrorResponse(ResponseMessageModel.UserAccount.InviteNotSent))); }
public async Task <bool> SendInvite(InviteCustomerModel inviteCustomerModel) { var companySettings = _appDbContext.CompanySettings.FirstOrDefault(); if (companySettings == null) { return(false); } (bool isSuccess, ApplicationUser user) = await CreateUser(inviteCustomerModel); string url = string.Empty; if (isSuccess) { url = "<a href =" + string.Format($"{HostSettings.RequestSchema}://{HostSettings.Host}/add-password?userId={{0}}", user.Id) + " target=\"_blank\">Neela</a>"; companySettings.InvitationEmailMessage = companySettings.InvitationEmailMessage.Contains("{url}") ? companySettings.InvitationEmailMessage.Replace("{url}", url) : companySettings.InvitationEmailMessage; companySettings.InvitationEmailMessage = companySettings.InvitationEmailMessage.Contains("{name}") ? companySettings.InvitationEmailMessage.Replace("{name}", user.FirstName + " " + user.LastName) : companySettings.InvitationEmailMessage; SmtpSettingsModel smtpSettingsModel = new SmtpSettingsModel { EmailMessage = companySettings.InvitationEmailMessage, EmailSubject = companySettings.InvitationEmailSubject, EncryptionType = companySettings.SmtpencrcyptionType, SMTPAuthentication = companySettings.Smtpauthentication, SMTPFromEmail = companySettings.SmtpfromEmail, SMTPFromName = companySettings.SmtpfromName, SMTPHostUrl = companySettings.Smtphost, SMTPPassword = companySettings.Smtppassword, SMTPPort = companySettings.Smtpport, SMTPUserName = companySettings.Smtpusername }; _emailService.Send(new List <string>() { inviteCustomerModel.Email }, null, null, smtpSettingsModel); } return(isSuccess); }
public Task <bool> SendInvite(InviteCustomerModel inviteCustomerModel) { return(_accountData.SendInvite(inviteCustomerModel)); }