Example #1
0
        public async Task <IEnumerable <IntezmenyPinDto> > GetIntezmenyekAsync(IntezmenySearchParams searchParams)
        {
            IQueryable <Intezmeny> intezemenyQuery = context.Intezmenyek
                                                     .Include(i => i.Esemenyek)
                                                     .Include(i => i.IntezmenyHelyszinek)
                                                     .Include(i => i.IntezmenyVezetok);

            if (!String.IsNullOrEmpty(searchParams.IntezmenyCim))
            {
                intezemenyQuery = intezemenyQuery.Where(i => i.IntezmenyHelyszinek.Any(ih => ih.Helyszin.ToLower().Contains(searchParams.IntezmenyCim.ToLower())));
            }

            if (!String.IsNullOrEmpty(searchParams.IntezmenyNev))
            {
                intezemenyQuery = intezemenyQuery.Where(i => i.Nev.ToLower().Contains(searchParams.IntezmenyNev.ToLower()));
            }
            //TODO: idot is nezzen ha kell(nincs tisztazva)
            if (!String.IsNullOrEmpty(searchParams.IntezmenyVezeto))
            {
                intezemenyQuery = intezemenyQuery.Where(i => i.IntezmenyVezetok.Any(iv => iv.Nev.ToLower().Contains(searchParams.IntezmenyVezeto.ToLower())));
            }

            if (!String.IsNullOrEmpty(searchParams.EsemenyNev))
            {
                intezemenyQuery = intezemenyQuery.Where(i => i.Esemenyek.Any(es => es.Nev.ToLower().Contains(searchParams.EsemenyNev.ToLower())));
            }

            if (searchParams.IntezmenyTipus != null)
            {
                intezemenyQuery = intezemenyQuery.Where(i => searchParams.IntezmenyTipus.Contains(i.Tipus));
            }

            if (searchParams.MukodesIg != null)
            {
                //intezmenyre vonatkozo
                intezemenyQuery = intezemenyQuery.Where(i => i.Alapitas <= searchParams.MukodesIg);
            }

            if (searchParams.MukodesTol != null)
            {
                intezemenyQuery = intezemenyQuery.Where(i => i.Megszunes >= searchParams.MukodesTol || i.Megszunes == null);
            }

            return(await intezemenyQuery.SelectMany(i => i.IntezmenyHelyszinek
                                                    .Where(ih =>
                                                           (searchParams.MukodesTol == null ||
                                                            searchParams.MukodesTol <= ih.Koltozes || ih.Koltozes == null) &&
                                                           (searchParams.MukodesIg == null ||
                                                            searchParams.MukodesIg >= ih.Nyitas))
                                                    .Select(ih => new IntezmenyPinDto
            {
                IntezmenyId = i.Id,
                IntezmenyTipus = i.Tipus,
                Latitude = ih.Latitude,
                Longitude = ih.Longitude
            })).ToListAsync().ConfigureAwait(false));
        }
 public async Task <IEnumerable <IntezmenyPinDto> > GetIntezmenyek(IntezmenySearchParams searchParams)
 {
     return(await intezmenyService.GetIntezmenyekAsync(searchParams));
 }