// GET: TitikPotongHor
        public async Task <IActionResult> Index(int?id)
        {
            var sesPola = SPola.GetSesi(this);

            if (id != null)
            {
                sesPola.SetPolaId(id);
            }
            else
            {
                id = sesPola.PolaId;
            }

            if (id != 0)
            {
                try{
                    QCekKoordinat cekKoord = new QCekKoordinat(_context, (int)id);
                    //perbaharui tabel titik potong
                    cekKoord.UpdateDariTblTitik();
                }
                catch { }
            }
            var rabContext = await _context.TblKoordinat.Where(t => t.TitikX.PolaId == id).OrderBy(t => t.Yid).ThenBy(y => y.Xid).ToListAsync();


            bool isAjax = HttpContext.Request.Headers["X-Requested-With"] == "XMLHttpRequest";

            if (isAjax)
            {
                return(PartialView("RAB/_TblKoordinat", rabContext));
            }


            ViewBag.ListPola = new SelectList(_context.TblPola, "PolaId", "Nama", id);
            ViewBag.PolaId   = id;

            return(View(rabContext));
        }
Exemplo n.º 2
0
        public IActionResult Index(int? id, int skl = 50, bool dariForm= false)
        {
            var sesPola = SPola.GetSesi(this);
            if (dariForm)
                sesPola.SetPolaId(id);
            else
                id = sesPola.PolaId;

            decimal skala = (decimal)skl;
            if (skala < 10) { skala = 100; }
            var MVGambarGaris = new MVGambarGaris()
            {
                Skala = skala / 100,
                PolaId = id
            };

            if (id != null & id != 0)
            {
                //perbaharui tabel koordinat
                try
                {
                    QCekKoordinat cekKoord = new QCekKoordinat(_context, (int)id);
                    //perbaharui tabel titik potong
                    cekKoord.UpdateDariTblTitik();
                }
                catch { }

                var qGaris = new List<OGaris>().AsQueryable();
                var qGrsKoor = new List<OKetGarisKoordinat>().AsQueryable();
                var qTtkKoor = new List<Koordinat>().AsQueryable();
                try
                {
                    QCekBidangDatar qDatar = new QCekBidangDatar(_context, (int)id);
                    qGaris = qDatar.QryGarisPartial.OrderBy(g => g.Arah);

                    QCekKoordinat qKoor = new QCekKoordinat(_context, (int)id);
                    qGrsKoor = qKoor.GarisKoordinat;
                    qTtkKoor = qKoor.QryTblIniPosUpToDate;

                    MVGambarGaris.TinggiMax = qGrsKoor.Where(g => g.Garis.Arah == ESumbu.Y)
                                .Select(s => s.Garis.Akhir.TitikY.PosAbs).Max() + 300;
                    MVGambarGaris.LebarMax = qGrsKoor.Where(g => g.Garis.Arah == ESumbu.X)
                                .Select(s => s.Garis.Akhir.TitikX.PosAbs).Max() + 300;
                    //buat garis koordinat

                }
                catch (Exception) { }

                MVGambarGaris.LstGarisReal = qGaris.ToList();
                MVGambarGaris.LstGrsKoord = qGrsKoor.ToList();
                MVGambarGaris.LstKoord = qTtkKoor.ToList();
            }

            ViewBag.Skala = skala / 100;
            bool isAjax = HttpContext.Request.Headers["X-Requested-With"] == "XMLHttpRequest";
            if (isAjax)
            {
                return PartialView("RAB/_ViewGambarGaris", MVGambarGaris);
            }

            ViewBag.ListSkala = new SelectList(LstSkala, "Nilai", "Nama", skala);
            ViewBag.ListPola = new SelectList(_context.TblPola, "PolaId", "Nama", id);
            ViewBag.PolaId = id;
            // iQueryable tdk bisa menggunkan toListAsync()
            // jadi untuk sementara pakai toList() aja
            return View(MVGambarGaris);
        }
