Exemplo n.º 1
0
        public AnnounceWithPagingSpecification(AnnounceParams queryParams)
            : base(x =>
                   (
                       string.IsNullOrEmpty(queryParams.Search) ||
                       x.Header.ToLower().Contains(queryParams.Search) ||
                       x.Content.ToLower().Contains(queryParams.Search) ||
                       x.ContentType.ToLower().Contains(queryParams.Search) ||
                       x.User.FirstName.ToLower().Contains(queryParams.Search) ||
                       x.User.LastName.ToLower().Contains(queryParams.Search)

                   ) &&
                   (!queryParams.ScreenId.HasValue || x.AnnounceSubScreens.Any(y => y.ScreenId == queryParams.ScreenId)) &&
                   (!queryParams.SubScreenId.HasValue || x.AnnounceSubScreens.Any(y => y.SubScreenId == queryParams.SubScreenId)) &&
                   (!queryParams.Reject.HasValue || x.Reject == queryParams.Reject) &&
                   (!queryParams.IsNew.HasValue || x.IsNew == queryParams.IsNew) &&
                   (!queryParams.IsPublish.HasValue || x.IsPublish == queryParams.IsPublish)
                   )
        {
            AddInclude(x => x.User);
            AddInclude(x => x.User.Campus);
            AddInclude(x => x.User.Degree);
            AddInclude(x => x.User.Department);
            AddInclude(x => x.AnnouncePhotos);
            AddInclude(x => x.AnnounceSubScreens);
            AddOrderByDscending(x => x.IsNew);
            ApplyPaging(queryParams.PageSize * (queryParams.PageIndex - 1), queryParams.PageSize);
        }
        public async Task <IActionResult> GetAnnouncesByUser(int userId, [FromQuery] AnnounceParams announceParams)
        {
            var announce = await _announceRepository.GetAnnouncesByUser(userId, announceParams);

            var announceToReturn = _mapper.Map <IEnumerable <AnnounceAndCarForReturnDto> >(announce);

            Response.AddPagination(announce.CurrentPage, announce.PageSize,
                                   announce.TotalCount, announce.TotalPages);

            return(Ok(announceToReturn));
        }
 public AnnounceByUserIdSpecification(AnnounceParams queryParams, int userId)
     : base(x => x.UserId == userId)
 {
     AddInclude(x => x.User);
     AddInclude(x => x.User.Department);
     AddInclude(x => x.User.Campus);
     AddInclude(x => x.User.Degree);
     AddInclude(x => x.AnnouncePhotos);
     AddOrderByDscending(x => x.Created);
     ApplyPaging(queryParams.PageSize * (queryParams.PageIndex - 1), queryParams.PageSize);
 }
        public async Task <IActionResult> GetAnnounces([FromQuery] AnnounceParams announceParams)
        {
            var currentUserId = 1;

            if (!announceParams.All)
            {
                currentUserId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);
            }

            var announceFromRepo = await _announceRepository.GetAnnounces(announceParams, currentUserId);

            var announces = _mapper.Map <IEnumerable <AnnounceAndCarForReturnDto> >(announceFromRepo);

            Response.AddPagination(announceFromRepo.CurrentPage, announceFromRepo.PageSize,
                                   announceFromRepo.TotalCount, announceFromRepo.TotalPages);

            return(Ok(announces));
        }
Exemplo n.º 5
0
        public AnnounceWithFilterForCaountAsyncSpecification(AnnounceParams queryParams)
            : base(x =>
                   (
                       string.IsNullOrEmpty(queryParams.Search) ||
                       x.Header.ToLower().Contains(queryParams.Search) ||
                       x.Content.ToLower().Contains(queryParams.Search) ||
                       x.ContentType.ToLower().Contains(queryParams.Search) ||
                       x.User.FirstName.ToLower().Contains(queryParams.Search) ||
                       x.User.LastName.ToLower().Contains(queryParams.Search)

                   ) &&
                   (!queryParams.ScreenId.HasValue || x.AnnounceSubScreens.Any(y => y.ScreenId == queryParams.ScreenId)) &&
                   (!queryParams.SubScreenId.HasValue || x.AnnounceSubScreens.Any(y => y.Id == queryParams.SubScreenId)) &&
                   (!queryParams.Reject.HasValue || x.Reject == queryParams.Reject) &&
                   (!queryParams.IsNew.HasValue || x.IsNew == queryParams.IsNew) &&
                   (!queryParams.IsPublish.HasValue || x.IsPublish == queryParams.IsPublish)
                   )
        {
        }
