Exemplo n.º 1
0
        public async Task <JsonResult> Get(int limit, string nosamb, string nama, string alamat, string koderayon, string kodekelurahan,
                                           string kodegol, string kodediameter, string kodekolektif, string kodekondisimeter, string kodesumberair, string kodeblok, string kodemerekmeter,
                                           string nohp, string notelp, string noktp, string norekening, string serimeter, int?status, int?flag, string email, DateTime?tgldaftar)
        {
            var watch = Stopwatch.StartNew();

            try
            {
                var param = new MasterPelangganDto()
                {
                    NoSamb           = nosamb,
                    Nama             = nama,
                    Alamat           = alamat,
                    KodeRayon        = koderayon,
                    KodeKelurahan    = kodekelurahan,
                    KodeGol          = kodegol,
                    KodeDiameter     = kodediameter,
                    KodeKolektif     = kodekolektif,
                    KodeKondisiMeter = kodekondisimeter,
                    KodeSumberAir    = kodesumberair,
                    KodeBlok         = kodeblok,
                    KodeMerekMeter   = kodemerekmeter,
                    NoHp             = nohp,
                    NoTelp           = notelp,
                    NoKtp            = noktp,
                    NoRekening       = norekening,
                    SeriMeter        = serimeter,
                    Status           = status,
                    Flag             = flag,
                    Email            = email,
                    TglDaftar        = tgldaftar,
                };

                AppResponse.ResponseGetData(await pelangganService.GetAll(limit, param));
            }
            catch (Exception e)
            {
                AppResponse.ResponseErrorGetData(e.InnerException != null ? e.InnerException.Message : e.Message);
            }

            watch.Stop();
            AppResponse._result.execution_time = watch.ElapsedMilliseconds;
            return(new JsonResult(AppResponse._result));
        }
 public async Task <IEnumerable <MasterPelangganDto> > GetAll(int limit, MasterPelangganDto param)
 {
     return(await PelangganRepo.GetAllAsync(limit, param));
 }
        public async Task <IEnumerable <MasterPelangganDto> > GetAllAsync(int limit, MasterPelangganDto param)
        {
            using var context = new AppDbContext();

            IQueryable <MasterPelanggan> query = (from pelanggan in context.MasterPelanggan.Where(c => c.FlagHapus == false)

                                                  join rayon in context.MasterRayon on pelanggan.KodeRayon equals rayon.KodeRayon into gRayon
                                                  from rayon in gRayon.DefaultIfEmpty()

                                                  join kelurahan in context.MasterKelurahan on pelanggan.KodeKelurahan equals kelurahan.KodeKelurahan into gKelurahan
                                                  from kelurahan in gKelurahan.DefaultIfEmpty()

                                                  join diameter in context.MasterDiameter.Where(c => c.Status == true) on pelanggan.KodeDiameter equals diameter.KodeDiameter into gDiameter
                                                  from diameter in gDiameter.DefaultIfEmpty()

                                                  join golongan in context.MasterGolongan.Where(c => c.Status == true) on pelanggan.KodeGol equals golongan.KodeGol into gGolongan
                                                  from golongan in gGolongan.DefaultIfEmpty()

                                                  join kolektif in context.MasterKolektif on pelanggan.KodeKolektif equals kolektif.KodeKolektif into gKolektif
                                                  from kolektif in gKolektif.DefaultIfEmpty()

                                                  join kondisimeter in context.MasterKondisiMeter on pelanggan.KodeKondisiMeter equals kondisimeter.KodeKondisiMeter into gKondisiMeter
                                                  from kondisimeter in gKondisiMeter.DefaultIfEmpty()

                                                  join sumberair in context.MasterSumberAir on pelanggan.KodeSumberAir equals sumberair.KodeSumberAir into gSumberair
                                                  from sumberair in gSumberair.DefaultIfEmpty()

                                                  join blok in context.MasterBlok on pelanggan.KodeBlok equals blok.KodeBlok into gBlok
                                                  from blok in gBlok.DefaultIfEmpty()

                                                  join merekmeter in context.MasterMerekMeter on pelanggan.KodeMerekMeter equals merekmeter.KodeMerekMeter into gMerekmeter
                                                  from merekmeter in gMerekmeter.DefaultIfEmpty()

                                                  select new MasterPelanggan()
            {
                #region field from models
                NoSamb = pelanggan.NoSamb,
                Nama = pelanggan.Nama,
                Alamat = pelanggan.Alamat,
                KodeRayon = pelanggan.KodeRayon,
                KodeKelurahan = pelanggan.KodeKelurahan,
                KodeGol = pelanggan.KodeGol,
                KodeDiameter = pelanggan.KodeDiameter,
                KodeKolektif = pelanggan.KodeKolektif,
                KodeKondisiMeter = pelanggan.KodeKondisiMeter,
                KodeSumberAir = pelanggan.KodeSumberAir,
                KodeBlok = pelanggan.KodeBlok,
                KodeMerekMeter = pelanggan.KodeMerekMeter,
                KodeAdministrasiLain = pelanggan.KodeAdministrasiLain,
                KodePemeliharaanLain = pelanggan.KodePemeliharaanLain,
                KodeRetribusiLain = pelanggan.KodeRetribusiLain,
                NoHp = pelanggan.NoHp,
                NoTelp = pelanggan.NoTelp,
                NoKtp = pelanggan.NoKtp,
                NoSegelMeter = pelanggan.NoSegelMeter,
                NoRekening = pelanggan.NoRekening,
                NoPendaftaran = pelanggan.NoPendaftaran,
                NoRab = pelanggan.NoRab,
                SeriMeter = pelanggan.SeriMeter,
                Status = pelanggan.Status,
                KepemilikanBangunan = pelanggan.KepemilikanBangunan,
                NamaPemilik = pelanggan.NamaPemilik,
                Pekerjaan = pelanggan.Pekerjaan,
                Penghuni = pelanggan.Penghuni,
                Flag = pelanggan.Flag,
                Keterangan = pelanggan.Keterangan,
                AdaAngsuran = pelanggan.AdaAngsuran,
                LuasRumah = pelanggan.LuasRumah,
                Email = pelanggan.Email,
                TglDaftar = pelanggan.TglDaftar,
                TglMeter = pelanggan.TglMeter,
                UrutanBaca = pelanggan.UrutanBaca,
                StanAwalPasang = pelanggan.StanAwalPasang,
                FlagHapus = pelanggan.FlagHapus,
                NosambBaru = pelanggan.NosambBaru,
                KeteranganHapus = pelanggan.KeteranganHapus,
                TglHapus = pelanggan.TglHapus,
                TglPutus = pelanggan.TglPutus,
                #endregion

                #region Virtual
                MasterRayon = pelanggan.MasterRayon,
                MasterKelurahan = pelanggan.MasterKelurahan,
                MasterDiameter = pelanggan.MasterDiameter,
                MasterGolongan = pelanggan.MasterGolongan,
                MasterKolektif = pelanggan.MasterKolektif,
                MasterKondisiMeter = pelanggan.MasterKondisiMeter,
                MasterSumberAir = pelanggan.MasterSumberAir,
                MasterBlok = pelanggan.MasterBlok,
                MasterMerekMeter = pelanggan.MasterMerekMeter,


                #endregion
            });

            #region where clouse

            if (!string.IsNullOrWhiteSpace(param.NoSamb))
            {
                query = query.Where(n => n.NoSamb == param.NoSamb);
            }

            if (!string.IsNullOrWhiteSpace(param.Nama))
            {
                query = query.Where(n => EF.Functions.Like(n.Nama, $"%{param.Nama}%"));
            }

            if (!string.IsNullOrWhiteSpace(param.Alamat))
            {
                query = query.Where(n => EF.Functions.Like(n.Alamat, $"%{param.Alamat}%"));
            }

            if (!string.IsNullOrWhiteSpace(param.KodeRayon))
            {
                query = query.Where(n => n.KodeRayon == param.KodeRayon);
            }

            if (!string.IsNullOrWhiteSpace(param.KodeKelurahan))
            {
                query = query.Where(n => n.KodeKelurahan == param.KodeKelurahan);
            }

            if (!string.IsNullOrWhiteSpace(param.KodeGol))
            {
                query = query.Where(n => n.KodeGol == param.KodeGol);
            }

            if (!string.IsNullOrWhiteSpace(param.KodeDiameter))
            {
                query = query.Where(n => n.KodeDiameter == param.KodeDiameter);
            }

            if (!string.IsNullOrWhiteSpace(param.KodeKolektif))
            {
                query = query.Where(n => n.KodeKolektif == param.KodeKolektif);
            }

            if (!string.IsNullOrWhiteSpace(param.KodeKondisiMeter))
            {
                query = query.Where(n => n.KodeKondisiMeter == param.KodeKondisiMeter);
            }

            if (!string.IsNullOrWhiteSpace(param.KodeSumberAir))
            {
                query = query.Where(n => n.KodeSumberAir == param.KodeSumberAir);
            }

            if (!string.IsNullOrWhiteSpace(param.KodeBlok))
            {
                query = query.Where(n => n.KodeBlok == param.KodeBlok);
            }

            if (!string.IsNullOrWhiteSpace(param.KodeMerekMeter))
            {
                query = query.Where(n => n.KodeMerekMeter == param.KodeMerekMeter);
            }

            if (!string.IsNullOrWhiteSpace(param.NoHp))
            {
                query = query.Where(n => n.NoHp == param.NoHp);
            }

            if (!string.IsNullOrWhiteSpace(param.NoTelp))
            {
                query = query.Where(n => n.NoTelp == param.NoTelp);
            }

            if (!string.IsNullOrWhiteSpace(param.NoKtp))
            {
                query = query.Where(n => n.NoKtp == param.NoKtp);
            }

            if (!string.IsNullOrWhiteSpace(param.NoRekening))
            {
                query = query.Where(n => n.NoRekening == param.NoRekening);
            }

            if (!string.IsNullOrWhiteSpace(param.SeriMeter))
            {
                query = query.Where(n => n.SeriMeter == param.SeriMeter);
            }

            if (!string.IsNullOrWhiteSpace(Convert.ToString(param.Status)))
            {
                query = query.Where(n => n.Status == param.Status);
            }

            if (!string.IsNullOrWhiteSpace(Convert.ToString(param.Flag)))
            {
                query = query.Where(n => n.Flag == param.Flag);
            }

            if (!string.IsNullOrWhiteSpace(param.Email))
            {
                query = query.Where(n => n.Email == param.Email);
            }

            if (!string.IsNullOrWhiteSpace(Convert.ToString(param.TglDaftar)))
            {
                query = query.Where(n => n.TglDaftar == param.TglDaftar);
            }


            #endregion

            var data = await query.Take(limit).ToListAsync();

            return(_mapper.Map <IEnumerable <MasterPelangganDto> >(data));
        }