示例#1
0
 private void CheckCityParam(CityQuery param, int?paramId)
 {
     if (param == null)
     {
         return;
     }
     if (param.cityName != null)
     {
         if (param.countryName == null)
         {
             if (paramId.HasValue)
             {
                 ModelState.AddModelError($"countryName{paramId.Value}", "Отсутствует значение параметра");
             }
             else
             {
                 ModelState.AddModelError($"countryName", "Отсутствует значение параметра");
             }
         }
     }
     if (param.countryName != null)
     {
         if (param.cityName == null)
         {
             if (paramId.HasValue)
             {
                 ModelState.AddModelError($"cityName{paramId.Value}", "Отсутствует значение параметра");
             }
             else
             {
                 ModelState.AddModelError($"cityName", "Отсутствует значение параметра");
             }
         }
     }
 }
示例#2
0
        private async Task <DateConvertResult> ConvertDate(CityQuery city, DateTime inDateTime)
        {
            DateConvertResult result = new DateConvertResult();

            result.dateConvertOut = inDateTime;
            result.errorType      = 0;
            if (city == null)
            {
                return(result);
            }
            if (city.cityName != null)
            {
                var cityRes = await _timeZoneCorrector.GetCity(city.countryName, city.stateName, city.districtName, city.cityName);

                if (cityRes == null)
                {
                    result.errorType = -1;
                    return(result);
                }
                if (_timeZoneCorrector.ConvertToUtcFromCustomTimeZone(cityRes.TimeZone,
                                                                      (DateTime)inDateTime, out result.dateConvertOut))
                {
                    result.errorType = 0;
                    return(result);
                }
                else
                {
                    result.errorType = -2;
                    return(result);
                }
            }
            result.errorType = -1;
            return(result);
        }
        public IEnumerable fooAsync([FromUri] CityQuery model)
        {
            if (!ModelState.IsValid)
            {
                return(Enumerable.Empty <object>());
            }
            var    query       = model.Query.ToLower();
            string firstLetter = query[0].ToString();

            var(powQuery, gmiQuery, miejscQuery) = cache.Contains(firstLetter) ? (ValueTuple <IEnumerable <object>, IEnumerable <object>, IEnumerable <object> >)cache.Get(firstLetter) : GetFromDb(firstLetter.First());


            powQuery = from pow in powQuery.AsParallel().Cast <Pow>()
                       where pow.Nazwa.ToLower().StartsWith(query)
                       select new PowModel(pow) into pow
                       orderby pow.Pow, pow.Woj
            select pow;

            gmiQuery = from gmi in gmiQuery.AsParallel().Cast <Gmi>()
                       where gmi.Name != gmi.Pow.Nazwa && gmi.Name.ToLower().StartsWith(query)
                       select new GminModel(gmi) into gmi
                       orderby gmi.Gmin, gmi.Pow, gmi.Woj
            select gmi;

            miejscQuery = from miejsc in miejscQuery.AsParallel().Cast <Miejsc>()
                          where (miejsc.Nazwa != miejsc.Gmi.Name || miejsc.RM == 99) && miejsc.Nazwa.ToLower().StartsWith(query)
                          select new MiejscModel(miejsc) into miejsc
                          orderby miejsc.Miejsc, miejsc.Gmin, miejsc.Pow, miejsc.Woj
            select miejsc;

            return(powQuery.Concat(gmiQuery).Concat(miejscQuery));
        }
        public async Task <IActionResult> GetCitiesAsync([FromQuery] CityQuery cityQuery)
        {
            var queryResult = await _cityRepository.GetAllAsync(cityQuery);

            var result = queryResult.Adapt <CityListViewModel>();

            return(Ok(result));
        }
示例#5
0
        public async Task <IEnumerable <ProvinceFormDTO> > GetCitiesAsync(CityQuery query)
        {
            var provinces = await _context.Provinces
                            .Include(p => p.Districts
                                     .Where(d => query.ProvinceName != null &&
                                            d.Province.ProvinceName == query.ProvinceName))
                            .ThenInclude(d => d.Communes
                                         .Where(c => query.DistrictName != null &&
                                                c.District.DistrictName == query.DistrictName))
                            .ThenInclude(c => c.Cities
                                         .Where(c => query.CommuneName != null &&
                                                c.Commune.CommuneName == query.CommuneName))
                            .ToListAsync();


            var provincesDTO = _mapper.Map <IEnumerable <ProvinceFormDTO> >(provinces);

            return(provincesDTO);
        }
示例#6
0
        public async Task <PaginatedQueryResult <City> > GetAllAsync(CityQuery cityQuery)
        {
            var query = _dbContext.Set <City>().AsQueryable();

            if (!string.IsNullOrEmpty(cityQuery.Name))
            {
                query = query.Where(x => EF.Functions.ILike(x.Name, $"%{cityQuery.Name}%"));
            }
            if (!string.IsNullOrEmpty(cityQuery.UF))
            {
                query = query.Where(x => EF.Functions.ILike(x.UF, $"%{cityQuery.UF}%"));
            }
            if (!string.IsNullOrEmpty(cityQuery.Region))
            {
                query = query.Where(x => EF.Functions.ILike(x.Region, $"%{cityQuery.Region}%"));
            }

            if (cityQuery.Page < 1)
            {
                cityQuery.Page = 1;
            }

            if (cityQuery.PageSize < 1)
            {
                cityQuery.PageSize = 1;
            }

            var count = await query.CountAsync();

            query = query.Skip((cityQuery.PageSize - 1) * cityQuery.PageSize).Take(cityQuery.PageSize);
            var items = await query.ToListAsync();

            return(new PaginatedQueryResult <City>
            {
                Items = items,
                Count = count
            });
        }
示例#7
0
        public async Task <ActionResult> GetCity([FromQuery] CityQuery query)
        {
            if (query.countryName == null)
            {
                ModelState.AddModelError("countryName", "Отсутствует значение параметра");
            }
            if (query.cityName == null)
            {
                ModelState.AddModelError("cityName", "Отсутствует значение параметра");
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(new ResponseError
                {
                    error = true,
                    message = GetModelStateError()
                }));
            }
            var city = await _timeZoneCorrector.GetCity(query.countryName, query.stateName, query.districtName,
                                                        query.cityName);

            if (city == null)
            {
                return(BadRequest(new ResponseError
                {
                    error = true,
                    message = "City not found"
                }));
            }

            return(Ok(new ResponseResult <City>()
            {
                error = false,
                result = city
            }));
        }
示例#8
0
        public async Task <ActionResult <IEnumerable <ProvinceFormDTO> > > GetCitiesAsync([FromQuery] CityQuery query)
        {
            var proviences = await _unitOfWork.CityRepository.GetCitiesAsync(query);

            return(Ok(proviences));
        }
示例#9
0
 private string GetInsertionCityLine(CityQuery city)
 {
     return
         ($"EXECUTE [dbo].[addCity]  N'{city.Name}'");
 }