// Kullanıcının rolüne uygun bir şekilde kullanıcı listesi döndürür.
        public List <Firmalar> RolBazliKullaniciListesi(int FirmaID)
        {
            var firmalar    = new List <Firmalar>();
            var firmaBulucu = _firmalarService.GetByID(FirmaID);

            if (firmaBulucu != null)
            {
                string kullaniciTipi = "";
                if (firmaBulucu.Rol == Role._Isletme)
                {
                    kullaniciTipi = Role.IsletmeKullanicisi;
                }
                if (firmaBulucu.Rol == Role._Firma)
                {
                    kullaniciTipi = Role.FirmaKullanicisi;
                }
                if (firmaBulucu.Rol == Role._Sube)
                {
                    kullaniciTipi = Role.SubeKullanicisi;
                }

                if (_userJWTInfo.GetInfo().role == Role.Admin)
                {
                    firmalar = _firmalarService.GetAll(a => a.Aktif == true && a.ListeAktiflik == true && a.BagliOlduguID == firmaBulucu.FirmaID && a.Rol == kullaniciTipi).ToList();
                }
                else if (_userJWTInfo.GetInfo().role == Role.IsletmeKullanicisi || _userJWTInfo.GetInfo().role == Role.FirmaKullanicisi || _userJWTInfo.GetInfo().role == Role.SubeKullanicisi)
                {
                    var ustFirmaBulucu = _firmalarService.GetByID(_userJWTInfo.GetInfo().id);
                    if (ustFirmaBulucu != null)
                    {
                        if (ustFirmaBulucu.BagliOlduguID == firmaBulucu.FirmaID)
                        {
                            firmalar = _firmalarService.GetAll(a => a.Aktif == true && a.ListeAktiflik == true && a.BagliOlduguID == firmaBulucu.FirmaID && a.Rol == kullaniciTipi).ToList();
                        }
                    }
                }
            }
            return(firmalar);
        }
        public ActionResult FirmaHizmetler(int id)
        {
            // Firmanın kendisine seçtiği hizmetler
            var value = _firmalarService.GetAll(a => a.FirmaID == id && a.Aktif == true).ToList();

            return(Ok(value));
        }
        public ActionResult SeriNoErisimDogrula(string seriNo, int firmaId)
        {
            if (string.IsNullOrEmpty(seriNo) || string.IsNullOrEmpty(firmaId.ToString()))
            {
                return(Ok(new { Error = "Seri No ya da Firma boş değer olarak geldi." }));
            }
            else
            {
                var lastik = _lastiklerService.Get(a => a.SeriNo == seriNo && a.FirmaID == firmaId && a.Aktif == true);
                if (lastik != null)
                {
                    if (lastik.AracID != 0)
                    {
                        return(Ok(new { Error = "Bu Seri No'lu lastik bir araca takılı durumdadır." }));
                    }
                    var hurdaKonumTipBulucu = _lastikKonumlarService.Get(a => a.Ad == "Hurda");
                    if (lastik.LastikKonumID == hurdaKonumTipBulucu.LastikKonumID)
                    {
                        return(Ok(new { Error = "Bu Seri No'lu lastik hurda listesinde gözükmektedir." }));
                    }
                    var aracBakimClass = new AracBakimlar
                    {
                        AksPozisyonID = 0,
                        Aktif         = true,
                        AracID        = lastik.AracID,
                        LastikID      = lastik.LastikID,
                        AracBakimID   = 0
                    };
                    if (_userJWTInfo.GetInfo().role == Role.Admin)
                    {
                        return(Ok(new { MessageType = 1, Result = aracBakimClass }));
                    }
                    else
                    {
                        if (_userJWTInfo.GetInfo().role == Role.IsletmeKullanicisi)
                        {
                            var yetkiliOlduklariSubeler = new List <Firmalar>();
                            var yetkiliOlduklariListe   = _kullaniciYetkilerService.YetkiliOlduklariListesi(_userJWTInfo.GetInfo().id, Role._Sube);
                            // Eğer üst firmasına yetkiliyse, firmanın alt şubelerine erişim sağlayabilir.
                            yetkiliOlduklariListe.AddRange(_kullaniciYetkilerService.YetkiliOlduklariListesi(_userJWTInfo.GetInfo().id, Role._Firma));
                            yetkiliOlduklariListe.Where(a => a.YetkiTip == Role._Firma).ToList().ForEach(yetkiliItem =>
                            {
                                var firmaninAltSubeleri = _firmalarService.GetAll(a => a.Aktif == true && a.BagliOlduguID == yetkiliItem.IlgiliID);
                                yetkiliOlduklariSubeler.AddRange(firmaninAltSubeleri);
                            });

                            if (lastik.OlusturanId == _userJWTInfo.GetInfo().id || yetkiliOlduklariListe.FirstOrDefault(a => a.IlgiliID == lastik.FirmaID) != null || yetkiliOlduklariSubeler.FirstOrDefault(a => a.FirmaID == lastik.FirmaID) != null)
                            {
                                return(Ok(new { MessageType = 1, Result = aracBakimClass }));
                            }
                        }
                        else
                        {
                            if (lastik.OlusturanId == _userJWTInfo.GetInfo().id)
                            {
                                return(Ok(new { MessageType = 1, Result = aracBakimClass }));
                            }
                        }
                    }

                    return(Ok(new { Error = "Bu Seri No'lu lastiğe erişim izniniz bulunmamaktadır." }));
                }
                else
                {
                    return(Ok(new { Error = "Sistemde firmanın, bu Seri No ile eşleşen lastiği bulunmamaktadır." }));
                }
            }
        }
