コード例 #1
0
        public TeacherToSubjectDTOForAdmin PutStoppedTeachingNowByTSId(int id)
        {
            TeacherToSubject found = GetByID(id);

            if (found == null)
            {
                throw new HttpException("The Teacher-Subject combination with id: " + id + " was not found.");
            }

            found.StoppedTeaching = DateTime.UtcNow;
            db.TeachersToSubjectsRepository.Update(found);

            IEnumerable <FormToTeacherSubject> ftsByFoundTSId = found.TeacherSubjectForms;

            if (ftsByFoundTSId != null)
            {
                foreach (var fts in ftsByFoundTSId)
                {
                    if (fts.Stopped == null)
                    {
                        fts.Stopped = DateTime.UtcNow;
                        db.FormsToTeacherSubjectsRepository.Update(fts);
                    }
                }
            }

            db.Save();

            TeacherToSubjectDTOForAdmin dto = toDTO.ConvertToTeacherToSubjectDTOForAdmin(found);

            return(dto);
        }
コード例 #2
0
        public HttpResponseMessage PutStoppedTeachingNowByTSId(int id)
        {
            string userId = ((ClaimsPrincipal)RequestContext.Principal).FindFirst(x => x.Type == "UserId").Value;

            logger.Info("UserId: " + userId + ": Requesting Teacher To Subject Update - Stopped Teaching for TeacherToSubject Id: " + id);

            try
            {
                TeacherToSubjectDTOForAdmin saved = teachersToSubjectsService.PutStoppedTeachingNowByTSId(id);

                if (saved == null)
                {
                    logger.Info("Failed!");
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, "Failed!"));
                }

                logger.Info("Success!");
                return(Request.CreateResponse(HttpStatusCode.OK, saved));
            }
            catch (Exception e)
            {
                logger.Error(e);
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, e));
            }
        }
コード例 #3
0
        public HttpResponseMessage PostTeacherToSubject(string teacherId, int subjectId)
        {
            string userId = ((ClaimsPrincipal)RequestContext.Principal).FindFirst(x => x.Type == "UserId").Value;

            logger.Info("UserId: " + userId + ": Requesting Teacher To Subject Insert - Teacher Id: " + teacherId + ", " +
                        "Subject Id:" + subjectId);

            try
            {
                TeacherToSubjectDTOForAdmin saved = teachersToSubjectsService.Create(teacherId, subjectId);

                if (saved == null)
                {
                    logger.Info("Failed!");
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, "Failed!"));
                }

                logger.Info("Success!");
                return(Request.CreateResponse(HttpStatusCode.OK, saved));
            }
            catch (Exception e)
            {
                logger.Error(e);
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, e));
            }
        }
コード例 #4
0
        public HttpResponseMessage GetTeacherToSubject(int id)
        {
            string userId   = ((ClaimsPrincipal)RequestContext.Principal).FindFirst(x => x.Type == "UserId").Value;
            string userRole = ((ClaimsPrincipal)RequestContext.Principal).FindFirst(x => x.Type == ClaimTypes.Role).Value;

            logger.Info("UserRole: " + userRole + ", UserId: " + userId + ": Requesting Teacher To Subject by id: " + id);

            try
            {
                TeacherToSubject ts = teachersToSubjectsService.GetByID(id);
                if (ts == null)
                {
                    logger.Info("The teacher with id: " + id + " was not found.");
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, "The TeacherToSubject with id: " + id + " was not found."));
                }
                if (userRole == "admin")
                {
                    logger.Info("Requesting found TeacherToSubject convert for " + userRole + "role.");
                    TeacherToSubjectDTOForAdmin dto = toDTO.ConvertToTeacherToSubjectDTOForAdmin(ts);
                    if (dto == null)
                    {
                        logger.Info("Failed!");
                        return(Request.CreateResponse(HttpStatusCode.BadRequest, "Something went wrong."));
                    }
                    logger.Info("Success!");
                    return(Request.CreateResponse(HttpStatusCode.OK, dto));
                }
                else if (userRole == "teacher")
                {
                    logger.Info("Requesting found TeacherToSubject convert for " + userRole + "role.");
                    TeacherToSubjectDTOForTeacher dto = toDTO.ConvertToTeacherToSubjectDTOForTeacher(ts);
                    if (dto == null)
                    {
                        logger.Info("Failed!");
                        return(Request.CreateResponse(HttpStatusCode.BadRequest, "Something went wrong."));
                    }
                    logger.Info("Success!");
                    return(Request.CreateResponse(HttpStatusCode.OK, dto));
                }
                else //if (userRole == "student" || userRole == "parent")
                {
                    logger.Info("Requesting found TeacherToSubject convert for " + userRole + "role.");
                    TeacherToSubjectDTOForStudentAndParent dto = toDTO.ConvertToTeacherToSubjectDTOForStudentAndParent(ts);
                    if (dto == null)
                    {
                        logger.Info("Failed!");
                        return(Request.CreateResponse(HttpStatusCode.BadRequest, "Something went wrong."));
                    }
                    logger.Info("Success!");
                    return(Request.CreateResponse(HttpStatusCode.OK, dto));
                }
            }
            catch (Exception e)
            {
                logger.Error(e);
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, e));
            }
        }
