Exemplo n.º 1
0
        public HttpResponseMessage PutStoppedNowByFTSId(int id)
        {
            string userId = ((ClaimsPrincipal)RequestContext.Principal).FindFirst(x => x.Type == "UserId").Value;

            logger.Info("UserId: " + userId + ": Requesting Stopped Update to DateTime.UtcNow for FTS Id: " + id);

            try
            {
                FTSDTOForAdmin saved = formsToTeacherSubjectsService.UpdateStoppedNowByFTSId(id);

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

                logger.Info("Success! Updated Stopped property to DateTime.UtcNow.");
                return(Request.CreateResponse(HttpStatusCode.OK, saved));
            }
            catch (Exception e)
            {
                logger.Error(e);
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, e));
            }
        }
Exemplo n.º 2
0
        public HttpResponseMessage PutFormToTeacherSubject(int id, [FromBody] PutFormToTeacherSubjectDTO updated)
        {
            string userId = ((ClaimsPrincipal)RequestContext.Principal).FindFirst(x => x.Type == "UserId").Value;

            logger.Info("UserId: " + userId + ": Requesting Form TO TeacherSubject Update for FTS Id: " + id);

            if (updated.Id != id)
            {
                logger.Error("Updated FormToTeacherSubject id: " + updated.Id + " doesn't match the id: " + id + " from the request (Route).");
                return(Request.CreateResponse(HttpStatusCode.BadRequest, "Updated FormToTeacherSubject " +
                                              "id: " + updated.Id + " doesn't match id: " + id + " from the request."));
            }

            try
            {
                FTSDTOForAdmin saved = formsToTeacherSubjectsService.Update(id, updated);

                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));
            }
        }
Exemplo n.º 3
0
        public HttpResponseMessage PostFormToTeacherSubject(int formId, string teacherId, int subjectId)
        {
            string userId = ((ClaimsPrincipal)RequestContext.Principal).FindFirst(x => x.Type == "UserId").Value;

            logger.Info("UserId: " + userId + ": Requesting Form TO TeacherSubject Insert for " +
                        "Form Id: " + formId + ", Teacher id: " + teacherId + ", Subject Id: " + subjectId);

            try
            {
                FTSDTOForAdmin saved = formsToTeacherSubjectsService.Create(formId, 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));
            }
        }
Exemplo n.º 4
0
        public IList <FTSDTOForAdmin> ConvertToFTSDTOListForAdmin(List <FormToTeacherSubject> fTSs)
        {
            IList <FTSDTOForAdmin> dtos = new List <FTSDTOForAdmin>();

            foreach (var fts in fTSs)
            {
                FTSDTOForAdmin dto = ConvertToFTSDTOForAdmin(fts);
                dtos.Add(dto);
            }
            return(dtos);
        }
Exemplo n.º 5
0
        public FTSDTOForUser ConvertToFTSDTOForUser(FormToTeacherSubject x)
        {
            FTSDTOForAdmin dto = new FTSDTOForAdmin
            {
                Id               = x.Id,
                Form             = formToDTO.ConvertToFormDTOForStudentAndParent(x.Form),
                TeacherToSubject = tsToDTO.ConvertToTeacherToSubjectDTOForStudentAndParent(x.TeacherToSubject),
                Started          = x.Started,
                Stopped          = x.Stopped
            };

            return(dto);
        }
Exemplo n.º 6
0
        public HttpResponseMessage GetFormsToTeachersSubjectsById(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 FormToTeacherSubject by id: " + id);

            try
            {
                FormToTeacherSubject formToTeacherSubject = formsToTeacherSubjectsService.GetByID(id);

                if (formToTeacherSubject == null)
                {
                    logger.Info("The formToTeacherSubject with id: " + id + " was not found.");
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, "The formToTeacherSubject with id: " + id + " was not found."));
                }
                if (userRole == "admin")
                {
                    logger.Info("Requesting found FormToTeacherSubject convert for " + userRole + "role.");
                    FTSDTOForAdmin dto = toDTO.ConvertToFTSDTOForAdmin(formToTeacherSubject);
                    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 FormToTeacherSubject convert for " + userRole + "role.");
                    FTSDTOForTeacher dto = toDTO.ConvertToFTSDTOForTeacher(formToTeacherSubject);
                    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));
            }
        }