Exemplo n.º 4
0
        public ActionResult Araclar(DataTablesOptions model)
        {
            var araclars     = RolBazliAracListesi().AsQueryable().OrderBy(model.Columns[model.Order[0].Column].Data + " " + model.Order[0].Dir).ToList();
            var sorguAraclar = RolBazliAracListesi().AsQueryable().OrderBy(model.Columns[model.Order[0].Column].Data + " " + model.Order[0].Dir).ToList();



            if (!string.IsNullOrEmpty(model.Search?.Value))
            {
                araclars = araclars.Where(a => a.Plaka.IndexOf(model.Search.Value, 0, StringComparison.CurrentCultureIgnoreCase) != -1).ToList();
            }

            if (!string.IsNullOrEmpty(model.Search?.Value))
            {
                // firma filter
                var firmalar = _firmalarService.GetAll(a => a.FirmaAd.IndexOf(model.Search.Value, 0, StringComparison.CurrentCultureIgnoreCase) != -1 && a.Aktif == true);
                firmalar.ForEach(firmaItem =>
                {
                    var firmaIceriyorMu = sorguAraclar.Where(a => a.FirmaID == firmaItem.FirmaID);
                    if (firmaIceriyorMu.Count() > 0)
                    {
                        araclars.AddRange(firmaIceriyorMu);
                    }
                });

                // araç marka filter
                var aracMarkalar = _aracMarkalarService.GetAll(a => a.Ad.IndexOf(model.Search.Value, 0, StringComparison.CurrentCultureIgnoreCase) != -1 && a.Aktif == true);
                aracMarkalar.ForEach(aracMarkaItem =>
                {
                    var aracMarkaIceriyorMu = sorguAraclar.Where(a => a.MarkaID == aracMarkaItem.AracMarkaID);
                    if (aracMarkaIceriyorMu.Count() > 0)
                    {
                        araclars.AddRange(aracMarkaIceriyorMu);
                    }
                });

                // araç model filter
                var aracModeller = _aracModellerService.GetAll(a => a.Ad.IndexOf(model.Search.Value, 0, StringComparison.CurrentCultureIgnoreCase) != -1 && a.Aktif == true);
                aracModeller.ForEach(aracModelItem =>
                {
                    var aracModelIceriyorMu = sorguAraclar.Where(a => a.ModelID == aracModelItem.AracModelID);
                    if (aracModelIceriyorMu.Count() > 0)
                    {
                        araclars.AddRange(aracModelIceriyorMu);
                    }
                });

                // araç kategori filter
                var aracKategoriler = _aracKategorilerService.GetAll(a => a.Ad.IndexOf(model.Search.Value, 0, StringComparison.CurrentCultureIgnoreCase) != -1 && a.Aktif == true);
                aracKategoriler.ForEach(aracKategoriItem =>
                {
                    sorguAraclar.ForEach(aracItem =>
                    {
                        var aracModelBulucu = _aracModellerService.Get(a => a.AracModelID == aracItem.ModelID && a.AracKategoriID == aracKategoriItem.AracKategoriID);
                        if (aracModelBulucu != null)
                        {
                            var aracKategoriIceriyorMu = sorguAraclar.Where(a => a.ModelID == aracModelBulucu.AracModelID);
                            if (aracKategoriIceriyorMu.Count() > 0)
                            {
                                araclars.AddRange(aracKategoriIceriyorMu);
                            }
                        }
                    });
                });
            }

            araclars = araclars.Distinct().ToList();

            var filter = araclars.Skip(model.Start).Take(model.Length).ToList();

            return(Ok(new { draw = model.Draw, recordsFiltered = araclars.Count, recordsTotal = araclars.Count, data = filter }));
        }