public void Edit(DisciplineExtendedProxy oldExtendedProxy, DisciplineExtendedProxy newExtendedProxy)
        {
            var foundDiscipline    = ModelDatabase.GetDiscipline(oldExtendedProxy);
            var newGroupDiscipline = ModelDatabase.GetGroup(newExtendedProxy.GroupName);

            foundDiscipline.DisciplineName = newExtendedProxy.DisciplineName;
            foundDiscipline.TotalHours     = newExtendedProxy.TotalHours;
            foundDiscipline.ClassHours     = newExtendedProxy.ClassHours;
            if (foundDiscipline.ControlType != newExtendedProxy.ControlType)
            {
                foreach (var assessmentByDiscipline in ModelDatabase.AssessmentByDisciplines.Where(a => a.DisciplineId == foundDiscipline.DisciplineId))
                {
                    assessmentByDiscipline.Assessment = (int)Assessment.None;
                }
                foundDiscipline.ControlType = newExtendedProxy.ControlType;
            }
            if (foundDiscipline.GroupId != newGroupDiscipline.GroupId)
            {
                DeleteAssessmentByDisciplines(assessmentByDiscipline => assessmentByDiscipline.DisciplineId == foundDiscipline.DisciplineId);
                ModelDatabase.AssessmentByDisciplines.AddRange(
                    newGroupDiscipline.Students.Select(student =>
                                                       new AssessmentByDiscipline {
                    Student    = student,
                    Discipline = foundDiscipline,
                    Group      = newGroupDiscipline,
                    Assessment = (int)Assessment.None
                }));
                foundDiscipline.Group = newGroupDiscipline;
            }

            ModelDatabase.SaveChanges();
        }
 public void Delete(DisciplineBasedProxy basedProxy)
 {
     DeleteDiscipline(ModelDatabase.GetDiscipline(basedProxy));
     ModelDatabase.SaveChanges();
 }
 public DisciplineExtendedProxy GetExtendedProxy(DisciplineBasedProxy basedProxy)
 {
     return(modelDatabase.GetDiscipline(basedProxy).ToExtendedProxy());
 }