Exemplo n.º 1
0
        public Paginator <DealerReadDTO> GetAllDealers(DealerQuerySearch query)
        {
            var dealers = _dealerDbContext
                          .Dealers
                          .Include(r => r.Address)
                          .Include(r => r.Cars)
                          .Where(s => query.Search == null ||
                                 (s.DealerName.ToUpper().Contains(query.Search.ToUpper()) ||
                                  s.Description.ToUpper().Contains(query.Search.ToUpper())));

            dealers = SortQuery(query, dealers);

            var skipPages       = ComputeSkip(query);
            var paginatedealers = dealers.Skip(skipPages)
                                  .Take(query.PageSize)
                                  .ToList();

            var totalItems = dealers.Count();

            var dealersDto = _mapper.Map <List <DealerReadDTO> >(paginatedealers);

            var result = new Paginator <DealerReadDTO>(dealersDto, totalItems, query.PageSize, query.PageNumber);

            return(result);
        }
Exemplo n.º 2
0
        //[Authorize(Policy = "ColorEyes")]
        //[Authorize(Policy = "ColorEyes")]
        //[Authorize(Policy = "OnlyForEagles")]



        public ActionResult <IEnumerable <DealerReadDTO> > GetAllDealers([FromQuery] DealerQuerySearch query)
        {
            //var Drugilogger = NLog.Web.NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger();

            //Drugilogger.Info("hurraddizała");
            //Logger logger = LogManager.GetLogger("databaseLogger");

            //_dealerService.   logger.Info("lipdssdgsgsgsdg");



            //var dealersDTO = dealers.Select(r => new DealerDTO()
            //{
            //    DealerName = r.DealerName,
            //    Category = r.Category,
            //    City = r.Address.City,  and so on

            //} ;
            //try
            //{
            var dealersDTO = _dealerService.GetAllDealers(query);

            return(Ok(dealersDTO));
            //}
            //catch (Exception)
            //{

            //return this.StatusCode(StatusCodes.Status500InternalServerError, "Database fail");
            //}
        }
Exemplo n.º 3
0
        private IQueryable <Dealer> SortQuery(DealerQuerySearch query, IQueryable <Dealer> dealers)
        {
            if (!string.IsNullOrEmpty(query.SortBy))
            {
                var columnSelector = new Dictionary <string, Expression <Func <Dealer, object> > >
                {
                    { nameof(Dealer.DealerName), a => a.DealerName },
                    { nameof(Dealer.Description), a => a.Description },
                    { nameof(Dealer.Category), a => a.Category },
                    { nameof(Dealer.Address.Country), a => a.Address.Country }
                };

                var selectedColumn = columnSelector[query.SortBy];

                dealers = query.DirectionSort == DirectionSort.Ascending
                ? dealers.OrderBy(selectedColumn)
                : dealers.OrderByDescending(selectedColumn);
            }

            return(dealers);
        }
Exemplo n.º 4
0
 private int ComputeSkip(DealerQuerySearch query)
 {
     return(query.PageSize * query.PageNumber - query.PageSize);
 }