public ClassDisciplineDetails SetClassDiscipline(ClassDiscipline classDiscipline)
        {
            DemandClassId(classDiscipline.ClassId);
            var stiDiscipline = new DisciplineReferral();

            MapperFactory.GetMapper <DisciplineReferral, ClassDiscipline>().Map(stiDiscipline, classDiscipline);

            if (classDiscipline.Id.HasValue)
            {
                DisciplineStorage.Update(stiDiscipline);
            }
            else
            {
                stiDiscipline = DisciplineStorage.Add(stiDiscipline);
                MapperFactory.GetMapper <ClassDiscipline, DisciplineReferral>().Map(classDiscipline, stiDiscipline);
            }
            return(new ClassDisciplineDetails
            {
                Date = classDiscipline.Date,
                ClassId = classDiscipline.ClassId,
                Description = classDiscipline.Description,
                Id = classDiscipline.Id,
                Infractions = classDiscipline.Infractions,
                StudentId = classDiscipline.StudentId,
                Class = ServiceLocator.ClassService.GetClassDetailsById(classDiscipline.ClassId.Value),
                Student = ServiceLocator.StudentService.GetById(classDiscipline.StudentId, Context.SchoolYearId.Value)
            });
        }
 public DisciplineReferral Create(DisciplineReferral discipline)
 {
     if (!discipline.SectionId.HasValue)
     {
         throw new ChalkableException("Invalid sectionId param");
     }
     return(Post(BuildUrl(discipline.SectionId.Value, discipline.Date), discipline));
 }
 public void Update(DisciplineReferral discipline)
 {
     if (!discipline.SectionId.HasValue)
     {
         throw new ChalkableException("Invalid sectionId param");
     }
     Put(BuildUrl(discipline.SectionId.Value, discipline.Date, discipline.Id), discipline);
 }
        public ClassDisciplineDetails SetClassDiscipline(ClassDiscipline classDiscipline)
        {
            DemandClassId(classDiscipline.ClassId);
            Trace.Assert(Context.SchoolYearId.HasValue);

            var stiDiscipline = new DisciplineReferral();

            MapperFactory.GetMapper <DisciplineReferral, ClassDiscipline>().Map(stiDiscipline, classDiscipline);

            if (classDiscipline.Id.HasValue)
            {
                if (classDiscipline.Infractions == null || classDiscipline.Infractions.Count == 0)
                {
                    ConnectorLocator.DisciplineConnector.Delete(classDiscipline.Id.Value, classDiscipline.ClassId.Value, classDiscipline.Date);
                    classDiscipline.Id = null;
                }
                else
                {
                    ConnectorLocator.DisciplineConnector.Update(stiDiscipline);
                }
            }
            else
            {
                stiDiscipline = ConnectorLocator.DisciplineConnector.Create(stiDiscipline);
                MapperFactory.GetMapper <ClassDiscipline, DisciplineReferral>().Map(classDiscipline, stiDiscipline);
            }

            return(new ClassDisciplineDetails
            {
                Date = classDiscipline.Date,
                ClassId = classDiscipline.ClassId,
                Description = classDiscipline.Description,
                Id = classDiscipline.Id,
                Infractions = classDiscipline.Infractions,
                StudentId = classDiscipline.StudentId,
                Class = ServiceLocator.ClassService.GetClassDetailsById(classDiscipline.ClassId.Value),
                Student = ServiceLocator.StudentService.GetById(classDiscipline.StudentId, Context.SchoolYearId.Value)
            });
        }
 public void AddDisciplineReferral(DisciplineReferral disciplineReferral)
 {
     DisciplineStorage.Add(disciplineReferral);
 }