예제 #1
0
        public IActionResult Update(int id, string co)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    Obiekt = uni.Obiekt(co);
                    //var klucze = uni.PartsOfPrimaryKey(Obiekt);
                    var           Item     = uni.ReadTAsync(id, Obiekt).Result;
                    List <string> wartosci = new List <string>();
                    //ListaKluczyObcych = new List<string>();
                    List <string> Naglowki = new List <string>(); // Konstruktor

                    //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);

                    foreach (var item in Item.GetType().GetProperties())
                    {
                        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;

                    return(View("Update", 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 async Task <ActionResult> Zaloguj(Uzytkownik uzytkownik)
        {
            var konto = _db.Uzytkownik.Where(u => u.login == uzytkownik.login && u.haslo == uzytkownik.haslo).FirstOrDefault();

            if (konto != null)
            {
                HttpContext.Session.SetString("uzytkownikId", konto.uzytkownikId.ToString());
                HttpContext.Session.SetString("login", konto.login);

                var rk = await uni.ReadTAsync(konto.rodzajuzytkownikaId, uni.Obiekt("Rodzaj_uzytkownika"));

                string rodzkonta = rk.GetType().GetProperty("rodzajuzytkownika").GetValue(rk);
                HttpContext.Session.SetString("rodzaj_konta", rodzkonta);

                return(RedirectToAction("Index"));
            }
            else
            {
                ModelState.AddModelError("", "Podane dane do logowania są niepoprawne!");
            }

            return(View());
        }
예제 #3
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);
        }