Exemplo n.º 6
0
        //[SecuredOperation("Sudo,Announces.List,Announces.All", Priority = 1)]
        public async Task <Pagination <AnnounceForReturnDto> > GetListAsync(AnnounceParams queryParams)
        {
            var spec         = new AnnounceWithPagingSpecification(queryParams);
            var listFromRepo = await announceDal.ListEntityWithSpecAsync(spec);

            var countSpec = new AnnounceWithFilterForCaountAsyncSpecification(queryParams);
            var totalItem = await announceDal.CountAsync(countSpec);



            var data = mapper.Map <List <Announce>, List <AnnounceForReturnDto> >(listFromRepo);

            return(new Pagination <AnnounceForReturnDto>
                   (
                       queryParams.PageIndex,
                       queryParams.PageSize,
                       totalItem,
                       data
                   ));
        }
Exemplo n.º 7
0
        public async Task <Pagination <AnnounceForUserDto> > GetAnnounceByUserIdAsync(AnnounceParams queryParams, int userId)
        {
            var claimId = int.Parse(httpContextAccessor.HttpContext.User?.Claims?.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier)?.Value);

            if (claimId != userId)
            {
                throw new RestException(HttpStatusCode.BadRequest, new { AlreadyExist = Messages.OperationDenied });
            }

            var userFromRepo = await userDal.GetAsync(x => x.Id == userId);

            if (userFromRepo == null)
            {
                throw new RestException(HttpStatusCode.BadRequest, new { AlreadyExist = Messages.UserNotFound });
            }

            var spec      = new AnnounceByUserIdSpecification(queryParams, userId);
            var announces = await announceDal.ListEntityWithSpecAsync(spec);

            var countSpec = new AnnounceByUserIdSpecification(userId);
            var totalItem = await announceDal.CountAsync(countSpec);

            var data = mapper.Map <List <Announce>, List <AnnounceForUserDto> >(announces);

            return(new Pagination <AnnounceForUserDto>
                   (
                       queryParams.PageIndex,
                       queryParams.PageSize,
                       totalItem,
                       data
                   ));
        }
        public async Task <PagedList <Announce> > GetAnnounces(AnnounceParams announceParams, int userId)
        {
            var announces = _context.Announce.AsQueryable();

            announces = announces.Where(a => a.AnnounceId != announceParams.AnnounceId);

            if (announceParams.Brand != "undefined" && announceParams.Brand != null)
            {
                announces = announces.Where(a => a.Car.Brand.Name == announceParams.Brand);
            }

            if (announceParams.Model != "undefined" && announceParams.Model != null)
            {
                announces = announces.Where(a => a.Car.Model.Name == announceParams.Model);
            }

            if (announceParams.ModelVersion != "undefined" && announceParams.ModelVersion != null)
            {
                announces = announces.Where(a => a.Car.ModelVersion.Name == announceParams.ModelVersion);
            }

            if (announceParams.Fuel != "undefined" && announceParams.Fuel != null)
            {
                announces = announces.Where(a => a.Car.Fuel.Name == announceParams.Fuel);
            }

            //Kilometers
            if (announceParams.MinKm != "undefined" && announceParams.MaxKm != "undefined" && announceParams.MinKm != null && announceParams.MaxKm != null)
            {
                int minKm = Convert.ToInt32(announceParams.MinKm);
                int maxKm = Convert.ToInt32(announceParams.MaxKm);

                announces = announces.Where(a => Convert.ToInt32(a.Car.Km) >= minKm && Convert.ToInt32(a.Car.Km) <= maxKm);
            }

            if (announceParams.MinKm != "undefined" && announceParams.MinKm != null)
            {
                int minKm = Convert.ToInt32(announceParams.MinKm);

                announces = announces.Where(a => Convert.ToInt32(a.Car.Km) >= minKm);
            }
            else if (announceParams.MaxKm != "undefined" && announceParams.MaxKm != null)
            {
                int maxKm = Convert.ToInt32(announceParams.MaxKm);

                announces = announces.Where(a => Convert.ToInt32(a.Car.Km) <= maxKm);
            }

            //ManufacturingDate
            if (announceParams.MinManufacturingDate != "undefined" && announceParams.MinManufacturingDate != null && announceParams.MaxManufacturingDate != "undefined" && announceParams.MaxManufacturingDate != null)
            {
                int minManufacturingDate = Convert.ToInt32(announceParams.MinManufacturingDate);
                int maxManufacturingDate = Convert.ToInt32(announceParams.MaxManufacturingDate);

                announces = announces.Where(a => Convert.ToInt32(a.Car.ManufacturingDate.Year) >= minManufacturingDate && Convert.ToInt32(a.Car.ManufacturingDate.Year) <= maxManufacturingDate);
            }

            if (announceParams.MinManufacturingDate != "undefined" && announceParams.MinManufacturingDate != null)
            {
                int minManufacturingDate = Convert.ToInt32(announceParams.MinManufacturingDate);

                announces = announces.Where(a => Convert.ToInt32(a.Car.ManufacturingDate.Year) >= minManufacturingDate);
            }
            else if (announceParams.MaxManufacturingDate != "undefined" && announceParams.MaxManufacturingDate != null)
            {
                int maxManufacturingDate = Convert.ToInt32(announceParams.MaxManufacturingDate);

                announces = announces.Where(a => Convert.ToInt32(a.Car.ManufacturingDate.Year) <= maxManufacturingDate);
            }

            //Prices
            if (announceParams.MinPrice != "undefined" && announceParams.MinPrice != null && announceParams.MaxPrice != "undefined" && announceParams.MaxPrice != null)
            {
                int minPrice = Convert.ToInt32(announceParams.MinPrice);
                int maxPrice = Convert.ToInt32(announceParams.MaxPrice);

                announces = announces.Where(a => Convert.ToInt32(a.Car.Price) >= minPrice && Convert.ToInt32(a.Car.Price) <= maxPrice);
            }

            if (announceParams.MinPrice != "undefined" && announceParams.MinPrice != null)
            {
                int minPrice = Convert.ToInt32(announceParams.MinPrice);

                announces = announces.Where(a => Convert.ToInt32(a.Car.Price) >= minPrice);
            }
            else if (announceParams.MaxPrice != "undefined" && announceParams.MaxPrice != null)
            {
                int maxPrice = Convert.ToInt32(announceParams.MaxPrice);

                announces = announces.Where(a => Convert.ToInt32(a.Car.Price) <= maxPrice);
            }

            if (!announceParams.All)
            {
                announces = announces.Where(a => a.SaveAnnounces.Any(sa => sa.UserId == userId) == true).AsQueryable();
            }

            if (announceParams.userAnnounces != "undefined" && announceParams.userAnnounces != null)
            {
                announces = announces.Where(a => a.UserId == userId).AsQueryable();
            }

            if (announceParams.AnnounceView != "undefined" && announceParams.AnnounceView != null)
            {
                announces = announces.OrderByDescending(a => a.AnnounceView);
                announces = announces.Take(3);
            }

            return(await PagedList <Announce> .CreateAsync(announces, announceParams.PageNumber, announceParams.PageSize));
        }
        public async Task <PagedList <Announce> > GetAnnouncesByUser(int userId, AnnounceParams announceParams)
        {
            var announces = _context.Announce.Where(a => a.UserId == userId).AsQueryable();

            return(await PagedList <Announce> .CreateAsync(announces, announceParams.PageNumber, announceParams.PageSize));
        }
Exemplo n.º 10
0
 public async Task <ActionResult <Pagination <AnnounceForReturnDto> > > List([FromQuery] AnnounceParams queryParams)
 {
     return(await announceService.GetListAsync(queryParams));
 }
Exemplo n.º 11
0
 public async Task <ActionResult <Pagination <AnnounceForUserDto> > > Announces([FromQuery] AnnounceParams queryParams, int userId)
 {
     return(await publicAnnounceservice.GetAnnounceByUserIdAsync(queryParams, userId));
 }