Пример #1
0
        public async Task <ActionResult <List <Arg_AdreseDTO> > > FilterPaginated([FromQuery] FilterArg_AdreseDTO filterArg_AdreseDTO, int page, int pageSize)
        {
            var adreseQueryable = _context.Arg_Adrese_
                                  .AsQueryable();

            if (!string.IsNullOrWhiteSpace(filterArg_AdreseDTO.STD))
            {
                adreseQueryable = adreseQueryable.Where(x => x.STD.Contains(filterArg_AdreseDTO.STD));
            }

            if (filterArg_AdreseDTO.TIPS_CD != 0)
            {
                adreseQueryable = adreseQueryable.Where(o => o.TIPS_CD.Equals(filterArg_AdreseDTO.TIPS_CD));
            }

            //if (filterArg_AdreseDTO.ADR_CD != 0)
            //{
            //    adreseQueryable = adreseQueryable.Where(o => o.ADR_CD.Equals(filterArg_AdreseDTO.ADR_CD) && o.dat_beig != null);

            //}

            //if (filterArg_AdreseDTO.VKUR_CD != 0) {
            //    adreseQueryable = adreseQueryable.Where(o => o.VKUR_CD.Equals(filterArg_AdreseDTO.VKUR_CD));
            //} else if (filterArg_AdreseDTO.VKUR_CD_NOV != 0) {
            //    adreseQueryable = adreseQueryable.Where(o => o.VKUR_CD.Equals(filterArg_AdreseDTO.VKUR_CD_NOV));
            //}

            adreseQueryable = adreseQueryable.Where(o => o.VKUR_CD.Equals(
                                                        filterArg_AdreseDTO.VKUR_CD != 0 ? filterArg_AdreseDTO.VKUR_CD : filterArg_AdreseDTO.VKUR_CD_NOV
                                                        )); //ja nav selectionā izvelēts pagasts, tad atlasa no novada - iegūst datus par pagastiem



            if (!string.IsNullOrWhiteSpace(filterArg_AdreseDTO.STATUSS))
            {
                adreseQueryable = adreseQueryable.Where(o => o.STATUSS.Equals(filterArg_AdreseDTO.STATUSS));
            }

            if (filterArg_AdreseDTO.DAT_SAK != DateTime.MinValue)
            {
                adreseQueryable = adreseQueryable.Where(o => o.DAT_SAK.Date.Equals(filterArg_AdreseDTO.DAT_SAK));
            }

            if (filterArg_AdreseDTO.DAT_MOD != DateTime.MinValue) // visi null datumi lasās kā '01.01.0001 00:00:00' kas ir arī MinValue
            {
                adreseQueryable = adreseQueryable.Where(o => o.dat_mod.Date.Equals(filterArg_AdreseDTO.DAT_MOD));
                // dat_mod ielasot null nestrādā, ielaspt DaeTime strādā.
            }

            //if (filterArg_AdreseDTO.DAT_BEIG != DateTime.MinValue)
            //{

            //    adreseQueryable = adreseQueryable.Where(o => o.dat_beig.Date.Equals(filterArg_AdreseDTO.DAT_BEIG));
            //}

            var adreses = await adreseQueryable//.Where(o => o.dat_mod.Date.Equals(filterArg_AdreseDTO.DAT_MOD))
                          .Include(q => q.Art_KonstTips)
                          .Include(q => q.Art_KonstStatuss)
                          .OrderBy(n => n.ADR_CD)
                          .AsNoTracking()
                          .ToListAsync();

            //var adresesSorted = adreses.OrderBy(n => n.ADR_CD).ToList(); //vajag sortot jo asinhroni liekot adreses lista katra adrese ne vienmer bus vienaa un tada pasa pozicijaa

            var paginatedAdreses = await PaginatedList <Arg_Adrese> .Create(adreses, page, pageSize);

            var metadata = new {
                paginatedAdreses.PageIndex,
                paginatedAdreses.TotalPages,
                paginatedAdreses.ElementCount,
                paginatedAdreses.HasNextPage,
                paginatedAdreses.HasPreviousPage
            };

            Response.Headers.Add("Pagination", JsonConvert.SerializeObject(metadata));

            return(_mapper.Map <List <Arg_AdreseDTO> >(paginatedAdreses));
        }
