public ActionResult Create(SubjectModel model, string jsonHorarios) { try { IList<ScheduleModel> schedules = JsonConvert.DeserializeObject<List<ScheduleModel>>(jsonHorarios); StudentModel account = Session["LoggedAccount"] as StudentModel; using (ISession session = NHibernateHelper.OpenSession()) { StudentModel student = session.Get<StudentModel>(account.Id); using (ITransaction transaction = session.BeginTransaction()) { model.Student = student; session.Save(model); model = session.Get<SubjectModel>(model.Id); foreach (var schedule in schedules) { schedule.Subject = model; session.Save(schedule); } session.Save(model); transaction.Commit(); } } return RedirectToAction("Index").WithMessage(Languages.Success, "alert-success", "glyphicon glyphicon-ok-sign"); } catch (System.Exception) { return RedirectToAction("Index").WithMessage(Languages.Error, "alert-danger", "glyphicon glyphicon-remove-sign"); throw; } }
public ActionResult Edit(SubjectModel subject, string jsonHorarios) { try { using (ISession session = NHibernateHelper.OpenSession()) { IList<ScheduleModel> schedules = JsonConvert.DeserializeObject<List<ScheduleModel>>(jsonHorarios); SubjectModel persistentSubject = session.Get<SubjectModel>(subject.Id); persistentSubject.Name = subject.Name; persistentSubject.Status = subject.Status; using (ITransaction transaction = session.BeginTransaction()) { session.Save(persistentSubject); foreach (var s in schedules) { ScheduleModel schedule = session.Get<ScheduleModel>(s.Id); if (schedule != null) { schedule.Day = s.Day; schedule.StartTime = s.StartTime; schedule.EndTime = s.EndTime; session.Save(schedule); } else { s.Subject = persistentSubject; session.Save(s); } } transaction.Commit(); } return RedirectToAction("Index").WithMessage(Languages.Success, "alert-success", "glyphicon glyphicon-ok-sign"); } } catch (System.Exception) { return RedirectToAction("Index").WithMessage(Languages.Error, "alert-danger", "glyphicon glyphicon-remove-sign"); throw; } }