public static UserListVm ResultToUserListVm(GetUsersQueryResult results, IConfiguration config) { if (results == null) { throw new ArgumentNullException(string.Format(MessagesModel.NullValueError, "results")); } if (config == null) { throw new ArgumentNullException(string.Format(MessagesModel.NullValueError, "config")); } UserListVm vm = new UserListVm(); vm.ItemsFound = results.Users.Count > 0; if (!vm.ItemsFound) { vm.Message = MessagesModel.NoItemsFound; vm.MessageStyle = MessagesModel.MessageStyles.Info; } foreach (var result in results.Users) { UserListItemVm user = ResultToUserLitsItemVm(result, config); vm.Users.Add(user); } return(vm); }
public void ToUserListVm_Should_Throw_Exception_When_Results_Is_Null() { GetUsersQueryResult results = null; IConfiguration config = GetConfig(); UserListVm actual = UserModelHelper.ResultToUserListVm(results, config); }
public void ToUserListVm_Should_Throw_Exception_When_Config_Is_Null() { ICollection <User> users = new List <User>(); GetUsersQueryResult results = new GetUsersQueryResult(users); IConfiguration config = null; UserListVm actual = UserModelHelper.ResultToUserListVm(results, config); }
public void ToUserListVm_Should_Return_UserListVm_When_No_Items_Found() { ICollection <User> users = new List <User>(); GetUsersQueryResult results = new GetUsersQueryResult(users); IConfiguration config = GetConfig(); UserListVm actual = UserModelHelper.ResultToUserListVm(results, config); Assert.AreEqual(MessagesModel.NoItemsFound, actual.Message); Assert.AreEqual(MessagesModel.MessageStyles.Info, actual.MessageStyle); }
public UserListVm GetUsers(GetUsersQuery query) { if (query == null) { throw new ArgumentNullException(string.Format(MessagesModel.NullValueError, "query")); } GetUsersQueryResult results = this.queryDispatcher.Dispatch <GetUsersQuery, GetUsersQueryResult, User>(query); UserListVm vm = UserModelHelper.ResultToUserListVm(results, this.config); return(vm); }
public void ToUserListVm_Should_Return_UserListVm_When_Items_Found() { DateTime date = DateTime.Now; ICollection <User> users = new List <User>(); User user = this.GetUser(true, "1"); users.Add(user); user = this.GetUser(true, "2"); users.Add(user); user = this.GetUser(true, "3"); users.Add(user); GetUsersQueryResult results = new GetUsersQueryResult(users); IConfiguration config = GetConfig(); UserListVm actual = UserModelHelper.ResultToUserListVm(results, config); Assert.AreEqual(3, actual.Users.Count); }
/// <summary> /// Method to get all users /// </summary> /// <param name = "filter"> Filter </param> /// <returns> </returns> public async Task <UserListVm> GetAllPagedAsync(UserListFilter filter) { var query = _context.Users.AsNoTracking(); if (filter.Status.HasValue) { query = query.Where(u => u.Status == filter.Status.Value); } if (filter.RoleId != null) { query = query.Where(u => u.UserRoles.Any(v => v.RoleId == filter.RoleId)); } if (filter.UserName != null) { query = query.Where(u => u.Name.ToLower().Contains(filter.UserName.ToLower())); } if (filter.Description != null) { query = query.Where(u => u.Description.Contains(filter.Description)); } var total = query.Count(); var orderable = total == 0 ? Array.Empty <UserListItemVm>().AsQueryable() : query.Select(UserListItemVm.Creator); if (filter.SortBy != null) { //TODO: USE LINQ DYNAMIC + ATTRIBUTES switch (filter.SortBy.UpperFirstLetter()) { case nameof(UserListItemVm.Name): orderable = Order(orderable, v => v.Name, filter.SortAscending); break; case nameof(UserListItemVm.CreationDate): orderable = Order(orderable, v => v.CreationDate, filter.SortAscending); break; case nameof(UserListItemVm.Description): orderable = Order(orderable, v => v.Description, filter.SortAscending); break; default: orderable = Order(orderable, v => v.Status, filter.SortAscending); break; } } var users = orderable .Skip(Pagination.CalculateSkip(filter.PageSize, filter.Page, total)) .Take(filter.PageSize); var usersList = users.ToList(); var userIds = usersList.Select(v => v.Id).ToList(); var roles = from userRole in _context.UserRoles join role in _context.Roles on userRole.RoleId equals role.Id where userIds.Contains(userRole.UserId) select new { userRole.UserId, role.Id, role.Name }; var lookup = roles.ToLookup( v => v.UserId, v => new UserRoleVm { Id = v.Id, Name = v.Name } ); var allRegions = await _regionsService.GetAllRegionTreeAsync(nameof(Resource.UserRegions)); foreach (var user in usersList) { user.Roles = lookup[user.Id].ToList(); } return(UserListVm.Create( usersList, allRegions, total, (int)Math.Ceiling((double)total / filter.PageSize) )); }
private void Bind() { this.Vm = this.model.GetUsers(this.query); this.UserGrid.Visible = this.Vm.ItemsFound; this.BindGrid(this.Vm.Users); }