Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        public IActionResult Update(int id, string co)
        {
            if (ModelState.IsValid &&
                HttpContext.Session.GetString("rodzaj_konta") == "Admin" ||
                HttpContext.Session.GetString("rodzaj_konta") == "Sekretarka" &&
                co == "Rezerwacja")
            {
                try
                {
                    Obiekt = uni.Obiekt(co);
                    var           Item     = uni.ReadTAsync(id, Obiekt).Result;
                    List <string> wartosci = new List <string>();
                    //ListaKluczyObcych = new List<string>();
                    List <string> Naglowki = new List <string>(); // Konstruktor
                    List <Dictionary <string, string> > ListaListNazw = new List <Dictionary <string, string> >();

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

                    foreach (var item in Item.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")
                            {
                                //List<dynamic> lista2 = lista.ToList();
                                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);
                        }

                        Naglowki.Add(item.Name);
                        wartosci.Add(Convert.ToString(Item.GetType().GetProperty(item.Name).GetValue(Item)));
                    }

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

                    return(View("Update", viewItem));
                }
                catch (Exception ex)
                {
                    Message = ex.Message;
                    if (ex.InnerException != null)
                    {
                        InnerMessage = ex.InnerException.Message.ToString();
                    }
                    return(View());

                    //item.ErrorMessage = ex.Message.ToString();
                    //item.Wartosci = item.Naglowki.DefaultIfEmpty().ToList(); // Nie wiem jak ale dziala xd
                    //item.ListaNazwKluczyObcych = GetListOfDictFK(uni.Obiekt(item.Nazwa));
                    //if (ex.InnerException != null) { item.ErrorMessage += "\n" + ex.InnerException.Message.ToString(); };
                    //return View("Update", item);
                }
            }
            else
            {
                return(RedirectToAction("Zaloguj", "Home", ""));
            }
            //return View("Lista", co);
        }