Exemple #1
0
        public IQueryable <DeliveryAreaVM> DeliveryAreaSelect(DeliveryAreaFilterVM filter)
        {
            var lawUnit = repo.AllReadonly <LawUnit>().AsQueryable();

            return(repo.AllReadonly <DeliveryArea>()
                   .Where(x => (filter.CourtId <= 0 || x.CourtId == filter.CourtId) &&
                          (
                              ((filter.DateFrom ?? DateTime.MinValue) <= (x.DateFrom ?? DateTime.MinValue) && (x.DateFrom ?? DateTime.MinValue) <= (filter.DateTo ?? DateTime.MaxValue)) ||
                              ((filter.DateFrom ?? DateTime.MinValue) <= (x.DateTo ?? DateTime.MaxValue) && (x.DateTo ?? DateTime.MaxValue) <= (filter.DateTo ?? DateTime.MaxValue)) ||
                              ((x.DateFrom ?? DateTime.MinValue) <= (filter.DateFrom ?? DateTime.MinValue) && (filter.DateFrom ?? DateTime.MinValue) <= (x.DateTo ?? DateTime.MaxValue)) ||
                              ((x.DateFrom ?? DateTime.MinValue) <= (filter.DateTo ?? DateTime.MaxValue) && (filter.DateTo ?? DateTime.MaxValue) <= (x.DateTo ?? DateTime.MaxValue))
                          ) &&
                          (filter.ExpiredType != 0 || (x.DateExpired != null && (filter.DateExpiredFrom ?? DateTime.MinValue) <= (x.DateExpired ?? DateTime.MinValue) && (x.DateExpired ?? DateTime.MinValue) <= (filter.DateExpiredTo ?? DateTime.MaxValue))) &&
                          (filter.ExpiredType != 1 || x.DateExpired == null)
                          )
                   .Select(x => new DeliveryAreaVM()
            {
                Id = x.Id,
                Description = x.Description,
                Code = x.Code,
                LawUnitName = lawUnit.Where(l => l.Id == x.LawUnitId).Select(d => d.FullName).FirstOrDefault(),
                DateFrom = x.DateFrom,
                DateTo = x.DateTo,
                DateExpired = x.DateExpired
            })
                   .AsQueryable());
        }
Exemple #2
0
        public IActionResult Index(int?courtId)
        {
            var filter = new DeliveryAreaFilterVM()
            {
                CourtId     = courtId ?? userContext.CourtId,
                ExpiredType = 1
            };

            ViewBag.ExpiredType_ddl = areaAddressService.ExpiredTypeDDL();
            ViewBag.breadcrumbs     = commonService.Breadcrumbs_ForDeliveryAreas().DeleteOrDisableLast();
            return(View(filter));
        }
Exemple #3
0
        public IActionResult ListData(IDataTablesRequest request, DeliveryAreaFilterVM filter)
        {
            var data = service.DeliveryAreaSelect(filter);

            return(request.GetResponse(data));
        }
        public IQueryable <DeliveryAreaVM> DeliveryAreaSelect(DeliveryAreaFilterVM filter)
        {
            var lawUnit       = repo.AllReadonly <LawUnit>();
            var addresses     = repo.AllReadonly <DeliveryAreaAddress>();
            var deliveryAreas = repo.AllReadonly <DeliveryArea>()
                                .Where(x => (filter.CourtId <= 0 || x.CourtId == filter.CourtId) &&
                                       (
                                           ((filter.DateFrom ?? DateTime.MinValue) <= (x.DateFrom ?? DateTime.MinValue) && (x.DateFrom ?? DateTime.MinValue) <= (filter.DateTo ?? DateTime.MaxValue)) ||
                                           ((filter.DateFrom ?? DateTime.MinValue) <= (x.DateTo ?? DateTime.MaxValue) && (x.DateTo ?? DateTime.MaxValue) <= (filter.DateTo ?? DateTime.MaxValue)) ||
                                           ((x.DateFrom ?? DateTime.MinValue) <= (filter.DateFrom ?? DateTime.MinValue) && (filter.DateFrom ?? DateTime.MinValue) <= (x.DateTo ?? DateTime.MaxValue)) ||
                                           ((x.DateFrom ?? DateTime.MinValue) <= (filter.DateTo ?? DateTime.MaxValue) && (filter.DateTo ?? DateTime.MaxValue) <= (x.DateTo ?? DateTime.MaxValue))
                                       ) &&
                                       (filter.ExpiredType != 0 || (x.DateExpired != null && (filter.DateExpiredFrom ?? DateTime.MinValue) <= (x.DateExpired ?? DateTime.MinValue) && (x.DateExpired ?? DateTime.MinValue) <= (filter.DateExpiredTo ?? DateTime.MaxValue))) &&
                                       (filter.ExpiredType != 1 || x.DateExpired == null)
                                       );
            bool haveAddrFilter = false;

            if (!string.IsNullOrEmpty(filter.CityCode) && filter.CityCode != "-1")
            {
                haveAddrFilter = true;
                addresses      = addresses.Where(a => a.CityCode == filter.CityCode &&
                                                 (string.IsNullOrEmpty(filter.ResidentionAreaCode) || a.ResidentionAreaCode == filter.ResidentionAreaCode) &&
                                                 (string.IsNullOrEmpty(filter.StreetCode) || a.StreetCode == filter.StreetCode)
                                                 );
            }
            ;
            if (filter.Number > 0 || filter.Block > 0)
            {
                int maxNum = 99999;
                haveAddrFilter = true;
                int block = 0;
                if (filter.Block > 0)
                {
                    block = filter.Block ?? 0;
                }
                int typeNumBlock;
                if (block % 2 == 0)
                {
                    typeNumBlock = NomenclatureConstants.DeliveryAddressNumberType.BlockEven;
                }
                else
                {
                    typeNumBlock = NomenclatureConstants.DeliveryAddressNumberType.BlockOdd;
                }
                int streetNum = 0;
                if (filter.Number > 0)
                {
                    streetNum = filter.Number ?? 0;
                }
                int typeNumStreet;
                if (block % 2 == 0)
                {
                    typeNumStreet = NomenclatureConstants.DeliveryAddressNumberType.EvenNumber;
                }
                else
                {
                    typeNumStreet = NomenclatureConstants.DeliveryAddressNumberType.OddNumber;
                }

                addresses = addresses.Where(x => (block > 0 && (x.NumberType == typeNumBlock || x.NumberType == NomenclatureConstants.DeliveryAddressNumberType.Block) &&
                                                  (x.NumberFrom ?? 0) <= block && block <= (x.NumberTo ?? maxNum)) ||
                                            (streetNum > 0 && (x.NumberType == typeNumStreet || x.NumberType == NomenclatureConstants.DeliveryAddressNumberType.OddEvenNumber) &&
                                             (x.NumberFrom ?? 0) <= streetNum && streetNum <= (x.NumberTo ?? maxNum)));
            }
            if (haveAddrFilter)
            {
                deliveryAreas = deliveryAreas.Where(x => addresses.Any(a => a.DeliveryAreaId == x.Id && a.DateExpired == null));
            }
            return(deliveryAreas
                   .Select(x => new DeliveryAreaVM()
            {
                Id = x.Id,
                Description = x.Description,
                Code = x.Code,
                LawUnitName = lawUnit.Where(l => l.Id == x.LawUnitId).Select(d => d.FullName).FirstOrDefault(),
                DateFrom = x.DateFrom,
                DateTo = x.DateTo,
                DateExpired = x.DateExpired
            }));
        }