Exemplo n.º 7
0
        public FTSDTOForAdmin Create(int formId, string teacherId, int subjectId)
        {
            Form foundForm = formsService.GetByID(formId);

            if (foundForm == null)
            {
                throw new HttpException("The Form with id: " + formId + " was not found");
            }

            if (foundForm.Started.AddDays(360).CompareTo(DateTime.UtcNow) < 0)
            {
                throw new HttpException("The Form with id: " + formId + " was not created for this shool year. " +
                                        "This form is from: " + foundForm.Started.Year + ". Classes must be assign to a form from this school year.");
            }

            TeacherToSubject foundTeacherToSubject = teachersToSubjectsService.GetActiveTeacherToSubjectByTeacherIdAndSubjectId(teacherId, subjectId);

            if (foundForm.Grade != foundTeacherToSubject.Subject.Grade)
            {
                throw new HttpException("The subject and teacher combination with id: " + foundTeacherToSubject.Id + " has " +
                                        "the subject that is taught in grade " + foundTeacherToSubject.Subject.Grade +
                                        "and it can not be assigned to the grade " + foundForm.Grade + " in form " + foundForm.Id);
            }

            FormToTeacherSubject duplicate = db.FormsToTeacherSubjectsRepository.GetDuplicate(foundForm.Id, foundTeacherToSubject.Id);

            if (duplicate != null)
            {
                throw new HttpException("The combination form-teacher-subject you are trying to create already exists - FTS Id: " + duplicate.Id);
            }

            FormToTeacherSubject fts = new FormToTeacherSubject
            {
                Form             = foundForm,
                TeacherToSubject = foundTeacherToSubject,
                Started          = DateTime.UtcNow,
                Stopped          = null
            };

            db.FormsToTeacherSubjectsRepository.Insert(fts);
            db.Save();

            FTSDTOForAdmin dto = toDTO.ConvertToFTSDTOForAdmin(fts);

            return(dto);
        }
Exemplo n.º 8
0
        public FTSDTOForAdmin UpdateStoppedNowByFTSId(int id)
        {
            FormToTeacherSubject found = GetByID(id);

            if (found == null)
            {
                throw new HttpException("The Form To TeacherSubject with id: " + id + " was not found.");
            }

            found.Stopped = DateTime.UtcNow;
            db.FormsToTeacherSubjectsRepository.Update(found);
            db.Save();

            FTSDTOForAdmin dto = toDTO.ConvertToFTSDTOForAdmin(found);

            return(dto);
        }
Exemplo n.º 9
0
        public HttpResponseMessage PutStartedOrStoppedFTS(int id, string date, [FromUri] DateTime updated)
        {
            string userId = ((ClaimsPrincipal)RequestContext.Principal).FindFirst(x => x.Type == "UserId").Value;

            logger.Info("UserId: " + userId + ": Requesting Form TO TeacherSubject Update for FTS Id: " + id);

            try
            {
                FTSDTOForAdmin saved = new FTSDTOForAdmin();

                if (date.ToLower().Equals("started"))
                {
                    logger.Info("Requesting Started Property Update");
                    saved = formsToTeacherSubjectsService.UpdateStarted(id, updated);
                }
                else if (date.ToLower().Equals("stopped"))
                {
                    logger.Info("Requesting StoppedTeaching Property Update");
                    saved = formsToTeacherSubjectsService.UpdateStopped(id, updated);
                }
                else
                {
                    logger.Info("The route value isn't valid.");
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, "The route value 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));
            }
        }
Exemplo n.º 10
0
        public FTSDTOForAdmin Update(int id, PutFormToTeacherSubjectDTO updated)
        {
            FormToTeacherSubject found = GetByID(id);

            if (found == null)
            {
                throw new HttpException("The FormToTeacherSubject with id: " + id + " was not found");
            }

            Form foundForm = formsService.GetByID(updated.FormId);

            found.Form = foundForm ?? throw new HttpException("The Form with id: " + updated.FormId + " was not found");

            TeacherToSubject foundTS = teachersToSubjectsService.GetActiveTeacherToSubjectByTeacherIdAndSubjectId(updated.TeacherId, updated.SubjectId);

            found.TeacherToSubject = foundTS;

            found.Started = DateTime.UtcNow;
            found.Stopped = null;

            FormToTeacherSubject duplicate = db.FormsToTeacherSubjectsRepository.GetDuplicate(updated.FormId, foundTS.Id);

            if (duplicate != null)
            {
                throw new HttpException("The combination form-teacher-subject you are trying to create already exists - FTS Id: " + duplicate.Id);
            }
            if (foundForm.Grade != foundTS.Subject.Grade)
            {
                throw new HttpException("The subject and teacher combination with id: " + foundTS.Id + " has " +
                                        "the subject that is taught in grade " + foundTS.Subject.Grade +
                                        "and it can not be assigned to the grade " + foundForm.Grade + " in form " + foundForm.Id);
            }

            db.FormsToTeacherSubjectsRepository.Update(found);
            db.Save();

            FTSDTOForAdmin dto = toDTO.ConvertToFTSDTOForAdmin(found);

            return(dto);
        }