public Task <TotalPageSearchResponse> SearchTotalPageEmlakAsync(SerchRequest request)
        {
            return(base.ExecuteWithExceptionHandledOperation(async() =>
            {
                //request.id = 3;
                int pageSize = 2;

                List <KategoriSearch> listKategori = new List <KategoriSearch>();
                TotalPageSearchResponse total = new TotalPageSearchResponse();

                var kat = await _emlakKategoriler.GetAsync(request.id);
                total.totalRecord = kat.IlanIlanlar.Count();
                total.totalPage = (total.totalRecord / pageSize) + ((total.totalRecord % pageSize) > 0 ? 1 : 0);
                total.currentPage = request.page;
                int skip = (request.page - 1) * pageSize;
                var ilan = kat.IlanIlanlar.Skip(skip).Take(pageSize).Where(x => x.Private == "Genel");
                foreach (var item in ilan)
                {
                    listKategori.Add(new KategoriSearch {
                        Id = item.Id, Baslik = item.Baslik, Resim = item.IlanResimler.First().Resim
                    });
                }
                //  total.NewSearchList = listKategori;



                return Mapper.Map <TotalPageSearchResponse>(total);
            }));
        }
 public void Execute(SerchChanRequest search)
 {
     ExecuteProcess(search);
     if (this._nextOperation != null)
     {
         this._nextOperation.sonuc              = this.sonuc;
         this._nextOperation.request            = this.request;
         this._nextOperation.ListKategori       = this.ListKategori;
         this._nextOperation.total              = this.total;
         this._nextOperation._emlakKategoriler  = this._emlakKategoriler;
         this._nextOperation._ilanResimler      = this._ilanResimler;
         this._nextOperation._ilanTipOzellikler = this._ilanTipOzellikler;
         this._nextOperation.ilanIlanlar        = this.ilanIlanlar;
         this._nextOperation.pageSize           = this.pageSize;
         this._nextOperation._ilanIsyeriTipi    = this._ilanIsyeriTipi;
         this._nextOperation.Execute(search);
     }
 }
        public async Task <TotalPageSearchResponse> TestGetMethod(SerchRequest request)
        {
            int pageSize = 3;
            TotalPageSearchResponse total = new TotalPageSearchResponse();

            total.totalRecord = _ilanIlanlar.GetAll().Count();
            //total.totalRecord = search.Count();
            total.currentPage = request.page;
            total.totalPage   = (total.totalRecord / pageSize) + ((total.totalRecord % pageSize) > 0 ? 1 : 0);
            var a = await _ilanIlanlar.GetAll().Skip((request.page - 1) * pageSize).Take(pageSize).ToListAsync();

            foreach (var item in a)
            {
                total.Ilanlar.Add(new IlanIlanlarResponse {
                    Baslik = item.Baslik, Aciklama = item.Aciklama, Id = item.Id, Fiyat = item.Fiyat
                });
            }

            return(Mapper.Map <TotalPageSearchResponse>(total));
        }
        private async Task <TotalPageSearchResponse> TuruneGoreAra(IEmlakLocation _ilanLocation, IEmlakKategoriler _emlakKategoriler, TotalPageSearchResponse total, List <IlanIlanlarResponse> listIlanlar, List <EmlakLocationResponse> listAdresler, SerchRequest request)
        {
            int pageSize = 2;
            var tipi     = await _ilanLocation.GetAsync(request.SemtId);

            if (total.totalRecord <= 0)
            {
                total.totalRecord = tipi.IlanIlanlar.Count();
            }
            if (total.totalPage <= 0)
            {
                total.totalPage = (total.totalRecord / pageSize) + ((total.totalRecord % pageSize) > 0 ? 1 : 0);
            }
            total.currentPage = request.page;
            int skip = (request.page - 1) * pageSize;
            var kat  = tipi.IlanIlanlar.Skip(skip).Take(pageSize).Where(x => x.Private == "Genel");


            foreach (var item in kat)
            {
                listAdresler.Clear();
                foreach (var adres in item.EmlakLocation)
                {
                    if (adres.Id > 0)
                    {
                        listAdresler.Add(new EmlakLocationResponse
                        {
                            LocationName = adres.LocationName
                        });
                    }
                    else
                    {
                        total.isLocation = false;
                    }
                }
                string resim      = (item.IlanResimler.Count() > 0 ? item.IlanResimler.First().Resim : "noimages.jpg");
                string ilanKimden = item.IlanKimden.First().EmlakKimden.Kimden;
                listIlanlar.Add(new IlanIlanlarResponse
                {
                    Id               = item.Id,
                    Baslik           = item.Baslik,
                    Aciklama         = item.Aciklama,
                    Fiyat            = item.Fiyat,
                    MetreKare        = item.MetreKare,
                    Takasli          = item.TakasliID,
                    TakasTuru        = item.TakasTuru,
                    Resim            = resim,
                    IletisimTelefonu = item.IletisimTelefonu,
                    IlanKimden       = ilanKimden,
                    Location         = listAdresler
                });
            }
            //total.Adresler = listAdresler;
            //  total.NewSearchList = listKategori;
            total.Ilanlar = listIlanlar;
            return(total);
        }
 public Task <TotalPageSearchResponse> SearchQuery(IEmlakLocation _ilanLocation, IEmlakKategoriler _emlakKategoriler, TotalPageSearchResponse total, List <IlanIlanlarResponse> listIlanlar, List <EmlakLocationResponse> listAdresler, SerchRequest request)
 {
     return(Task.Run(() => this.TuruneGoreAra(_ilanLocation, _emlakKategoriler, total, listIlanlar, listAdresler, request)));
 }
        public Task <TotalPageSearchResponse> TotalPageAsync(SerchRequest request)
        {
            return(base.ExecuteWithExceptionHandledOperation(async() =>
            {
                int pageSize = 5;
                List <KategoriSearch> ddd = new List <KategoriSearch>();
                List <IlanIlanlarResponse> listIlanlar = new List <IlanIlanlarResponse>();
                List <KategoriSearch> listKategori = new List <KategoriSearch>();
                List <EmlakLocationResponse> listAdresler = new List <EmlakLocationResponse>();
                TotalPageSearchResponse total = new TotalPageSearchResponse();
                List <IlanIlanlar> ilanllanlar = new List <IlanIlanlar>();

                if (request.id != 0)
                {
                    AramaFabrikasi fabrika = new AramaFabrikasi();
                    ISearch arama = fabrika.AramaNesnesiOlustur(request);
                    await arama.SearchQuery(_ilanLocation, _emlakKategoriler, total, listIlanlar, listAdresler, request);
                }


                else
                {
                    if (total.totalRecord <= 0)
                    {
                        total.totalRecord = _ilanIlanlar.GetAll().Count();
                    }
                    if (total.totalPage <= 0)
                    {
                        total.totalPage = (total.totalRecord / pageSize) + ((total.totalRecord % pageSize) > 0 ? 1 : 0);
                    }
                    total.currentPage = request.page;
                    int skip = (request.page - 1) * pageSize;
                    // .Skip((request.page - 1) * pageSize).Take(pageSize)
                    var kat = await _ilanIlanlar.GetAll(skip, pageSize).Where(x => x.Private == "Genel").ToListAsync();
                    // var kat = await _emlakKategoriler.GetAll();
                    // var ilan = kat.IlanIlanlar.Where(x => x.Private == "Genel");
                    foreach (var item in kat)
                    {
                        listAdresler.Clear();
                        foreach (var adres in item.EmlakLocation)
                        {
                            listAdresler.Add(new EmlakLocationResponse
                            {
                                LocationName = adres.LocationName
                            });
                        }
                        string resim = (item.IlanResimler.Count() > 0 ? item.IlanResimler.First().Resim: "noimages.jpg");
                        string ilanKimden = item.IlanKimden.First().EmlakKimden.Kimden;
                        listIlanlar.Add(new IlanIlanlarResponse {
                            Id = item.Id,
                            Baslik = item.Baslik,
                            Aciklama = item.Aciklama,
                            Fiyat = item.Fiyat,
                            MetreKare = item.MetreKare,
                            Takasli = item.TakasliID,
                            TakasTuru = item.TakasTuru,
                            Resim = resim,
                            IletisimTelefonu = item.IletisimTelefonu,
                            IlanKimden = ilanKimden,
                            Location = listAdresler
                        });
                    }


                    //total.Adresler = listAdresler;
                    //total.NewSearchList = listKategori;
                    total.Ilanlar = listIlanlar;
                }

                return Mapper.Map <TotalPageSearchResponse>(total);
            }));
        }