Exemplo n.º 3
0
        public IActionResult KompGaris(int? polaId, int? garisId, int? koorId, int? skl, bool inzet = false)
        {
            var sesPola = SPola.GetSesi(this);
            int _polaId = 0;
            if (polaId == null || polaId == 0)
            {
                _polaId = sesPola.PolaId;
            }
            else
            {
                _polaId = (int)polaId;
            }

            if(garisId != null)
            {
                // simpan ke sessi
                sesPola.SetGarisId(garisId);
            }
            else {
                garisId = sesPola.GarisId;
            }

            if (skl != null)
            {
                // simpan ke sessi
                sesPola.SetSkala(skl);
            }
            else
            {
                skl = sesPola.Skala;
            }
            //tidak ada pilihan pola

            decimal skala = (decimal)skl;
            var polaNama = "";

            //int polId = ;

            var mvKompGaris = new MVGambarKompGaris();
            var mvGambarGarisParsial = new MVGambarGarisParsial()
            {
                Skala = skala / 100,
                PolaId = _polaId
            };
            var mvGambarGarisValid = new MVGambarGarisValid()
            {
                Skala = skala / 100,
                PolaId = _polaId
            };

            if (_polaId != 0)
            {

                #region garis valid
                polaNama = _context.TblPola.Find(_polaId).Nama;

                var qGaris = new List<Garis>().AsQueryable();
                var qGrsKoor = new List<OKetGarisKoordinat>().AsQueryable();
                var qTtkKoor = new List<Koordinat>().AsQueryable();
                try
                {
                    QCekGaris qcGaris = new QCekGaris(_context, _polaId);
                    qcGaris.UpdateDariGambar();
                    qGaris = qcGaris.QryTblIniPosUpToDate.OrderBy(g => g.Arah);

                    // memperbaharui tabel garis di pola terpilih
                    QCekGaris qGrs = new QCekGaris(_context, _polaId);
                    qGrs.UpdateDariGambar();

                    QCekKoordinat qKoor = new QCekKoordinat(_context, _polaId);
                    qGrsKoor = qKoor.GarisKoordinat;
                    qTtkKoor = qKoor.QryTblIniPosUpToDate;
                    // filter titik koordinat yang ada garis saja--------------------
                    var lstKoorAwalGrs = qGaris.Select(g => g.KoordAwal.KoordId).ToList();
                    var lstKoorAkhirGrs = qGaris.Select(g => g.KoordAkhir.KoordId).ToList();
                    qTtkKoor = qTtkKoor.Where(t => lstKoorAwalGrs.Contains(t.KoordId) || lstKoorAkhirGrs.Contains(t.KoordId));
                    //---------------------------------------------------------------------------------------------------------
                    mvGambarGarisValid.TinggiMax = qGrsKoor.Where(g => g.Garis.Arah == ESumbu.Y)
                                .Select(s => s.Garis.Akhir.TitikY.PosAbs).Max() + 300;
                    mvGambarGarisValid.LebarMax = qGrsKoor.Where(g => g.Garis.Arah == ESumbu.X)
                                .Select(s => s.Garis.Akhir.TitikX.PosAbs).Max() + 300;
                    //buat garis koordinat
                }
                catch (Exception) { }
                mvGambarGarisValid.LstGarisReal = qGaris.ToList();
                mvGambarGarisValid.LstGrsKoord = qGrsKoor.ToList();
                mvGambarGarisValid.LstKoord = qTtkKoor.ToList();
                #endregion
                #region garis parsial
                var garis = new Garis();
                try
                {
                    // for test
                    //garisId = 1;
                    QCekGaris qcGaris = new QCekGaris(_context, _polaId);
                    garis = qcGaris.QryTblIniPosUpToDate.Single(g => g.GarisId == (int)garisId);  //OrderBy(g => g.Arah);

                    QCekKoordinat qKoor = new QCekKoordinat(_context, _polaId);
                    qGrsKoor = qKoor.GarisKoordinat4Z;
                    qTtkKoor = qKoor.QryTblIni4ZPosUpToDate;

                    mvGambarGarisParsial.TinggiMax = qGrsKoor.Where(g => g.Garis.Arah == ESumbu.Y)
                                .Select(s => s.Garis.Akhir.TitikY.PosRel).Max();
                }
                catch (Exception) { }
                if (garisId != 0)
                {
                    QCekKompGaris qcKGaris = new QCekKompGaris(_context, _polaId, (int) garisId);
                    mvGambarGarisParsial.GarisReal = garis;
                    mvGambarGarisParsial.LstGarisKomp = qcKGaris.GarisKomponen.ToList();
                }
                mvGambarGarisParsial.LstGrsKoord = qGrsKoor.ToList();
                mvGambarGarisParsial.LstKoord = qTtkKoor.ToList();

                #endregion

                mvKompGaris.GarisValid = mvGambarGarisValid;
                mvKompGaris.GarisParsial = mvGambarGarisParsial;
                // menambang tabel komponen garis
                var tblKompGaris = _context.TblKomponenGaris
                        .Include(k => k.Garis)
                            .Include(g => g.Garis.KoordAwal)
                            .Include(g => g.Garis.KoordAkhir)
                            .Include(g => g.Garis.KoordAwal.TitikX)
                            .Include(g => g.Garis.KoordAwal.TitikY)
                            .Include(g => g.Garis.KoordAkhir.TitikX)
                            .Include(g => g.Garis.KoordAkhir.TitikY)
                        .Include(k => k.PolaKomponen).ThenInclude(p => p.Komponen)
                        .Include(k => k.TitikZ)
                        .Where(k => k.Garis.GarisId == garisId)
                        ;

                mvKompGaris.GarisParsial.TblKompGaris = tblKompGaris;
            }

            ViewBag.Skala = skala / 50;
            ViewBag.GarisTerpilih = garisId;
            ViewBag.KoordTerpilih = koorId;
            bool isAjax = HttpContext.Request.Headers["X-Requested-With"] == "XMLHttpRequest";
            if (isAjax)
            {
                if (inzet)
                {
                    return PartialView("RAB/_ViewGambarKompGaris", mvGambarGarisValid);
                }
                else
                {
                    return PartialView("RAB/_ViewGambarGarisParsial", mvGambarGarisParsial);
                }
            }

            //ViewBag.PolaNama = polaNama;
            ViewBag.ListSkala = new SelectList(LstSkala, "Nilai", "Nama", skala);

            return View(mvKompGaris);
        }