コード例 #1
0
ファイル: AdminController.cs プロジェクト: szymszyk/SGGWPZ2
        public IActionResult Create(string co)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    Obiekt = uni.Obiekt(co);
                    List <string> wartosci = new List <string>();
                    //ListaKluczyObcych = new List<string>();
                    List <string> ListaItemowDoDodania          = new List <string>(); // Konstruktor
                    List <IEnumerable <dynamic> > ListaListNazw = new List <IEnumerable <dynamic> >();

                    IEnumerable <IForeignKey> foreignKeys = Db.Model.FindEntityType($"SGGWPZ.Models.{co}").GetForeignKeys();
                    //foreach (var foreignKey in foreignKeys)
                    //    ListaKluczyObcych.Add(foreignKey.PrincipalKey.ToString().Split(' ')[1].Split("PK")[0]);

                    List <string> ListaKluczy = uni.PartsOfAlternativeKey(Obiekt);

                    // Jezeli obiekt ma klucze obce
                    foreach (var item in Obiekt.GetType().GetProperties())
                    {
                        if (item.Name != Obiekt.GetType().GetProperties()[0].Name && item.Name.Contains("Id"))
                        {
                            string nazwa = "";

                            foreach (var item2 in Db.GetType().GetProperties())
                            {
                                if (item.Name.ToLower().Substring(0, 3) == item2.Name.ToLower().Substring(0, 3))
                                {
                                    nazwa = item2.Name;
                                }
                            }

                            IEnumerable <dynamic> lista = uni.ReadAllT(uni.Obiekt(nazwa));
                            ListaListNazw.Add(lista);
                        }
                        ListaItemowDoDodania.Add(item.Name);
                        wartosci.Add("");
                    }

                    ViewItem viewItem = new ViewItem();
                    viewItem.Nazwa    = co;
                    viewItem.Naglowki = ListaItemowDoDodania;
                    viewItem.Wartosci = wartosci;

                    return(View("Create", viewItem));
                }
                catch (Exception ex) { Message = ex.Message; if (ex.InnerException != null)
                                       {
                                           InnerMessage = ex.InnerException.Message.ToString();
                                       }
                                       return(View()); }
            }
            return(View("Lista", co));
        }
コード例 #2
0
        public IActionResult Create(string co)
        {
            if (ModelState.IsValid &&
                HttpContext.Session.GetString("rodzaj_konta") == "Admin" ||
                HttpContext.Session.GetString("rodzaj_konta") == "Sekretarka" &&
                co == "Rezerwacja")
            {
                ViewItem viewItem = new ViewItem();
                viewItem.Nazwa = co;

                try
                {
                    Obiekt = uni.Obiekt(co);
                    List <string> wartosci             = new List <string>();
                    List <string> ListaItemowDoDodania = new List <string>(); // Konstruktor
                    List <Dictionary <string, string> > ListaListNazw = new List <Dictionary <string, string> >();

                    foreach (var item in Obiekt.GetType().GetProperties())
                    {
                        // Jezeli obiekt ma klucze obce
                        if (item.Name != Obiekt.GetType().GetProperties()[0].Name && item.Name.Contains("Id"))
                        {
                            string nazwa = "";

                            foreach (var item2 in Db.GetType().GetProperties())
                            {
                                if (item2.Name.ToLower().Replace("_", "").Contains(item.Name.Split("I")[0].ToLower()))
                                {
                                    nazwa = item2.Name;
                                }
                            }

                            IEnumerable <dynamic>       lista     = uni.ReadAllT(uni.Obiekt(nazwa));
                            Dictionary <string, string> listanazw = new Dictionary <string, string>();
                            if (HttpContext.Session.GetString("rodzaj_konta") == "Sekretarka" && nazwa == "Uzytkownik")
                            {
                                var    kto = lista.ToList().FirstOrDefault(u => u.login == HttpContext.Session.GetString("login"));
                                string key = Convert.ToString(kto.GetType().GetProperty("login").GetValue(kto));
                                listanazw[key] = Convert.ToString(kto.GetType().GetProperty("uzytkownikId").GetValue(kto));
                            }
                            else
                            {
                                foreach (var item2 in lista)
                                {
                                    string key = item2.GetType().GetProperties()[1].GetValue(item2);
                                    listanazw[key] = Convert.ToString(item2.GetType().GetProperties()[0].GetValue(item2));
                                }
                            }
                            ListaListNazw.Add(listanazw);
                        }
                        ListaItemowDoDodania.Add(item.Name);
                        wartosci.Add("");
                    }

                    // Dodaj pozostale dane do modelu widoku
                    viewItem.Naglowki = ListaItemowDoDodania;
                    viewItem.Wartosci = wartosci;
                    viewItem.ListaNazwKluczyObcych = ListaListNazw;

                    return(View("Create", viewItem));
                }
                catch (Exception ex)
                {
                    Message = ex.Message;
                    if (ex.InnerException != null)
                    {
                        InnerMessage = ex.InnerException.Message.ToString();
                    }
                    return(View("Create", viewItem.Nazwa));
                }
            }
            else
            {
                return(RedirectToAction("Zaloguj", "Home", ""));
            }
        }