Ejemplo n.º 1
0
      public async Task <IActionResult> Register(RegisterViewModel model)
      {
          AccountController _accountController = null;

          if (ModelState.IsValid)
          {
              var user = new IdentityUser
              {
                  UserName = model.Email,
                  Email    = model.Email
              };
              var users = userManager.Users;
              int count = users.Count();
              Console.WriteLine(count);
              Console.WriteLine(users);
              if (count == 5)
              {
                  ViewBag.ErrorMessage = "You cannot register, Maximum no of users reached";
                  ViewBag.PageTitle    = "Register";
                  return(View(model));
              }
              else if (count < 5)
              {
                  var result = await userManager.CreateAsync(user, model.Password);

                  if (result.Succeeded)
                  {
                      IEnumerable <ActiveUsers> activeusers = _employeeRepository.AddActiveUser(model.Email);
                      HttpContext.Session.SetString("Email", model.Email);
                      if (activeusers.Count() == 4)
                      {
                          await signInManager.SignInAsync(user, isPersistent : false);

                          return(RedirectToAction("details", "home"));
                      }
                      if (activeusers.Count() > 4)
                      {
                          await _accountController.Logout();

                          _employeeRepository.RemoveActiveUsers(model.Email);
                          return(RedirectToAction("login", "account"));
                      }
                  }
                  foreach (var error in result.Errors)
                  {
                      ModelState.AddModelError(string.Empty, error.Description);
                  }
              }
              else
              {
                  ViewBag.ErrorMessage = "You cannot register, Maximum no of users reached";
              }
          }
          else
          {
              ViewBag.PageTitle = "Register";
          }
          return(View(model));
      }