Example #1
0
        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;
            }
        }
Example #2
0
        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;
            }
        }