Ejemplo n.º 1
0
        public ActionResult Pytanie()
        {
            if ((string)Session["Status"] != "Uczen" && (string)Session["test"] != "start")
            {
                return(RedirectToAction("Index", "Home"));
            }

            if (Session["iter"] == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            ViewBag.next = true;
            ViewBag.back = true;
            Pytanie pytanie = db.Pytania.Find(Session["iter"]);

            var pytania = db.Pytania.Where(s => s.TestID == pytanie.TestID).ToList();

            if (pytania[0].ID == pytanie.ID)
            {
                ViewBag.back = false;
            }
            if (pytania[pytania.Count() - 1].ID == pytanie.ID)
            {
                ViewBag.next = false;
            }

            ViewBag.title = "Pytanie 1 z " + pytania.Count();
            ViewBag.time  = (int)Session["pozostalyCzasTestu"];

            var vm = new PytanieVM(pytanie);

            vm.SetPathsToBase64();
            return(View(vm));
        }
        public ActionResult Solve(string OdpowiedzUzytkownika)
        {
            ISessionIterator iterator = (ISessionIterator)Session[iteratorKey];
            Pytanie          pytanie  = iterator.GetCurrent();

            pytanie.OdpowiedzUzytkownika = OdpowiedzUzytkownika;
            return(RedirectToAction("Solve"));
        }
        public ActionResult Previous(string OdpowiedzUzytkownika)
        {
            ISessionIterator iterator = (ISessionIterator)Session[iteratorKey];
            Pytanie          pytanie  = iterator.GetCurrent();

            pytanie.OdpowiedzUzytkownika = OdpowiedzUzytkownika;
            if (iterator.HasPrev())
            {
                iterator.Prev();
                Session[currentQuestionKey] = (int)Session[currentQuestionKey] - 1;
            }
            return(RedirectToAction("Solve"));
        }
Ejemplo n.º 4
0
        public ActionResult PytanieUsun(int id)
        {
            if (Session["Status"] != "Nauczyciel")
            {
                return(RedirectToAction("Index", "Home"));
            }

            Pytanie pytanie = db.Pytania.Find(id);
            var     idTestu = pytanie.TestID;

            db.Pytania.Remove(pytanie);
            db.SaveChanges();
            return(RedirectToAction("Pytania", new { id = idTestu }));
        }
        // Displays the question currently pointed to by the iterator
        // GET: Session/Solve
        public ActionResult Solve()
        {
            ISessionIterator iterator = (ISessionIterator)Session[iteratorKey];
            Sesja            sesja    = (Sesja)Session[sessionKey];
            Pytanie          pytanie  = iterator.GetCurrent();
            var model = pytanie.getViewModel();

            model.NumerPytania          = (int)Session[currentQuestionKey];
            model.LiczbaPytań           = (int)Session[questionCountKey];
            model.JestPierwszymPytaniem = !iterator.HasPrev();
            model.JestOstatnimPytaniem  = !iterator.HasNext();
            model.MozeZakonczyc         = (sesja.TypSesji == TypSesji.Nauka && model.JestOstatnimPytaniem && pytanie.CzyOdpowiedzianoPoprawnie()) ||
                                          (sesja.TypSesji == TypSesji.Test);
            return(View(model));
        }
Ejemplo n.º 6
0
 public PytanieVM(Pytanie pytanie)
 {
     ID              = pytanie.ID;
     TestID          = pytanie.TestID;
     this.tresc      = pytanie.tresc;
     this.odpowiedz1 = pytanie.odpowiedz1;
     this.odpowiedz2 = pytanie.odpowiedz2;
     this.odpowiedz3 = pytanie.odpowiedz3;
     this.odpowiedz4 = pytanie.odpowiedz4;
     this.punktacja  = pytanie.punktacja;
     this.odp        = pytanie.odp;
     Sounds          = pytanie.Multimedia.Where(x => x.Type == MultimediaType.Dźwięk).ToList();
     Pictures        = pytanie.Multimedia.Where(x => x.Type == MultimediaType.Obrazek).ToList();
     Videos          = pytanie.Multimedia.Where(x => x.Type == MultimediaType.Wideo).ToList();
 }
Ejemplo n.º 7
0
        public ActionResult PytanieEdytcja([Bind(Include = "ID,TestID,tresc,odpowiedz1,odpowiedz2,odpowiedz3,odpowiedz4,punktacja,odp")] Pytanie pytanie)
        {
            if (Session["Status"] != "Nauczyciel")
            {
                return(RedirectToAction("Index", "Home"));
            }

            if (ModelState.IsValid)
            {
                db.Entry(pytanie).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Pytania", new { id = pytanie.TestID }));
            }
            ViewBag.TestID = new SelectList(db.Testy, "ID", "ID", pytanie.TestID);
            return(View(pytanie));
        }
        public ActionResult Next(string OdpowiedzUzytkownika)
        {
            ISessionIterator iterator = (ISessionIterator)Session[iteratorKey];
            Sesja            sesja    = (Sesja)Session[sessionKey];
            Pytanie          pytanie  = iterator.GetCurrent();

            pytanie.OdpowiedzUzytkownika = OdpowiedzUzytkownika;
            if (iterator.HasNext())
            {
                iterator.Next();
                if ((pytanie.CzyOdpowiedzianoPoprawnie() && sesja.TypSesji == TypSesji.Nauka) || sesja.TypSesji == TypSesji.Test)
                {
                    Session[currentQuestionKey] = (int)Session[currentQuestionKey] + 1;
                }
            }
            return(RedirectToAction("Solve"));
        }
Ejemplo n.º 9
0
        public ActionResult PytanieUsun(int?id)
        {
            if (Session["Status"] != "Nauczyciel")
            {
                return(RedirectToAction("Index", "Home"));
            }

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Pytanie pytanie = db.Pytania.Find(id);

            if (pytanie == null)
            {
                return(HttpNotFound());
            }
            return(View(pytanie));
        }
Ejemplo n.º 10
0
        public ActionResult PytanieEdytcja(int?id)
        {
            if (Session["Status"] != "Nauczyciel")
            {
                return(RedirectToAction("Index", "Home"));
            }

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Pytanie pytanie = db.Pytania.Find(id);

            if (pytanie == null)
            {
                return(HttpNotFound());
            }
            ViewBag.TestID = new SelectList(db.Testy, "ID", "ID", pytanie.TestID);
            return(View(pytanie));
        }
Ejemplo n.º 11
0
 private void SetButtons(int i)
 {
     Button1.GetComponent <Button>().GetComponentInChildren <Text>().text = OdpA[numbers[i]];
     Button2.GetComponent <Button>().GetComponentInChildren <Text>().text = OdpB[numbers[i]];
     Button3.GetComponent <Button>().GetComponentInChildren <Text>().text = OdpC[numbers[i]];
     Button4.GetComponent <Button>().GetComponentInChildren <Text>().text = OdpD[numbers[i]];
     Pytanie.GetComponent <Text>().text = Pyt[numbers[i]];
     if (imageSrc[numbers[i]] == "NULL")
     {
         image.GetComponent <Image>().sprite = null;
         Pytanie.GetComponent <RectTransform>().localPosition = new Vector3(0, 550, 0);
         image.SetActive(false);
     }
     else
     {
         image.SetActive(true);
         image.GetComponent <RectTransform>().localPosition   = new Vector3(0, 200, 0);
         Pytanie.GetComponent <RectTransform>().localPosition = new Vector3(0, 600, 0);
         image.GetComponent <Image>().sprite = Resources.Load <Sprite>(imageSrc[numbers[i]]);
     }
 }
Ejemplo n.º 12
0
        public ActionResult CreateQuestions(FormCollection formCollection)
        {
            if (ModelState.IsValid)
            {
                string[] questions = formCollection[1].Split(',');
                string[] points    = formCollection[2].Split(',');

                for (int i = 0; i < questions.Length; i++)
                {
                    Pytanie pytanie = new Pytanie();
                    pytanie.id_testu         = Convert.ToInt32(Session["testID"]);
                    pytanie.tresc            = questions[i];
                    pytanie.pkt_za_odpowiedz = Convert.ToInt32(points[i]);

                    db.Pytania.Add(pytanie);
                    db.SaveChanges();
                }

                return(RedirectToAction("TestSummary"));
            }

            return(View());
        }
Ejemplo n.º 13
0
        public ActionResult Pytani(string button, string dec, int pozostalyCzasTestu)
        {
            ViewBag.back = true;
            ViewBag.next = true;

            Pytanie pytanie = db.Pytania.Find(Session["iter"]);

            var pytania = db.Pytania.Where(s => s.TestID == pytanie.TestID).ToList();

            int[] cache = (int[])Session["cache"];
            int   x     = 0;

            foreach (Pytanie a in pytania)
            {
                x++;
                if (a.ID == (int)Session["iter"])
                {
                    break;
                }
            }
            switch (dec)
            {
            case "1":
                cache[x - 1] = 1;
                break;

            case "2":
                cache[x - 1] = 2;
                break;

            case "3":
                cache[x - 1] = 3;
                break;

            case "4":
                cache[x - 1] = 4;
                break;
            }
            Session["cache"] = cache;

            switch (button)
            {
            case "Dalej":
                foreach (Pytanie a in pytania)
                {
                    if (a.ID > (int)Session["iter"])
                    {
                        Session["iter"] = a.ID;
                        if (pytania[pytania.Count() - 1].ID == a.ID)
                        {
                            ViewBag.next = false;
                        }
                        break;
                    }
                }
                break;

            case "Wróć":
                pytania.Reverse();
                foreach (Pytanie a in pytania)
                {
                    if (a.ID < (int)Session["iter"])
                    {
                        Session["iter"] = a.ID;
                        if (pytania[pytania.Count() - 1].ID == a.ID)
                        {
                            ViewBag.back = false;
                        }
                        break;
                    }
                }
                break;

            case "Zapisz test":
                int wynik = 0;
                int max   = 0;
                for (int i = 0; i < cache.Length; i++)
                {
                    max += pytania[i].punktacja;
                    if (cache[i] == (int)pytania[i].odp)
                    {
                        wynik += pytania[i].punktacja;
                    }
                }

                Session["wynik"] = wynik;
                Session["max"]   = max;
                return(RedirectToAction("Wynik"));
            }

            Pytanie pytanie_next = db.Pytania.Find(Session["iter"]);

            pytania = db.Pytania.Where(s => s.TestID == pytanie.TestID).ToList();
            x       = 0;
            foreach (Pytanie a in pytania)
            {
                x++;
                if (a.ID == (int)Session["iter"])
                {
                    break;
                }
            }
            ViewBag.title = "Pytanie " + x + " z " + pytania.Count();
            cache         = (int[])Session["cache"];
            ViewBag.cache = cache[x - 1];
            Session["pozostalyCzasTestu"] = pozostalyCzasTestu;
            ViewBag.time = (int)Session["pozostalyCzasTestu"];

            ModelState.Clear();

            var vm = new PytanieVM(pytanie_next);

            vm.SetPathsToBase64();
            return(View(vm));
        }
        public ActionResult Wypelnij(Karta karta)
        {
            var context = new Models.Context();
            var program = context.ProgramyStudiow
                          .Where(p => !p.Usuniety.HasValue)
                          .FirstOrDefault(p => p.Id == karta.ProgramId);

            var dziekan = User.IsInRole("Dziekan");
            var userId  = User.Identity.GetUserId();

            if (!dziekan && program.WykladowcaId != userId)
            {
                return(View("BrakDostepu"));
            }

            if (program.PrzedmiotOpis == null)
            {
                program.PrzedmiotOpis = new PrzedmiotOpis();
            }

            //ToDo: uzupelnic wartosci w program o wartosci z karta, bez imienia i nazwiska
            program.PrzedmiotOpis.NazwaAngielski  = karta.NazwaAngielski;
            program.PrzedmiotOpis.JezykiId        = karta.JezykiId;
            program.PrzedmiotOpis.MaterialyId     = karta.MaterialyId;
            program.PrzedmiotOpis.Rok             = karta.Rok;
            program.PrzedmiotOpis.KrotkiOpis      = karta.KrotkiOpis;
            program.PrzedmiotOpis.CelGlowny       = karta.CelGlowny;
            program.PrzedmiotOpis.CelKompetencje  = karta.CelKompetencje;
            program.PrzedmiotOpis.CelUmiejetnosci = karta.CelUmiejetnosci;
            program.PrzedmiotOpis.CelWiedza       = karta.CelWiedza;
            program.WarunkiZaliczenia             = karta.WarunkiZaliczenia;


            //literatura podstawowa
            karta.LiteraturyPodstawowe = karta.LiteraturyPodstawowe.Where(lp => !string.IsNullOrWhiteSpace(lp.Nazwa)).ToList();

            var istniejacaLiteraturaPodstawowa = program.PrzedmiotOpis
                                                 .Literatury
                                                 .Where(l => l.TypLiteratura.Nazwa == "Podstawowa").ToList();

            var doUsuniecia = istniejacaLiteraturaPodstawowa
                              .Where(l => !karta.LiteraturyPodstawowe.Any(lp => lp.Nazwa == l.Nazwa)).ToList();

            doUsuniecia.ForEach(u => program.PrzedmiotOpis.Literatury.Remove(u));

            var podstawiowyTypLiteratury = context.TypyLiteratury.First(tl => tl.Nazwa == "Podstawowa");

            var doDodania = karta.LiteraturyPodstawowe.Where(l => !istniejacaLiteraturaPodstawowa.Any(ist => ist.Nazwa == l.Nazwa)).ToList();

            doDodania.ForEach(dd =>
            {
                var literatura = context.Literatury.FirstOrDefault(l => l.Nazwa == dd.Nazwa && l.TypLiteratura.Nazwa == "Podstawowa");
                if (literatura == null)
                {
                    literatura               = new Literatura();
                    literatura.Nazwa         = dd.Nazwa;
                    literatura.TypLiteratura = podstawiowyTypLiteratury;
                }

                program.PrzedmiotOpis.Literatury.Add(literatura);
            });

            //literatura uzupelniajaca
            karta.LiteraturyUzupelniajace = karta.LiteraturyUzupelniajace.Where(lu => !string.IsNullOrWhiteSpace(lu.Nazwa)).ToList();

            var istniejacaLiteraturaUzupelniajaca = program.PrzedmiotOpis
                                                    .Literatury
                                                    .Where(l => l.TypLiteratura.Nazwa == "Uzupelniajaca").ToList();

            var doUsunieciaUzup = istniejacaLiteraturaUzupelniajaca
                                  .Where(l => !karta.LiteraturyUzupelniajace.Any(lp => lp.Nazwa == l.Nazwa)).ToList();

            doUsunieciaUzup.ForEach(v => program.PrzedmiotOpis.Literatury.Remove(v));

            var podstawiowyTypLiteraturyUzup = context.TypyLiteratury.First(tl => tl.Nazwa == "Uzupelniajaca");

            var doDodaniaUzup = karta.LiteraturyUzupelniajace.Where(l => !istniejacaLiteraturaUzupelniajaca.Any(ist => ist.Nazwa == l.Nazwa)).ToList();

            doDodaniaUzup.ForEach(dd =>
            {
                var literaturauzup = context.Literatury.FirstOrDefault(l => l.Nazwa == dd.Nazwa && l.TypLiteratura.Nazwa == "Uzupelniajaca" +
                                                                       "" +
                                                                       "" +
                                                                       "" +
                                                                       "" +
                                                                       "" +
                                                                       "" +
                                                                       "");
                if (literaturauzup == null)
                {
                    literaturauzup               = new Literatura();
                    literaturauzup.Nazwa         = dd.Nazwa;
                    literaturauzup.TypLiteratura = podstawiowyTypLiteraturyUzup;
                }

                program.PrzedmiotOpis.Literatury.Add(literaturauzup);
            });
            //

            //zrodla dodatkowe
            karta.ZrodlaDodatkowe = karta.ZrodlaDodatkowe.Where(lu => !string.IsNullOrWhiteSpace(lu.Nazwa)).ToList();

            var istniejaceZrodlaDodatkowe = program.PrzedmiotOpis
                                            .Literatury
                                            .Where(l => l.TypLiteratura.Nazwa == "Dodatkowe").ToList();

            var doUsunieciaDodat = istniejaceZrodlaDodatkowe
                                   .Where(l => !karta.ZrodlaDodatkowe.Any(lp => lp.Nazwa == l.Nazwa)).ToList();

            doUsunieciaDodat.ForEach(v => program.PrzedmiotOpis.Literatury.Remove(v));

            var podstawiowyTypDodat = context.TypyLiteratury.First(tl => tl.Nazwa == "Dodatkowe");

            var doDodaniaDodat = karta.ZrodlaDodatkowe.Where(l => !istniejaceZrodlaDodatkowe.Any(ist => ist.Nazwa == l.Nazwa)).ToList();

            doDodaniaDodat.ForEach(dd =>
            {
                var zrodladodat = context.Literatury.FirstOrDefault(l => l.Nazwa == dd.Nazwa && l.TypLiteratura.Nazwa == "Dodatkowe");
                if (zrodladodat == null)
                {
                    zrodladodat               = new Literatura();
                    zrodladodat.Nazwa         = dd.Nazwa;
                    zrodladodat.TypLiteratura = podstawiowyTypDodat;
                }

                program.PrzedmiotOpis.Literatury.Add(zrodladodat);
            });
            //pytania

            karta.Pytania = karta.Pytania.Where(lp => !string.IsNullOrWhiteSpace(lp.Nazwa)).ToList();

            var istniejacaPytania = program.Pytania.ToList();

            var doUsunieciaPytania = istniejacaPytania
                                     .Where(l => !karta.Pytania.Any(lp => lp.Nazwa == l.Nazwa)).ToList();

            doUsunieciaPytania.ForEach(u => program.Pytania.Remove(u));

            var doDodaniaPytania = karta.Pytania.Where(l => !istniejacaPytania.Any(ist => ist.Nazwa == l.Nazwa)).ToList();

            doDodaniaPytania.ForEach(dd =>
            {
                var pytania = context.Pytania.FirstOrDefault(l => l.Nazwa == dd.Nazwa);
                if (pytania == null)
                {
                    pytania       = new Pytanie();
                    pytania.Nazwa = dd.Nazwa;
                }

                program.Pytania.Add(pytania);
            });

            //metody podajace

            var doUsunieciaMP = program.MetodyDydaktyczne
                                .Where(l => l.MetodyDydaktyczne.GrupyMetodDydaktycznych != null)
                                .ToList();

            doUsunieciaMP.ForEach(v => context.ProgramMetody.Remove(v));

            for (var i = 0; i < karta.MetodyPodajaceIds.Count; i++)
            {
                var mp = new ProgramMetodyDydaktyczne();
                mp.MetodyDydaktyczne = context.Metody.Find(karta.MetodyPodajaceIds[i].MetodaId);
                mp.ProgramId         = program.Id;
                mp.Skrot             = karta.MetodyPodajaceIds[i].Skrot;
                program.MetodyDydaktyczne.Add(mp);
            }

            for (var i = 0; i < karta.MetodyPraktyczneIds.Count; i++)
            {
                var mc = new ProgramMetodyDydaktyczne();
                mc.MetodyDydaktyczne = context.Metody.Find(karta.MetodyPraktyczneIds[i].MetodaId);
                mc.ProgramId         = program.Id;
                mc.Skrot             = karta.MetodyPraktyczneIds[i].Skrot;
                program.MetodyDydaktyczne.Add(mc);
            }

            for (var i = 0; i < karta.MetodyProblemoweIds.Count; i++)
            {
                var ms = new ProgramMetodyDydaktyczne();
                ms.MetodyDydaktyczne = context.Metody.Find(karta.MetodyProblemoweIds[i].MetodaId);
                ms.ProgramId         = program.Id;
                ms.Skrot             = karta.MetodyProblemoweIds[i].Skrot;
                program.MetodyDydaktyczne.Add(ms);
            }

            for (var i = 0; i < karta.MetodyEksponujaceIds.Count; i++)
            {
                var me = new ProgramMetodyDydaktyczne();
                me.MetodyDydaktyczne = context.Metody.Find(karta.MetodyEksponujaceIds[i].MetodaId);
                me.ProgramId         = program.Id;
                me.Skrot             = karta.MetodyEksponujaceIds[i].Skrot;
                program.MetodyDydaktyczne.Add(me);
            }

            //metody oceniania
            var doUsunieciaMO = program.MetodyOceniania.ToList();

            doUsunieciaMO.ForEach(v => context.ProgramMetodyOceniania.Remove(v));

            for (var i = 0; i < karta.MetodyOcenianiaIds.Count; i++)
            {
                var mo = new ProgramMetodyOceniania();
                mo.MetodyOceniania = context.MetodyOceniania.Find(karta.MetodyOcenianiaIds[i].MetodaId);
                mo.ProgramId       = program.Id;
                mo.Skrot           = karta.MetodyOcenianiaIds[i].Skrot;
                program.MetodyOceniania.Add(mo);
            }

            // tresci

            program.Tresci.ToList()
            .ForEach(t => context.Tresci.Remove(t));

            karta.Godziny.ForEach(g =>
            {
                for (var i = 0; i < g.Tresci.Count; i++)
                {
                    program.Tresci.Add(new Tresci()
                    {
                        Opis              = g.Tresci[i].Nazwa,
                        Skrot             = g.Tresci[i].Skrot,
                        TypLiczbaGodzinId = g.TypLiczbaGodzinId
                    });
                }
            });

            // efekty

            program.Efekty.ToList().ForEach(e =>
            {
                e.Tresci.ToList().ForEach(t => context.ProgramEfektTresci.Remove(t));
                e.MetodyDydaktyczne.ToList().ForEach(t => context.ProgramEfektMetodaDydaktyczna.Remove(t));
                e.MetodyOceniania.ToList().ForEach(t => context.ProgramEfektMetodaOceniania.Remove(t));
                context.ProgramEfekty.Remove(e);
            });

            karta.Efekty.ForEach(e =>
            {
                var metodyDydaktyczne = e.WybraneMetodyEksponujace.Select(g =>
                {
                    var metoda = program.MetodyDydaktyczne.FirstOrDefault(mt => mt.Skrot == g && mt.MetodyDydaktyczne.GrupyMetodDydaktycznych.Nazwa == "Eksponujące");
                    return(new ProgramEfektMetodaDydaktyczna()
                    {
                        ProgramMetodyDydaktyczne = metoda
                    });
                }).ToList();
                metodyDydaktyczne.AddRange(e.WybraneMetodyPodajace.Select(g =>
                {
                    var metoda = program.MetodyDydaktyczne.FirstOrDefault(mt => mt.Skrot == g && mt.MetodyDydaktyczne.GrupyMetodDydaktycznych.Nazwa == "Podające");
                    return(new ProgramEfektMetodaDydaktyczna()
                    {
                        ProgramMetodyDydaktyczne = metoda
                    });
                }).ToList());
                metodyDydaktyczne.AddRange(e.WybraneMetodyPraktyczne.Select(g =>
                {
                    var metoda = program.MetodyDydaktyczne.FirstOrDefault(mt => mt.Skrot == g && mt.MetodyDydaktyczne.GrupyMetodDydaktycznych.Nazwa == "Praktyczne");
                    return(new ProgramEfektMetodaDydaktyczna()
                    {
                        ProgramMetodyDydaktyczne = metoda
                    });
                }).ToList());
                metodyDydaktyczne.AddRange(e.WybraneMetodyProblemowe.Select(g =>
                {
                    var metoda = program.MetodyDydaktyczne.FirstOrDefault(mt => mt.Skrot == g && mt.MetodyDydaktyczne.GrupyMetodDydaktycznych.Nazwa == "Problemowe");
                    return(new ProgramEfektMetodaDydaktyczna()
                    {
                        ProgramMetodyDydaktyczne = metoda
                    });
                }).ToList());

                var efekt = new ProgramEfekt()
                {
                    EfektId          = e.Id,
                    WymaganiaWstepne = e.WymaganiaWstepne,
                    PrzedmiotoweEfektyKsztalcenia = e.PrzedmiotoweEfektyKsztalcenia,
                    Tresci = e.Godziny.SelectMany(g =>
                    {
                        var tresci = g.WybraneTresci.Select(t => program.Tresci.First(tt => tt.Skrot == t && tt.TypLiczbaGodzinId == g.TypLiczbaGodzinId));
                        return(tresci.Select(t => new ProgramEfektTresc()
                        {
                            Tresci = t
                        }));
                    }).ToList(),
                    MetodyDydaktyczne = metodyDydaktyczne,
                    MetodyOceniania   = e.WybraneMetodyOceniania.Select(g =>
                    {
                        var metoda = program.MetodyOceniania.FirstOrDefault(mt => mt.Skrot == g);
                        return(new ProgramEfektMetodaOceniania()
                        {
                            ProgramMetodyOceniania = metoda
                        });
                    }).ToList()
                };
                program.Efekty.Add(efekt);
            });

            program.LiczbyGodzin.ToList().ForEach(lg =>
            {
                lg.FormaPracyGodziny.ToList().ForEach(t => context.ProgramFormaPracyGodziny.Remove(t));
                lg.FormaPracyGodziny.Clear();
            });

            karta.FormaPracy.ForEach(fp =>
            {
                fp.Dzienne.ForEach(d =>
                {
                    var liczbaGodzin = program.LiczbyGodzin.FirstOrDefault(lg => lg.TypLiczbaGodzinId == d.TypLiczbaGodzinId);
                    liczbaGodzin.FormaPracyGodziny.Add(new ProgramFormaPracyGodzina()
                    {
                        Dzienna      = true,
                        FormaPracyId = fp.FormaPracyId,
                        Godzin       = d.Godzin,
                    });
                });

                fp.Zaoczne.ForEach(d =>
                {
                    var liczbaGodzin = program.LiczbyGodzin.FirstOrDefault(lg => lg.TypLiczbaGodzinId == d.TypLiczbaGodzinId);
                    liczbaGodzin.FormaPracyGodziny.Add(new ProgramFormaPracyGodzina()
                    {
                        Dzienna      = false,
                        FormaPracyId = fp.FormaPracyId,
                        Godzin       = d.Godzin,
                    });
                });
            });

            context.Entry(program).State = System.Data.Entity.EntityState.Modified;
            context.SaveChanges();


            return(Json(new { success = true }));
        }