public HttpResponseMessage GetBySellStartDate([FromUri] PaginatedModel pagingModel, [FromBody] string sellStartDate)
        {
            var date     = Convert.ToDateTime(sellStartDate);
            var products = _productService.GetBySellStartDate(date);

            if (pagingModel != null)
            {
                int count = products.Count();

                int CurrentPage  = pagingModel.PageNumber;
                int PageSize     = pagingModel.PageSize;
                int TotalCount   = count;
                int TotalPages   = (int)Math.Ceiling(count / (double)PageSize);
                var items        = products.Skip((CurrentPage - 1) * PageSize).Take(PageSize).ToList();
                var previousPage = CurrentPage > 1 ? "Yes" : "No";
                var nextPage     = CurrentPage < TotalPages ? "Yes" : "No";

                // object which we are going to send in header
                var paginationMetadata = new
                {
                    totalCount  = TotalCount,
                    pageSize    = PageSize,
                    currentPage = CurrentPage,
                    totalPages  = TotalPages,
                    previousPage,
                    nextPage
                };

                // Setting Header
                HttpContext.Current.Response.Headers.Add("Paging-Headers", JsonConvert.SerializeObject(paginationMetadata));
            }

            if (products != null)
            {
                return(Request.CreateResponse(HttpStatusCode.OK, products));
            }

            return(Request.CreateErrorResponse(HttpStatusCode.NotFound, "No product found with this name"));
        }
Esempio n. 2
0
        public HttpResponseMessage GetSumOfTraffic([FromUri] PaginatedModel pagingModel)
        {
            //TO DO - check which date parameters should be used  - [SellStartDate],[SellEndDate] ???
            var lineTotal = _purchasingService.GetSumOfTraffic(DateTime.UtcNow, DateTime.UtcNow);

            if (pagingModel != null)
            {
                int count = lineTotal.Count();

                int CurrentPage  = pagingModel.PageNumber;
                int PageSize     = pagingModel.PageSize;
                int TotalCount   = count;
                int TotalPages   = (int)Math.Ceiling(count / (double)PageSize);
                var items        = lineTotal.Skip((CurrentPage - 1) * PageSize).Take(PageSize).ToList();
                var previousPage = CurrentPage > 1 ? "Yes" : "No";
                var nextPage     = CurrentPage < TotalPages ? "Yes" : "No";

                var paginationMetadata = new
                {
                    totalCount  = TotalCount,
                    pageSize    = PageSize,
                    currentPage = CurrentPage,
                    totalPages  = TotalPages,
                    previousPage,
                    nextPage
                };

                // Setting Header
                HttpContext.Current.Response.Headers.Add("Paging-Headers", JsonConvert.SerializeObject(paginationMetadata));
            }

            if (lineTotal != null)
            {
                return(Request.CreateResponse(HttpStatusCode.OK, lineTotal));
            }

            return(Request.CreateErrorResponse(HttpStatusCode.NotFound, "Failed"));
        }
Esempio n. 3
0
 public void BeforeEach()
 {
     InitializeComponents();
     fixture.Customize <Lodgment>(c => c
                                  .Without(x => x.Spot)
                                  .Without((y => y.Reviews)));
     fixture.Customize <BookingStatus>(c => c
                                       .Without(x => x.Bookings));
     fixture.Customize <Booking>(c => c
                                 .Without(b => b.Lodgment));
     moqService = new Mock <ILodgmentsService>(MockBehavior.Strict);
     controller = new LodgmentsController(moqService.Object);
     controller.ControllerContext = controllerContext;
     expectedLodgment             = fixture.Create <Lodgment>();
     lodgmentOptions          = fixture.Create <LodgmentOptionsModel>();
     lodgmentId               = fixture.Create <int>();
     bookingConfirmationModel = fixture.Create <BookingConfirmationModel>();
     expectedBooking          = fixture.Create <Booking>();
     expectedLodgments        = fixture.CreateMany <Lodgment>();
     paginatedLodgments       = fixture.Create <PaginatedModel <Lodgment> >();
     paging       = fixture.Create <PagingModel>();
     fileModel    = fixture.Create <FileModel>();
     expectedUrls = fixture.CreateMany <string>().ToList();
 }