Пример #2
0
        public async Task <ActionResult <List <Arg_AdreseDTO> > > Filter([FromQuery] FilterArg_AdreseDTO filterArg_AdreseDTO)
        {
            var adreseQueryable = _context.Arg_Adrese_
                                  .AsQueryable();

            if (!string.IsNullOrWhiteSpace(filterArg_AdreseDTO.STD))
            {
                adreseQueryable = adreseQueryable.Where(x => x.STD.Contains(filterArg_AdreseDTO.STD));
            }

            if (filterArg_AdreseDTO.TIPS_CD != 0)
            {
                adreseQueryable = adreseQueryable.Where(o => o.TIPS_CD.Equals(filterArg_AdreseDTO.TIPS_CD));
            }

            //if (filterArg_AdreseDTO.ADR_CD != 0)
            //{
            //    adreseQueryable = adreseQueryable.Where(o => o.ADR_CD.Equals(filterArg_AdreseDTO.ADR_CD) && o.dat_beig != null);

            //}

            if (filterArg_AdreseDTO.VKUR_CD != 0)
            {
                adreseQueryable = adreseQueryable.Where(o => o.VKUR_CD.Equals(filterArg_AdreseDTO.VKUR_CD));
            }

            if (!string.IsNullOrWhiteSpace(filterArg_AdreseDTO.STATUSS))
            {
                adreseQueryable = adreseQueryable.Where(o => o.STATUSS.Equals(filterArg_AdreseDTO.STATUSS));
            }

            //https://localhost:44302/api/adreses/filter?DAT_SAK=2011-07-07&STD=dzirn

            /*
             * if (value.HasValue)
             * {
             * Console.WriteLine(value.Value);
             * }
             * else
             * {
             * Console.WriteLine(0);
             * }*/

            if (filterArg_AdreseDTO.DAT_SAK != DateTime.MinValue)

            {
                adreseQueryable = adreseQueryable.Where(o => o.DAT_SAK.Date.Equals(filterArg_AdreseDTO.DAT_SAK));
            }

            if (filterArg_AdreseDTO.DAT_MOD != DateTime.MinValue) // visi null datumi lasās kā '01.01.0001 00:00:00' kas ir arī MinValue
            {
                adreseQueryable = adreseQueryable.Where(o => o.dat_mod.Date.Equals(filterArg_AdreseDTO.DAT_MOD));
                // dat_mod ielasot null nestrādā, ielaspt DaeTime strādā.
            }

            //if (filterArg_AdreseDTO.DAT_BEIG != DateTime.MinValue)
            //{

            //    adreseQueryable = adreseQueryable.Where(o => o.dat_beig.Date.Equals(filterArg_AdreseDTO.DAT_BEIG));
            //}
            Console.WriteLine("arg_Adrese.ADR_CD: " + filterArg_AdreseDTO.ADR_CD);
            Console.WriteLine("arg_Adrese.STD: " + filterArg_AdreseDTO.STD);
            Console.WriteLine("arg_Adrese.tips_cd: " + filterArg_AdreseDTO.TIPS_CD);
            Console.WriteLine("arg_Adrese.STATUSS: " + filterArg_AdreseDTO.STATUSS);
            Console.WriteLine("arg_Adrese.DAT_SAK: " + filterArg_AdreseDTO.DAT_SAK);

            var adreses = await adreseQueryable//.Where(o => o.dat_mod.Date.Equals(filterArg_AdreseDTO.DAT_MOD))
                          .Include(q => q.Art_KonstTips)
                          .Include(q => q.Art_KonstStatuss)
                          .ToListAsync();

            var adresesSorted = adreses.OrderBy(n => n.ADR_CD).ToList(); //vajag sortot jo asinhroni liekot adreses lista katra adrese ne vienmer bus vienaa un tada pasa pozicijaa

            return(_mapper.Map <List <Arg_AdreseDTO> >(adresesSorted));
        }