public ActionResult SetClassDiscipline(ClassDisciplineInputModel discipline)
        {
            if (!Context.PersonId.HasValue)
            {
                throw new UnassignedUserException();
            }
            IList <Infraction> infractions = null;

            if (discipline.InfractionsIds != null && discipline.InfractionsIds.Count > 0)
            {
                infractions = SchoolLocator.InfractionService.GetInfractions();
                infractions = infractions.Where(x => discipline.InfractionsIds.Contains(x.Id)).ToList();
            }
            var classDisciplineModel = new ClassDiscipline
            {
                ClassId     = discipline.ClassId,
                Date        = discipline.Date,
                Id          = discipline.Id,
                Description = discipline.Description,
                Infractions = infractions ?? new List <Infraction>(),
                StudentId   = discipline.StudentId
            };
            var res = SchoolLocator.DisciplineService.SetClassDiscipline(classDisciplineModel);

            MasterLocator.UserTrackingService.SetDiscipline(Context.Login,
                                                            classDisciplineModel.ClassId,
                                                            classDisciplineModel.Date,
                                                            classDisciplineModel.Description,
                                                            classDisciplineModel.StudentId);
            return(Json(DisciplineView.Create(res, Context.PersonId.Value)));
        }
        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)
            });
        }
示例#3
0
        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)
            });
        }