Exemplo n.º 1
0
        public async Task <JsonResult> Register(User user)
        {
            if (ModelState.IsValid)
            {
                user.UserRegisteredIp     = UserSession.IpAddress;
                user.RegisteredMacAddress = UserSession.MacAddress;
                user.LastActivityIp       = UserSession.IpAddress;
                user.LastActiveMacAddress = UserSession.MacAddress;
                user.EmploymentTypeId     = (int)EmploymentType.ContractHourly; // this is default employemnt type at registration. later admin can set the type
                user.DateCreatedUtc       = DateTimeOffset.UtcNow;
                user.LastActivityDateUtc  = DateTimeOffset.UtcNow;
                user.LastUpdatedUtc       = DateTimeOffset.UtcNow;
                user.PasswordLastChanged  = DateTime.UtcNow;

                Company company = _companyService.Get(code: user.RegistrationCode);
                if (company == null || company.Id < 1)
                {
                    user.ErrorMessage =
                        $"Registration code {user.RegistrationCode} doesn't match with any  Company in the system";
                    ModelState.AddModelError("", user.ErrorMessage);
                    SetRegistrationContext(user);
                    return(Json(user));
                }
                user.CompanyId = company.Id;
                user.IsActive  = true;

                var result = await UserManager.CreateAsync(user, user.Password);

                if (result.Succeeded)
                {
                    user.RegistrationAddress.UserId = user.Id;
                    _userService.AddAddress(user.RegistrationAddress);
                    await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                    //return RedirectToAction("Index", "Home");

                    string emailMessage = _userService.ComposeRegisteredEmail(user);
                    _emailService.SendEmail(emailMessage, "Successfully Registered", new[] { user.Email });

                    return(Json(user));
                }
                user.Uid          = -5;
                user.ErrorMessage = string.Join("<br/>", result.Errors.Select(x => x));
                AddIdentityErrors(result);
            }
            else
            {
                ReadModelStateError(modelState: ModelState);
                user.ErrorMessage = ViewData["ModelError"] as string;
            }
            SetRegistrationContext(user);
            // If we got this far, something failed, redisplay form
            return(Json(user));
        }
Exemplo n.º 2
0
 public CompanyTBL GetCompany(Guid guid)
 {
     return(_compRespository.Get(guid));
 }
Exemplo n.º 3
0
 public ActionResult Details()
 {
     ViewData["UserTypes"] = _userService.GetTypes();
     return(View(_companyService.Get(OperatingUser.CompanyId)));
 }