コード例 #5
0
        public IList <TeacherToSubjectDTOForAdmin> ConvertToTSDTOListForAdmin(List <TeacherToSubject> tTSs)
        {
            IList <TeacherToSubjectDTOForAdmin> dtos = new List <TeacherToSubjectDTOForAdmin>();

            foreach (var ts in tTSs)
            {
                TeacherToSubjectDTOForAdmin dto = ConvertToTeacherToSubjectDTOForAdmin(ts);
                dtos.Add(dto);
            }
            return(dtos);
        }
コード例 #6
0
        public TeacherToSubjectDTOForAdmin ConvertToTeacherToSubjectDTOForAdmin(TeacherToSubject x)
        {
            TeacherToSubjectDTOForAdmin dto = new TeacherToSubjectDTOForAdmin
            {
                Id              = x.Id,
                Teacher         = teacherToDTO.ConvertToTeacherDTOForAdmin(x.Teacher, (List <IdentityUserRole>)x.Teacher.Roles),
                Subject         = x.Subject,
                StartedTeaching = x.StartedTeaching,
                StoppedTeaching = x.StoppedTeaching
            };

            return(dto);
        }
コード例 #7
0
        public TeacherToSubjectDTOForAdmin Create(string teacherId, int subjectId)
        {
            Teacher foundTeacher = db.TeachersRepository.GetByID(teacherId);

            if (foundTeacher == null)
            {
                throw new HttpException("The teacher with id: " + teacherId + " was not found");
            }
            if (foundTeacher.IsStillWorking == false)
            {
                throw new HttpException("The teacher with id: " + teacherId + " is currently not an active faculty member. " +
                                        "You cannot assign this teacher to a subject.");
            }

            Subject foundSubject = subjectsService.GetByID(subjectId);

            if (foundSubject == null)
            {
                throw new HttpException("The subject with id: " + subjectId + " was found");
            }

            TeacherToSubject found = db.TeachersToSubjectsRepository.GetByTeacherIdAndSubjectId(foundTeacher.Id, foundSubject.Id);

            if (found != null)
            {
                throw new HttpException("The subject with id: " + subjectId + " is already assign to " +
                                        "the teacher with id: " + teacherId + ". You can find the existing Teacher-Subject combination (" + found.Id +
                                        ") with HttpGet at route: http://localhost:54164/project/teachers-to-subjects/" + found.Id);
            }

            TeacherToSubject ts = new TeacherToSubject
            {
                Teacher = foundTeacher,
                Subject = foundSubject,

                StartedTeaching = DateTime.UtcNow,
                StoppedTeaching = null
            };

            db.TeachersToSubjectsRepository.Insert(ts);
            db.Save();

            TeacherToSubjectDTOForAdmin dto = toDTO.ConvertToTeacherToSubjectDTOForAdmin(ts);

            return(dto);
        }
コード例 #8
0
        public HttpResponseMessage PutStartedOrStoppedTeaching(int id, string date, [FromUri] DateTime updated)
        {
            string userId = ((ClaimsPrincipal)RequestContext.Principal).FindFirst(x => x.Type == "UserId").Value;

            logger.Info("UserId: " + userId + ": Requesting Teacher To Subject Update");

            try
            {
                TeacherToSubjectDTOForAdmin saved = new TeacherToSubjectDTOForAdmin();

                if (date.ToLower().Equals("started"))
                {
                    logger.Info("Requesting StartedTeaching Property Update");
                    saved = teachersToSubjectsService.UpdateStartedTeaching(id, updated);
                }
                else if (date.ToLower().Equals("stopped"))
                {
                    logger.Info("Requesting StoppedTeaching Property Update");
                    saved = teachersToSubjectsService.UpdateStoppedTeaching(id, updated);
                }
                else
                {
                    logger.Info("The route value: " + date + " isn't valid. The correct options are: started or stopped.");
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, "The route value: " + date + " isn't valid. " +
                                                  "The correct options are: started or stopped."));
                }

                if (saved == null)
                {
                    logger.Info("Failed!");
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, "Failed!"));
                }

                logger.Info("Success!");
                return(Request.CreateResponse(HttpStatusCode.OK, saved));
            }
            catch (Exception e)
            {
                logger.Error(e);
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, e));
            }
        }
コード例 #9
0
        public TeacherToSubjectDTOForAdmin UpdateStoppedTeaching(int id, DateTime updated)
        {
            TeacherToSubject found = GetByID(id);

            if (found == null)
            {
                throw new HttpException("The Teacher-Subject combination with id: " + id + " was not found.");
            }

            if (found.StartedTeaching > updated)
            {
                throw new HttpException("The StoppedTeaching date must be after StartedTeaching Date: " + found.StartedTeaching);
            }

            found.StoppedTeaching = updated;
            db.TeachersToSubjectsRepository.Update(found);
            db.Save();

            TeacherToSubjectDTOForAdmin dto = toDTO.ConvertToTeacherToSubjectDTOForAdmin(found);

            return(dto);
        }