public async Task <ActionResult> AcceptRegisterInvitation(BusinessInvitationModel model) { if (ModelState.IsValid) { Guid business_id = Guid.Parse(model.BusinessId); var user = new User { UserName = model.UserName, Email = model.Email }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { applicationDbContext.BusinessUsers.Add(new BusinessUser() { User_Id = user.Id, Business_Id = business_id, IsRoot = false, LastUpdated = DateTime.Now, Role_Id = model.RoleId }); await applicationDbContext.SaveChangesAsync(); await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); return(RedirectToAction("Index", "Home")); } foreach (var error in result.Errors) { ModelState.AddModelError("", error); } } return(RedirectToAction("WorkerInvitationConfig", new { businessId = model.BusinessId, ownerId = model.OwnerId, email = model.Email })); }
public async Task <ActionResult> WorkerInvitationConfig(string businessId, string ownerId, string email, string roleId) { Guid business_id = Guid.Parse(businessId); Business business = await applicationDbContext.Businesses.Include("BusinessUsers").FirstOrDefaultAsync(x => x.Id == business_id); User user = await applicationDbContext.Users.FirstOrDefaultAsync(x => x.Id == ownerId); User worker = await applicationDbContext.Users.FirstOrDefaultAsync(x => x.Email == email); IdentityRole role = await applicationDbContext.Roles.FirstOrDefaultAsync(x => x.Id == roleId); bool exist = false; if (User.Identity.IsAuthenticated) { string currentId = User.Identity.GetUserId(); exist = business.BusinessUsers.FirstOrDefault(x => x.User_Id == currentId) != null; } BusinessInvitationModel result = new BusinessInvitationModel() { Email = email, Owner = user, Business = new BusinessModel() { DT_RowId = business.Id.ToString(), Name = business.Name }, AlreadySubscribed = exist, AlreadySystem = worker != null, Role = role }; return(View(result)); }