// List of all the adverts public IActionResult Index(int pag = 1) { // Get application Id from current user var userId = HttpContext.User.Claims .FirstOrDefault(c => c.Type == "UniAccomodationId")?.Value; // Get adverts of the current landlord // Rely on claims transformation to ensure userId is not null var advertListVM = new AdvertListViewModel(); advertListVM.Adverts = advertRepository.Adverts .Where(adv => adv.LandlordId == Int32.Parse(userId)) .OrderByDescending(adv => adv.Id) .Skip((pag - 1) * pagingOptions.PageSize) .Take(pagingOptions.PageSize); // Pagination advertListVM.PagingInfo = new PagingInfo { CurrentPage = pag, ItemsPerPage = pagingOptions.PageSize, TotalItems = advertRepository.Adverts .Where(adv => adv.LandlordId == Int32.Parse(userId)) .Count() }; advertListVM.Status = null; return(View(advertListVM)); }
// List of adverts by status public IActionResult Adverts(int pag = 1, AdvertStatus status = AdvertStatus.Approved) { // Get application Id from current user var userId = HttpContext.User.Claims .FirstOrDefault(c => c.Type == "UniAccomodationId")?.Value; // Get adverts from current landlord by status var advertListVM = new AdvertListViewModel(); advertListVM.Adverts = advertRepository.Adverts .Where(adv => adv.LandlordId == Int32.Parse(userId) && adv.Status == status) .OrderByDescending(adv => adv.Id) .Skip((pag - 1) * pagingOptions.PageSize) .Take(pagingOptions.PageSize); // Pagination advertListVM.PagingInfo = new PagingInfo { CurrentPage = pag, ItemsPerPage = pagingOptions.PageSize, TotalItems = advertRepository.Adverts .Where(adv => adv.LandlordId == Int32.Parse(userId) && adv.Status == status) .Count() }; advertListVM.Status = status; return(View(advertListVM)); }
public IActionResult Adverts(int pag = 1, AdvertStatus status = AdvertStatus.Approved) { // Get application Id from current user var userId = HttpContext.User.Claims .FirstOrDefault(c => c.Type == "UniAccomodationId")?.Value; // Get approved adverts by the current officer // Rely on claims transformation to ensure userId is not null var advertListVM = new AdvertListViewModel(); advertListVM.Adverts = advertRepository.Adverts .Where(adv => adv.OfficerId == int.Parse(userId) && adv.Status == status) .OrderByDescending(adv => adv.Id) .Skip((pag - 1) * pagingOptions.PageSize) .Take(pagingOptions.PageSize); // Pagination advertListVM.PagingInfo = new PagingInfo { CurrentPage = pag, ItemsPerPage = pagingOptions.PageSize, TotalItems = advertRepository.Adverts .Where(adv => adv.OfficerId == int.Parse(userId) && adv.Status == status) .Count() }; advertListVM.Status = status; return(View("Adverts", advertListVM)); }
public void CanListRejectedAdvertsFilteredByCurrentUser() { //Arrange // controller arranged from the controller fixture //Act AdvertListViewModel result = GetViewModel <AdvertListViewModel>(Controller.Adverts(status: AdvertStatus.Rejected)); //Assert Assert.Equal(2, result.PagingInfo.TotalItems); Assert.Equal("Advert 6", result.Adverts.First()?.Title); Assert.Equal("Advert 5", result.Adverts.Last()?.Title); }
public void CanListPendingAdverts() { //Arrange // controller arranged from the controller fixture //Act AdvertListViewModel result = GetViewModel <AdvertListViewModel>(Controller.Index(2)); //Assert Assert.Equal(4, result.PagingInfo.TotalItems); Assert.Equal("Advert 7", result.Adverts.First()?.Title); Assert.Equal("Advert 7", result.Adverts.Last()?.Title); }
public void CanSendPaginationViewModel() { //Arrange // controller arranged from the controller fixture //Act AdvertListViewModel result = GetViewModel <AdvertListViewModel>(Controller.Index(2)); //Assert PagingInfo pageInfo = result.PagingInfo; Assert.Equal(2, pageInfo.CurrentPage); Assert.Equal(3, pageInfo.ItemsPerPage); Assert.Equal(4, pageInfo.TotalItems); Assert.Equal(2, pageInfo.TotalPages); }
public void CanPaginateAndOrderResults() { //Arrange // controller arranged from the controller fixture //Act AdvertListViewModel result = GetViewModel <AdvertListViewModel>(Controller.Index()); //Assert Assert.Equal(3, result.Adverts.Count()); var advList = result.Adverts.ToList(); Assert.Equal("Advert 10", advList.First()?.Title); Assert.Equal("Advert 8", advList.Last()?.Title); Assert.Equal("Advert 9", advList.ElementAt(1)?.Title); }
public async Task <IActionResult> GetUserLikedAdverts([FromQuery] SearchQuery query, [FromRoute] int?id) { if (id != null) { query.CurrentPage = id.Value; } SearchAnswer result = await _userInfoService.GetByUserLikedAsync(query); AdvertListViewModel data = new AdvertListViewModel { Adverts = result.Adverts, Query = query, AllAdvertsAmount = result.AdvertsAmount }; return(View("Adverts", data)); }
// All Pending adverts public IActionResult Index(int pag = 1) { // List all pending adverts var advertListVM = new AdvertListViewModel(); advertListVM.Adverts = advertRepository.Adverts .Where(adv => adv.Status == AdvertStatus.Pending) .OrderByDescending(adv => adv.Id) .Skip((pag - 1) * pagingOptions.PageSize) .Take(pagingOptions.PageSize); // Pagination advertListVM.PagingInfo = new PagingInfo { CurrentPage = pag, ItemsPerPage = pagingOptions.PageSize, TotalItems = advertRepository.Adverts .Where(adv => adv.Status == AdvertStatus.Pending) .Count() }; advertListVM.Status = AdvertStatus.Pending; return(View(advertListVM)); }