Beispiel #1
0
        public IHttpActionResult Post(RoleViewModel vm)
        {
            if (ModelState.IsValid)
            {
                bool isCompleted = false;
                try {
                    if (vm.IsDbRole)
                    {
                        isCompleted = _RoleService.AddDbUserRole(vm.RoleName, vm.EmpId, vm.Include);
                    }
                    else
                    {
                        isCompleted = _RoleService.AddUserRole(vm.RoleName, vm.User, vm.Include);
                    }
                } catch (SmartException ex) {
                    return(BadRequest(ex.Message));
                }


                if (!isCompleted)
                {
                    return(BadRequest("Save User Role was failed."));
                }

                RecordTransactionHistory(vm);
                return(Ok(isCompleted));
            }

            return(BadRequest(ModelState));
        }
Beispiel #2
0
        public async Task <IActionResult> CreateUser(Host.Models.AccountViewModels.UserInfoModel user)
        {
            if (!ModelState.IsValid)
            {
                return(View("NewHire", user));
            }
            if (user.Id != null)
            {
                using (var scope = _serviceProvider.GetRequiredService <IServiceScopeFactory>().CreateScope())
                {
                    var context = scope.ServiceProvider.GetService <ApplicationDbContext>();
                    context.Database.Migrate();
                    var userMgr     = scope.ServiceProvider.GetRequiredService <UserManager <ApplicationUser> >();
                    var userEmail   = userMgr.FindByEmailAsync(user.Email).Result;
                    var userProfile = userMgr.FindByEmailAsync(user.Email);

                    userEmail.UserName = user.UserName;
                    userEmail.Email    = user.Email;
                    userEmail.Status   = true;

                    // userEmail.PasswordHash = user.Password;
                    userEmail.NormalizedUserName = user.NormalizeUserName;

                    //var applicationUser = new ApplicationUser
                    //{
                    //    Email = user.Email,
                    //    Id = user.Id,
                    //    NormalizedEmail = user.NormalizeEmail,
                    //    AccessFailedCount = user.AccessFailedCount,
                    //    EmailConfirmed = user.EmailConfirmed,
                    //    PhoneNumber = user.PhoneNumber,
                    //    UserName = user.UserName,
                    //};

                    //await _userManager.ChangePasswordAsync(applicationUser, user.ConfrimedPassword, user.Password);
                    var result = userMgr.UpdateAsync(userEmail).Result;
                    if (!result.Succeeded)
                    {
                        ModelState.AddModelError(result.Errors.ToString(), result.Errors.ToString());
                        throw new Exception(result.Errors.First().Description);
                    }

                    _roleService.UpdateUserRole(userEmail.Id, user.RoleId);

                    Console.WriteLine("User Updated");

                    return(RedirectToAction("EmployeeProfile", "Employee"));
                }
                return(View());
            }
            using (var scope = _serviceProvider.GetRequiredService <IServiceScopeFactory>().CreateScope())
            {
                var context = scope.ServiceProvider.GetService <ApplicationDbContext>();
                context.Database.Migrate();
                var userMgr   = scope.ServiceProvider.GetRequiredService <UserManager <ApplicationUser> >();
                var userEmail = userMgr.FindByEmailAsync(user.Email).Result;
                if (userEmail == null)
                {
                    var userName = new ApplicationUser
                    {
                        UserName = user.UserName,
                        Email    = user.Email,
                        Status   = true
                    };
                    var result = userMgr.CreateAsync(userName, user.Password).Result;
                    if (!result.Succeeded)
                    {
                        ModelState.AddModelError(result.Errors.ToString(), result.Errors.ToString());
                        throw new Exception(result.Errors.First().Description);
                    }

                    result = userMgr.AddClaimsAsync(userName, new Claim[] {
                        new Claim(JwtClaimTypes.Name, user.UserName),
                        new Claim(JwtClaimTypes.GivenName, user.UserName),
                        new Claim(JwtClaimTypes.FamilyName, user.UserName),
                        new Claim(JwtClaimTypes.Email, user.Email),
                        new Claim(JwtClaimTypes.EmailVerified, "true", ClaimValueTypes.Boolean)
                    }).Result;
                    if (!result.Succeeded)
                    {
                        throw new Exception(result.Errors.First().Description);
                    }
                    _roleService.AddUserRole(userName.Id, user.RoleId);

                    Console.WriteLine("User Created");
                    var employeProfile = new EmployeeProfileDto
                    {
                        FirstName       = user.UserName,
                        FkInitiatedById = GetUserid().ToString(),
                        FkUserId        = userName.Id,
                        CreatedOn       = DateTime.Now,
                        WorkEmail       = user.Email,
                    };

                    await _employeeProfileService.AddEmployeeProfile(employeProfile);

                    if (user.RoleId == "cd149620-3f5c-4081-94d1-f24b2408aa72")
                    {
                        var company = new CompanyDto
                        {
                            Name   = user.UserName,
                            UserId = userName.Id
                        };
                        await _companyService.AddCompany(company);
                    }

                    return(RedirectToAction("EmployeeProfile", "Employee"));
                }
                return(View());
            }
        }