Esempio n. 1
0
        public ActionResult Deposit(TransactionDetail obj)
        {
            int AccountNumber          = Convert.ToInt32(obj.AccountNumber);
            var AccData2               = _context.Accounts.Where(x => x.AccountNumber == AccountNumber).FirstOrDefault();
            TransactionDetail AccData  = new TransactionDetail();
            PassBook          AccData3 = new PassBook();

            if (AccData2 != null)
            {
                AccData2.AccountNumber = obj.AccountNumber;
                AccData2.Balance       = AccData2.Balance + obj.Amount;
                // AccData.TimeofTransaction = DateTime.Now;
                _context.Entry(AccData2).State = EntityState.Modified;
                _context.SaveChanges();
            }

            AccData.AccountNumber     = AccData2.AccountNumber;
            AccData.Amount            = obj.Amount;
            AccData.TimeofTransaction = DateTime.Now;

            AccData3.AccountNumber     = AccData2.AccountNumber;
            AccData3.Amount            = obj.Amount;
            AccData3.TimeofTransaction = DateTime.Now;
            AccData3.Mode = "Deposit";
            _context.TransactionDetails.Add(AccData);
            _context.SaveChanges();
            _context.PassBooks.Add(AccData3);
            _context.SaveChanges();

            TempData["Message"] = " Amount Rs. " + Convert.ToString(AccData.Amount) + " was successfully Deposited ";

            return(RedirectToAction("../Home/Redirect"));
        }
        public ActionResult UpdateDetails(Account acc)
        {
            var AccData2 = _context.Accounts.Where(x => x.AccountNumber == acc.AccountNumber).FirstOrDefault();

            if (ModelState.IsValid)
            {
                AccData2.FirstName             = acc.FirstName;
                AccData2.LastName              = acc.LastName;
                AccData2.Password              = acc.Password;
                AccData2.Phone                 = acc.Phone;
                AccData2.Email                 = acc.Email;
                AccData2.Address               = acc.Address;
                AccData2.ConfirmPassword       = acc.ConfirmPassword;
                AccData2.FirstName             = acc.FirstName;
                _context.Entry(AccData2).State = EntityState.Modified;

                _context.SaveChanges();

                TempData["Message"] = " Your Account Details were Succesfully Updated ";

                return(RedirectToAction("../Home/Redirect"));
            }


            return(View(acc));
        }
Esempio n. 3
0
        public ActionResult NowyProgram(NowaKarta nowyProgram)
        {
            var context = new Models.Context();
            var program = new Program();

            if (nowyProgram.Id > 0)
            {
                program = context.ProgramyStudiow.Where(p => !p.Usuniety.HasValue).FirstOrDefault(p => p.Id == nowyProgram.Id);
            }

            program.WydzialId           = nowyProgram.WydzialId;
            program.KierunekId          = nowyProgram.KierunekId;
            program.PoziomId            = nowyProgram.PoziomId;
            program.ProfilKsztalceniaId = nowyProgram.ProfilKsztalceniaId;
            program.ObszarKsztalceniaId = nowyProgram.ObszarKsztalceniaId;
            program.GrupaPrzedmiotowId  = nowyProgram.GrupaPrzedmiotowId;
            program.SemestrId           = nowyProgram.SemestrId;
            program.FormaZaliczeniaId   = nowyProgram.FormaZaliczeniaId;
            program.WykladowcaId        = nowyProgram.WykladowcaId;
            program.Nazwa             = nowyProgram.NazwaPrzedmiotu;
            program.SpecjalnoscId     = nowyProgram.SpecjalnoscId;
            program.Kod               = nowyProgram.Kod;
            program.PrzedmiotDoWyboru = nowyProgram.DoWyboru;
            program.ECTS              = nowyProgram.ECTS;

            program.LiczbyGodzin.ForEach(lg =>
            {
                var godzina = nowyProgram.Godziny.FirstOrDefault(g => g.TypLiczbGodzinId == lg.TypLiczbaGodzinId);
                if (godzina != null)
                {
                    lg.Stacjonarne    = godzina.Stacjonarne < 0 ? 0 : godzina.Stacjonarne;
                    lg.Niestacjonarne = godzina.Niestacjonarne < 0 ? 0 : godzina.Niestacjonarne;
                }
            });

            nowyProgram.Godziny.Where(godzina => !program.LiczbyGodzin.Any(lg => lg.TypLiczbaGodzinId == godzina.TypLiczbGodzinId)).ForEach(godzina =>
            {
                program.LiczbyGodzin.Add(new LiczbaGodzin()
                {
                    TypLiczbaGodzinId = godzina.TypLiczbGodzinId,
                    Stacjonarne       = godzina.Stacjonarne < 0 ? 0 : godzina.Stacjonarne,
                    Niestacjonarne    = godzina.Niestacjonarne < 0 ? 0 : godzina.Niestacjonarne
                });
            });


            if (nowyProgram.Id > 0)
            {
                context.Entry(program).State = System.Data.Entity.EntityState.Modified;
            }
            else
            {
                context.ProgramyStudiow.Add(program);
            }
            context.SaveChanges();

            return(RedirectToAction("Index"));
        }
        public ActionResult UserEdit(UserEditViewModel model)
        {
            var context = new Models.Context();

            if (!ModelState.IsValid)
            {
                UserEditViewModelStale(context, model);
                return(View(model));
            }

            var user = context.Users.First(u => u.Id == model.Id);

            user.Imie     = model.Imie;
            user.Nazwisko = model.Nazwisko;

            var wydzialyDoUsuniecia = user.Wydzialy.Where(w => !model.WybraneWydzialy.Any(ww => ww == w.Id)).ToList();

            wydzialyDoUsuniecia.ForEach(w => user.Wydzialy.Remove(w));
            var tytulyDoUsuniecia = user.Tytuly.Where(w => !model.WybraneTytuly.Any(ww => ww == w.Id)).ToList();

            tytulyDoUsuniecia.ForEach(w => user.Tytuly.Remove(w));
            var roleDoUsuniecia = user.Roles.Where(w => !model.WybraneRole.Any(ww => ww == w.RoleId)).ToList();

            roleDoUsuniecia.ForEach(w => user.Roles.Remove(w));

            var wydzialyDoDodania = model.WybraneWydzialy.Where(ww => !user.Wydzialy.Any(w => w.Id == ww)).ToList();

            wydzialyDoDodania.ForEach(ww =>
            {
                user.Wydzialy.Add(new UzytkownikWydzialy()
                {
                    WydzialId = ww
                });
            });
            var tytulyDoDodania = model.WybraneTytuly.Where(ww => !user.Tytuly.Any(w => w.Id == ww)).ToList();

            tytulyDoDodania.ForEach(ww =>
            {
                var t = context.Tytuly.Find(ww);
                user.Tytuly.Add(t);
            });
            var roleDoDodania = model.WybraneRole.Where(ww => !user.Roles.Any(w => w.RoleId == ww)).ToList();

            roleDoDodania.ForEach(ww =>
            {
                user.Roles.Add(new Microsoft.AspNet.Identity.EntityFramework.IdentityUserRole()
                {
                    RoleId = ww
                });
            });

            context.Entry(user).State = EntityState.Modified;
            context.SaveChanges();

            return(RedirectToAction("Uzytkownicy"));
        }
