Ejemplo n.º 1
0
        public ActionResult <MarkResponse> Create(
            int userId, [FromBody] MarkCreateRequest markRequest)
        {
            var markModel = _mapper.Map <Mark>(markRequest);

            try
            {
                _service.Create(
                    markModel,
                    userId,
                    markRequest.SubnodeId,
                    markRequest.DepartmentId,
                    markRequest.ChiefSpecialistId,
                    markRequest.GroupLeaderId,
                    markRequest.NormContrId);
            }
            catch (ArgumentNullException)
            {
                return(NotFound());
            }
            catch (ConflictException)
            {
                return(Conflict());
            }

            var markResponse = _mapper.Map <MarkResponse>(markModel);

            return(CreatedAtAction(
                       nameof(GetById), new { Id = markResponse.Id }, markResponse));
        }
Ejemplo n.º 2
0
        public void Create_ShouldCreateMark()
        {
            // Arrange
            int userId       = _rnd.Next(1, TestData.users.Count());
            int subnodeId    = _rnd.Next(1, TestData.subnodes.Count());
            int departmentId = _rnd.Next(1, TestData.departments.Count());
            int normContrId  = _rnd.Next(1, TestData.employees.Count());

            while (TestData.employees.SingleOrDefault(
                       v => v.Id == normContrId).Department.Id != departmentId)
            {
                normContrId = _rnd.Next(1, TestData.employees.Count());
            }
            int chiefSpecialistId = _rnd.Next(1, TestData.employees.Count());

            while (TestData.employees.SingleOrDefault(
                       v => v.Id == chiefSpecialistId).Department.Id != departmentId)
            {
                chiefSpecialistId = _rnd.Next(1, TestData.employees.Count());
            }
            int groupLeaderId = _rnd.Next(1, TestData.employees.Count());

            while (TestData.employees.SingleOrDefault(
                       v => v.Id == groupLeaderId).Department.Id != departmentId)
            {
                groupLeaderId = _rnd.Next(1, TestData.employees.Count());
            }

            var newMark = new Mark
            {
                Name = "NewCreate",
                Code = "NewCreate",
            };

            // Act
            _service.Create(newMark,
                            userId,
                            subnodeId,
                            departmentId,
                            normContrId,
                            chiefSpecialistId,
                            groupLeaderId);

            // Assert
            _repository.Verify(mock => mock.Add(It.IsAny <Mark>()), Times.Once);
            Assert.NotNull(newMark.Subnode);
            Assert.NotNull(newMark.Department);
            Assert.NotNull(newMark.NormContr);
            Assert.NotNull(newMark.ChiefSpecialist);
            Assert.NotNull(newMark.GroupLeader);
        }
Ejemplo n.º 3
0
        public IHttpActionResult PostMark(PostMarkDTO mark, int subjectID, string teacherID, string pupilID)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            Pupil pupil = pupilService.GetById(pupilID);

            if (pupil == null)
            {
                return(BadRequest("There is no pupil with the given id."));
            }
            Teacher pno = pnoService.GetById(teacherID);

            if (pno == null)
            {
                return(BadRequest
                           ("There is no teacher with the given id."));
            }
            SubjectDTO subject = subjectService.GetById(subjectID);

            if (subject == null)
            {
                return(BadRequest("There is no subject with the given id."));
            }
            string userName;
            string userId;

            if ((ClaimsPrincipal)RequestContext.Principal != null)
            {
                userId = ((ClaimsPrincipal)RequestContext.Principal)
                         .FindFirst(x => x.Type == "UserId").Value;

                userName = ((ClaimsPrincipal)RequestContext.Principal)
                           .FindFirst(x => x.Type == "Username").Value;
            }

            if (RequestContext.Principal.IsInRole("teacher") == false)
            {
                return(BadRequest());
            }
            Marks newMark = markService.Create(mark);

            return(Ok());
        }
        public ActionResult AddFaculty(int[] examMark, int[] schoolMark)
        {
            var currentEnrollee = _enrolleeService.Find(customer => customer.AppCustomer.UserName == User.Identity.Name).First();

            var exSubjects = _examinationSubjectService.Find(ex => ex.Enrollees.Any(e => e.Email == currentEnrollee.Email)).ToList();

            if (examMark != null)
            {
                for (var i = 0; i < examMark.Length; i++)
                {
                    var mark = new Mark {
                        StudentMark = examMark[i], Enrollee = currentEnrollee, ExaminationSubject = exSubjects[i]
                    };

                    _markService.Create(mark);

                    if (exSubjects[i].Marks.Any(m => m.ExaminationSubject.Name == exSubjects[i].Name &&
                                                m.Enrollee.Email == currentEnrollee.Email))
                    {
                        exSubjects[i].Marks.First(m => m.ExaminationSubject.Name == exSubjects[i].Name &&
                                                  m.Enrollee.Email == currentEnrollee.Email).StudentMark = examMark[i];
                    }
                    else
                    {
                        exSubjects[i].Marks.Add(_markService.Find(m => m.Enrollee.Email == currentEnrollee.Email &&
                                                                  m.ExaminationSubject.Name == exSubjects[i].Name).Last());
                    }
                }
            }

            exSubjects.ForEach(s => _examinationSubjectService.Update(s));

            var schoolSubjects = _schoolSubjectsService.Find(ex => ex.Enrollees.Any(e => e.Email == currentEnrollee.Email)).ToList();

            if (schoolMark != null)
            {
                for (var i = 0; i < schoolMark.Length; i++)
                {
                    var mark = new Mark {
                        StudentMark   = schoolMark[i], Enrollee = currentEnrollee,
                        SchoolSubject = schoolSubjects[i]
                    };

                    _markService.Create(mark);

                    if (schoolSubjects[i].Marks.Any(m => m.SchoolSubject.Name == schoolSubjects[i].Name &&
                                                    m.Enrollee.Email == currentEnrollee.Email))
                    {
                        schoolSubjects[i].Marks.First(m => m.SchoolSubject.Name == schoolSubjects[i].Name &&
                                                      m.Enrollee.Email == currentEnrollee.Email).StudentMark = schoolMark[i];
                    }
                    else
                    {
                        schoolSubjects[i].Marks.Add(_markService.Find(m => m.Enrollee.Email == currentEnrollee.Email &&
                                                                      m.SchoolSubject.Name == schoolSubjects[i].Name).Last());
                    }
                }
            }

            schoolSubjects.ForEach(s => _schoolSubjectsService.Update(s));

            _enrolleeService.Update(currentEnrollee);

            return(RedirectToAction("GetFaculty", new { area = string.Empty, controller = "Faculty" }));
        }