public async Task <ActionResult> Users(int id = 0, int page = 1) { var pageNumber = page; if (pageNumber < 1) { pageNumber = 1; } PagedList <User> users; ViewBag.RoleId = id; if (SetLocaleRole.IsValid(id)) { users = await _userService.GetAllByRoleId(id, pageNumber); } else { users = await _userService.GetUsers(pageNumber); } var list = users.Items.Select(UserModel.MapUserToUserModel).ToList(); var model = new PageModel <UserModel> { Items = list, HasNextPage = users.HasNextPage, HasPreviousPage = users.HasPreviousPage, Number = users.Number, TotalCount = users.TotalCount, TotalPageCount = users.TotalPageCount }; return(View(model)); }
/// <summary> /// /// </summary> /// <param name="model"></param> /// <param name="roleId">default is 3 - SetLocaleRole.Developer.Value </param> /// <returns></returns> public async Task <int?> Create(UserModel model, int roleId = 3) { var img = GravatarHelper.GetGravatarURL(model.Email, 55, "mm"); var user = new User { Email = model.Email, Name = model.Name, PasswordHash = BCrypt.Net.BCrypt.HashPassword(model.Password), ImageUrl = img, RoleId = roleId, RoleName = SetLocaleRole.GetString(roleId), IsActive = true, Language = model.Language }; _userRepo.Create(user); if (roleId == SetLocaleRole.Developer.Value) { var app = new App { UserEmail = model.Email, Name = model.Name, Url = "example.com", IsActive = true, Tokens = new List <Token> { new Token { Key = Guid.NewGuid().ToString().Replace("-", string.Empty), UsageCount = 0, IsAppActive = true } } }; _appRepository.Create(app); _appRepository.SaveChanges(); } if (!_userRepo.SaveChanges()) { return(null); } return(await Task.FromResult(user.Id)); }