public void OnGetAsync_PopulatesThePageModel_WithAListOfUsersSortedByUserName() { var optionsBuilder = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(nameof(Olimp2019)); var mockAppDbContext = new Mock <ApplicationDbContext>(optionsBuilder.Options); var expectedUsers = Users; mockAppDbContext.Setup( db => db.GetUsersAsync()).Returns(Task.FromResult(expectedUsers)); var pageModel = new ReportUsersModel(mockAppDbContext.Object); pageModel.OnGet(); var actualUsers = Assert.IsAssignableFrom <List <UserReportItemViewModel> >(pageModel.FullReport); Assert.Equal( expectedUsers.OrderBy(m => m.UserName).Select(m => m.FullName), actualUsers.Select(m => m.FullName)); }
public ActionResult Users(string sort = "lastname_asc", bool ordersOnly = false, int page = 1, int pageSize = 10) { ValidateUsersArgs(sort, page, pageSize); var model = new ReportUsersModel { Sort = sort, OrdersOnly = ordersOnly, Page = page, PageSize = pageSize, SortItems = UserSortItems }; string where = ordersOnly ? "OrderCount > 0" : null; var users = ArtContext.Users.Paged(out model.TotalRows, where : where, orderBy: sort.Replace("_", " "), page: page, pageSize: pageSize); model.Items = Mapper.Map <IEnumerable <User>, IEnumerable <ReportUserModel> >(users); if (Request.IsAjaxRequest()) { return(PartialView("_Users", model)); } else { return(View(model)); } }