public void EditStudentNickname() { AddStudentRequest request = new AddStudentRequest() { Nickname = AlphaNumericStringGenerator.GetString(10), SID = AlphaNumericStringGenerator.GetStudentIDString() }; StudentFacade studentFacade = new StudentFacade(); AddStudentResponse response = studentFacade.AddStudentNickname(request); Assert.AreEqual(HttpStatusCode.OK, response.Status); EditStudentNicknameRequest editStudentNicknameRequest = new EditStudentNicknameRequest() { Nickname = AlphaNumericStringGenerator.GetString(10) }; EditStudentNicknameResponse editStudentNicknameResponse = studentFacade.EditStudentNickname(response.StudentID, editStudentNicknameRequest); Assert.AreEqual(HttpStatusCode.OK, editStudentNicknameResponse.Status); Assert.IsTrue(editStudentNicknameResponse.Result); using (helpdesksystemContext context = new helpdesksystemContext()) { var nickname = context.Nicknames.FirstOrDefault(n => n.StudentId == response.StudentID); Assert.AreEqual(editStudentNicknameRequest.Nickname, nickname.NickName); } }
public AddStudentResponse AddStudent(AddStudentRequest request) { var study = _context.Studies.FirstOrDefault(s => s.Name == request.Studies); if (study == null) { throw new Exception("There is no such study"); } var enrollment = _context.Enrollment.Where(enr => enr.IdStudy == study.IdStudy && enr.Semester == request.Semester).FirstOrDefault(); if (enrollment == null) { enrollment = new Enrollment() { IdEnrollment = _context.Enrollment.Max(enr => enr.IdEnrollment) + 1, Semester = request.Semester, IdStudy = study.IdStudy, StartDate = DateTime.Now }; _context.Enrollment.Add(enrollment); } if (_context.Student.FirstOrDefault(s => s.IndexNumber == request.IndexNumber) != null) { throw new Exception("Student with such index number already exists"); } var student = new Student() { IndexNumber = request.IndexNumber, BirthDate = request.Birthdate, FirstName = request.FirstName, LastName = request.LastName, IdEnrollment = enrollment.IdEnrollment }; _context.Student.Add(student); var response = new AddStudentResponse() { Semester = enrollment.Semester, LastName = student.LastName, StartDate = enrollment.StartDate }; _context.SaveChanges(); return(response); }
public void EditStudentNicknameExists() { AddStudentRequest request = new AddStudentRequest() { Nickname = AlphaNumericStringGenerator.GetString(10), SID = AlphaNumericStringGenerator.GetStudentIDString() }; StudentFacade studentFacade = new StudentFacade(); AddStudentResponse response = studentFacade.AddStudentNickname(request); Assert.AreEqual(HttpStatusCode.OK, response.Status); EditStudentNicknameRequest editStudentNicknameRequest = new EditStudentNicknameRequest() { Nickname = request.Nickname }; EditStudentNicknameResponse editStudentNicknameResponse = studentFacade.EditStudentNickname(response.StudentID, editStudentNicknameRequest); Assert.AreEqual(HttpStatusCode.BadRequest, editStudentNicknameResponse.Status); }
/// <summary> /// Used to add a student nickname to the system /// </summary> /// <param name="request">The information required to add a student nickname</param> /// <returns>A response indictaes if the action was successful</returns> public AddStudentResponse AddStudentNickname(AddStudentRequest request) { AddStudentResponse response = new AddStudentResponse(); try { response = (AddStudentResponse)request.CheckValidation(response); if (response.Status == HttpStatusCode.BadRequest) { return(response); } StudentDatalayer studentDatalayer = new StudentDatalayer(); var nickname = studentDatalayer.GetStudentNicknameByNickname(request.Nickname); if (nickname != null) { response.Status = HttpStatusCode.BadRequest; response.StatusMessages.Add(new StatusMessage(HttpStatusCode.BadRequest, "This nickname is already being used.")); return(response); } var dataLayer = new StudentDatalayer(); int id = dataLayer.AddStudentNickname(request); response.StudentID = id; response.Status = HttpStatusCode.OK; } catch (Exception ex) { s_logger.Error(ex, "Unable to add a nickname"); response.Status = HttpStatusCode.InternalServerError; response.StatusMessages.Add(new StatusMessage(HttpStatusCode.InternalServerError, "Unable to add a nickname")); } return(response); }
/// <summary> /// This method is used to check in into the helpdesk system /// </summary> /// <param name="request">The request containing the specified UnitID</param> /// <returns>A response indicating success or failure</returns> public CheckInResponse CheckIn(CheckInRequest request) { CheckInResponse response = new CheckInResponse(); try { response = (CheckInResponse)request.CheckValidation(response); if (response.Status == HttpStatusCode.BadRequest) { return(response); } StudentFacade studentFacade = new StudentFacade(); if (!request.StudentID.HasValue) { if (studentFacade.GetStudentByNickname(request.Nickname).Status != HttpStatusCode.NotFound) { response.Status = HttpStatusCode.BadRequest; return(response); } AddStudentRequest addStudentRequest = new AddStudentRequest() { SID = request.SID, Nickname = request.Nickname }; AddStudentResponse addStudentResponse = studentFacade.AddStudentNickname(addStudentRequest); request.StudentID = addStudentResponse.StudentID; } using (helpdesksystemContext context = new helpdesksystemContext()) { if (context.Nicknames.FirstOrDefault(n => n.StudentId == request.StudentID) == null) { throw new NotFoundException("No student found for id " + request.StudentID); } } CheckInDataLayer dataLayer = new CheckInDataLayer(); int checkInID = dataLayer.CheckIn(request); response.StudentID = request.StudentID.Value; response.CheckInID = checkInID; response.Status = HttpStatusCode.OK; } catch (NotFoundException ex) { s_logger.Warn(ex, "No student found for id " + request.SID); response.Status = HttpStatusCode.NotFound; response.StatusMessages.Add(new StatusMessage(HttpStatusCode.NotFound, "No student found for id " + request.SID)); } catch (Exception ex) { s_logger.Error(ex, "Unable to check in"); response.Status = HttpStatusCode.InternalServerError; response.StatusMessages.Add(new StatusMessage(HttpStatusCode.InternalServerError, "Unable to check in")); } return(response); }
public TestDataNickname(AddStudentRequest request, AddStudentResponse response) { Request = request; Response = response; }