Ejemplo n.º 1
0
        // 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));
        }
Ejemplo n.º 2
0
        // 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));
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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));
        }
Ejemplo n.º 9
0
        // 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));
        }