Esempio n. 5
0
        public ActionResult Delete(int id)
        {
            var context = new Models.Context();
            var program = context.ProgramyStudiow.Where(p => !p.Usuniety.HasValue).FirstOrDefault(ps => ps.Id == id);

            program.Usuniety             = DateTime.Now;
            context.Entry(program).State = EntityState.Modified;
            context.SaveChanges();
            return(RedirectToAction("Index"));
        }
Esempio n. 6
0
        public async Task <ActionResult> Edit(ViewModels.EditObjectViewModel viewModel)
        {
            try
            {
                await this.ShowUser(userManager);

                var model = new Models.Object
                {
                    Id      = viewModel.Id,
                    Address = viewModel.Address,
                    Name    = viewModel.Name
                };
                context.Entry(model);
                context.Update(model);
                await context.SaveChangesAsync();
            }
            catch
            {
            }
            return(View(viewModel));
        }
Esempio n. 7
0
        public ActionResult Report(ReportViewModel reportVM)
        {
            var context = new Models.Context();
            var report  = new Report();

            report.DensityBefore = reportVM.DensityBefore;
            //report.Measurment = string.Join(";", reportVM.Meas);

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

            return(RedirectToAction(""));

            //var context = new Models.Context();

            //report.Measurment = string.Join(";", reportVM.Meas);
            //context.Reports.Add(report);
            //context.SaveChanges();

            //return RedirectToAction("");
        }
        public async Task <IActionResult> OnPostAsync()
        {
            if (HttpContext.Session.Get("isAdmin") != null && !BitConverter.ToBoolean(HttpContext.Session.Get("isAdmin")))
            {
                if (HttpContext.Session.GetInt32("id") != null && HttpContext.Session.GetInt32("id") != Account.Id)
                {
                    return(RedirectToPage("Error"));
                }
            }

            if (await _context.Accounts.FirstOrDefaultAsync(x => x.Email == Email && x.Id != Account.Id) != null)
            {
                ModelState.AddModelError("Email", "An account with this email already exists.");
            }

            if (!ModelState.IsValid)
            {
                return(Page());
            }

            _context.Attach(Account).State = EntityState.Modified;
            _context.Entry(Account).Property(x => x.Salt).IsModified = false;
            _context.Entry(Account).Property(x => x.Date).IsModified = false;
            Account.Email = Email;

            if (!string.IsNullOrEmpty(Password))
            {
                Account.Password = Convert.ToBase64String(KeyDerivation.Pbkdf2(
                                                              password: Password,
                                                              salt: Convert.FromBase64String(Account.Salt),
                                                              prf: KeyDerivationPrf.HMACSHA1,
                                                              iterationCount: 10000,
                                                              numBytesRequested: 256 / 8
                                                              ));
            }
            else
            {
                _context.Entry(Account).Property(x => x.Password).IsModified = false;
            }

            if (!string.IsNullOrEmpty(Answer))
            {
                Account.Answer = Convert.ToBase64String(KeyDerivation.Pbkdf2(
                                                            password: Answer,
                                                            salt: Convert.FromBase64String(Account.Salt),
                                                            prf: KeyDerivationPrf.HMACSHA1,
                                                            iterationCount: 10000,
                                                            numBytesRequested: 256 / 8
                                                            ));
            }
            else
            {
                _context.Entry(Account).Property(x => x.Answer).IsModified = false;
            }

            if (!BitConverter.ToBoolean(HttpContext.Session.Get("isAdmin")))
            {
                Account.IsAdmin = false;
            }
            else if (Account.Id == HttpContext.Session.GetInt32("id"))
            {
                Account.IsAdmin = true;
            }

            await _context.SaveChangesAsync();

            if (HttpContext.Session.Get("isAdmin") != null && BitConverter.ToBoolean(HttpContext.Session.Get("isAdmin")))
            {
                return(RedirectToPage("Accounts"));
            }

            return(RedirectToPage("Index"));
        }
        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 }));
        }