Esempio n. 1
0
        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 }));
        }
Esempio n. 2
0
        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));
        }