コード例 #1
0
ファイル: AdminController.cs プロジェクト: szymszyk/SGGWPZ2
        public async Task <IActionResult> Delete(int Id, string co)
        {
            var           Obiekt   = uni.Obiekt(co);
            List <string> naglowki = uni.ListOfProperties(Obiekt);

            try
            {
                await uni.DeleteTAsync(Id, Obiekt);

                return(View("Index", new ViewLista(naglowki, uni.ReadAllT(Obiekt), co)));
            }
            catch (Exception ex) { }//Message = $"Blad - Element nie zosta³ usuniety \n {ex.Message}"; return OnGet(NazTab); }


            return(View("Index", new ViewLista(naglowki, uni.ReadAllT(Obiekt), co)));
        }
コード例 #2
0
        public async Task <IActionResult> Delete(int Id, string co)
        {
            if (HttpContext.Session.GetString("rodzaj_konta") == "Admin" ||
                HttpContext.Session.GetString("rodzaj_konta") == "Sekretarka" && co == "Rezerwacje")
            {
                var           Obiekt   = uni.Obiekt(co);
                List <string> naglowki = uni.ListOfProperties(Obiekt);

                try
                {
                    // Sprawdz czy inne tabele nie korzystaja z danego wiersza (jako klucza obcego)
                    foreach (var tabela in Db.GetType().GetProperties().SkipLast(3))               // Dla kazdej tabeli w bazie
                    {
                        if (tabela.Name.ToLower().Substring(0, 3) != co.ToLower().Substring(0, 3)) // Tylko nie dla siebie samej
                        {
                            var objTabel = uni.Obiekt(tabela.Name);
                            foreach (var kolTabel in objTabel.GetType().GetProperties())                            // Dla kazdej kolumny w tabeli
                            {
                                if (kolTabel.Name.ToLower().Substring(0, 3) == co.ToLower().Substring(0, 3))        // Sprawdz czy zawiera kolumne ktora jest kluczem obcym dla tabeli
                                {
                                    foreach (var rowTabel in uni.ReadAllT(objTabel))                                // Jezeli tak - Sprawdz dla kazdego wiersza
                                    {
                                        if (rowTabel.GetType().GetProperty(kolTabel.Name).GetValue(rowTabel) == Id) // Czy wiersz zawiera usuwany element jako klucz obcy
                                        {
                                            throw new Exception(String.Format("Najpierw usun wszystkie wiersze w innych tabelach zawierajace odniesienie do tego rekordu. Na przyklad w  tabeli  {0}", tabela.Name));
                                        }
                                    }
                                } // Jezeli tak to ERROR
                            }
                        }
                    }

                    await uni.DeleteTAsync(Id, Obiekt);

                    return(View("Index", new ViewLista(naglowki, uni.ReadAllT(Obiekt), co)));
                }
                catch (Exception ex)
                { return(View("Index", new ViewLista(naglowki, uni.ReadAllT(Obiekt), co, ex.Message))); }
            }
            else
            {
                return(RedirectToAction("Zaloguj", "Home", ""));
            }
        }