public CollectionResult <UserCarDto> GetCars(FilterUserCar filter, string currentUserId) { UserManager.IsUserInRegularRole(currentUserId); if (filter == null) { filter = new FilterUserCar { ItemsPerPage = Common.Constants.FilterConstants.DefaultItemsPerPage, CurrentPage = Common.Constants.FilterConstants.DefaultCurrentPage }; } var result = Paginate(filter.CurrentPage, filter.ItemsPerPage, BuildQueryForCars(currentUserId, filter), out var itemsCount) .ToList() .Select(Mapper.Map <UserCarDto>) .ToList(); return(new CollectionResult <UserCarDto> { CurrentPage = filter.CurrentPage, ItemsPerPage = filter.ItemsPerPage, Items = result, ItemsCount = itemsCount }); }
public void GetCars_Must_Return_Info_For_User_Cars(bool showDeleted) { //Arrange var cars = new List <UserCar> { UserCarUtils.Create(1, "Test1", "TestModel1", "TestMark1", "1"), UserCarUtils.Create(2, "Test2", "TestModel2", "TestMark2", "1"), UserCarUtils.Create(3, "Test3", "TestModel3", "TestMark3", "1", true), UserCarUtils.Create(4, "Test4", "TestModel4", "TestMark4", "1", true) }; var filter = new FilterUserCar { CurrentPage = 1, ItemsPerPage = 10 }; var user = new ApplicationUser { Id = "1", UserProfile = new UserProfile { Cars = cars } }; _userManagerMock.Setup(act => act.IsUserInRegularRole(user.Id)); _userManagerMock.Setup(act => act.CheckAndGet(user.Id)).Returns(user); //Act var result = _manager.GetCars(filter, user.Id); //Assert Assert.AreEqual(result.ItemsCount, 2); if (!showDeleted) { Assert.AreEqual(cars[0].Name, result.Items.ElementAt(0).Name); Assert.AreEqual(cars[1].Name, result.Items.ElementAt(1).Name); Assert.AreEqual(cars[0].Model.Name, result.Items.ElementAt(0).Model); Assert.AreEqual(cars[1].Model.Mark.Name, result.Items.ElementAt(1).Mark); } else { Assert.AreEqual(cars[2].Name, result.Items.ElementAt(0).Name); Assert.AreEqual(cars[3].Name, result.Items.ElementAt(1).Name); Assert.AreEqual(cars[2].Model.Name, result.Items.ElementAt(0).Model); Assert.AreEqual(cars[3].Model.Mark.Name, result.Items.ElementAt(1).Mark); } }
private IQueryable <UserCar> BuildQueryForCars(string userId, FilterUserCar filter) { var query = UnitOfWork.Repository <IUserCarRepository>() .GetAll(true) .Include(car => car.Model) .Include(car => car.Model.Mark) .Where(car => car.User.ApplicationUser.Id == userId); if (!filter.IsDeleted) { query = query.Where(car => !car.IsDeleted); } return(query.OrderByDescending(car => car.Created)); }
public IHttpActionResult GetCar(FilterUserCar filter) { return(CallBusinessLogicActionWithResult(() => _manager.GetCars(filter, User.Identity.GetUserId()))); }