Esempio n. 4
0
        protected async Task <PaginatedModel <T> > GetPaginatedElementsAsync(IQueryable <T> query, PagingModel pagingModel, string defaultKey = "Id")
        {
            PaginatedModel <T> paginated = null;

            if (query == null)
            {
                throw new ArgumentException("Query cannot be null.");
            }
            if (pagingModel == null)
            {
                pagingModel = new PagingModel();
            }

            var orderParam = await GetDefaultPagingOrder(pagingModel, defaultKey);

            var total = query.Count();

            paginated = new  PaginatedModel <T> (pagingModel, total);
            var isAscending = pagingModel.Direction.Equals("asc", StringComparison.InvariantCultureIgnoreCase);

            paginated.Data = query.OrderByField(orderParam, isAscending).Skip(pagingModel.Offset).Take(pagingModel.Limit).ToList();

            return(paginated);
        }
Esempio n. 5
0
 public void BeforeEach()
 {
     InitializeComponents();
     fixture.Customize <Spot>(c => c
                              .Without(x => x.Region));
     fixture.Customize <Lodgment>(c => c
                                  .Without(x => x.Spot)
                                  .Without(y => y.Reviews)
                                  .Without(y => y.Bookings));
     fixture.Customize <CategorySpot>(c => c
                                      .Without(x => x.Category)
                                      .Without(x => x.Spot));
     moqService = new Mock <IRegionsService>(MockBehavior.Strict);
     controller = new RegionsController(moqService.Object);
     controller.ControllerContext = controllerContext;
     expectedRegions  = fixture.CreateMany <Region>();
     expectedSpot     = fixture.Create <Spot>();
     expectedSpots    = fixture.CreateMany <Spot>();
     paginatedSpots   = fixture.Create <PaginatedModel <Spot> >();
     paginatedRegions = fixture.Create <PaginatedModel <Region> >();
     paging           = fixture.Create <PagingModel>();
     spot             = fixture.Create <Spot>();
     regionId         = fixture.Create <int>();
 }
Esempio n. 6
0
 public void BeforeEach()
 {
     fixture = new Fixture().Customize(new AutoMoqCustomization());
     fixture.Customize <Spot>(c => c
                              .Without(x => x.Region));
     fixture.Customize <Lodgment>(c => c
                                  .Without(x => x.Spot)
                                  .Without(y => y.Bookings)
                                  .Without(y => y.Reviews));
     fixture.Customize <CategorySpot>(c => c
                                      .Without(x => x.Category)
                                      .Without(x => x.Spot));
     moqRepository            = new Mock <IRegionsRepository>(MockBehavior.Strict);
     moqSpotsService          = new Mock <ISpotsService>(MockBehavior.Strict);
     expectedSpot             = fixture.Create <Spot>();
     expectedRegions          = fixture.CreateMany <Region>();
     spot                     = fixture.Create <Spot>();
     expectedRegion           = fixture.Create <Region>();
     regionId                 = fixture.Create <int>();
     expectedPaginatedSpots   = fixture.Create <PaginatedModel <Spot> >();
     expectedPaginatedRegions = fixture.Create <PaginatedModel <Region> >();
     paging                   = fixture.Create <PagingModel>();
     service                  = new RegionsService(moqRepository.Object, moqSpotsService.Object);
 }
Esempio n. 7
0
        public async Task <PaginatedModel <Booking> > GetBookingsAsync(PagingModel pagingModel)
        {
            PaginatedModel <Booking> paginatedBookings = await repository.GetBookingsAsync(pagingModel);

            return(paginatedBookings);
        }
Esempio n. 8
0
 /// <inheritdoc />
 public override bool Execute(PaginatedModel <TReturn> model)
 {
     return(ExecuteAsync(model).GetAwaiter().GetResult());
 }
Esempio n. 9
0
        public async Task <PaginatedModel <User> > GetUsersAsync(PagingModel pagingModel)
        {
            PaginatedModel <User> paginatedUsers = await repository.GetUsersAsync(pagingModel);

            return(paginatedUsers);
        }