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)); }
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); }
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" })); }