public IActionResult EditStudentNickname([FromRoute] int id, [FromBody] EditStudentNicknameRequest request) { if (!IsAuthorized()) { return(Unauthorized()); } try { var facade = new StudentFacade(); var response = facade.EditStudentNickname(id, request); switch (response.Status) { case HttpStatusCode.OK: return(Ok(response)); case HttpStatusCode.BadRequest: return(BadRequest(BuildBadRequestMessage(response))); case HttpStatusCode.InternalServerError: return(StatusCode(StatusCodes.Status500InternalServerError)); case HttpStatusCode.NotFound: return(NotFound()); } s_logger.Fatal("This code should be unreachable, unknown result has occured."); } catch (Exception ex) { s_logger.Error(ex, "Unable to edit student's nickname."); } return(StatusCode(StatusCodes.Status500InternalServerError)); }
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 void EditStudentNicknameNotFound() { StudentFacade studentFacade = new StudentFacade(); EditStudentNicknameRequest editStudentNicknameRequest = new EditStudentNicknameRequest() { Nickname = AlphaNumericStringGenerator.GetString(10), }; EditStudentNicknameResponse editStudentNicknameResponse = studentFacade.EditStudentNickname(-1, editStudentNicknameRequest); Assert.AreEqual(HttpStatusCode.NotFound, editStudentNicknameResponse.Status); }
/// <summary> /// This method is responsible for updating a specific students's nickname /// </summary> /// <param name="id">The StudentID of the student to be updated</param> /// <param name="request">The student's new nickname</param> /// <returns>The response that indicates if the update was successfull</returns> public EditStudentNicknameResponse EditStudentNickname(int id, EditStudentNicknameRequest request) { s_logger.Info("Editing student's nickname..."); EditStudentNicknameResponse response = new EditStudentNicknameResponse(); try { response = (EditStudentNicknameResponse)request.CheckValidation(response); if (response.Status == HttpStatusCode.BadRequest) { return(response); } var dataLayer = new StudentDatalayer(); var nickname = dataLayer.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); } bool result = dataLayer.EditStudentNickname(id, request); if (result == false) { throw new NotFoundException("Unable to find student!"); } response.Result = result; response.Status = HttpStatusCode.OK; } catch (NotFoundException ex) { s_logger.Error(ex, "Unable to find student!"); response.Status = HttpStatusCode.NotFound; response.StatusMessages.Add(new StatusMessage(HttpStatusCode.NotFound, "Unable to find student!")); } catch (Exception ex) { s_logger.Error(ex, "Unable to update student's nickname!"); response.Status = HttpStatusCode.InternalServerError; response.StatusMessages.Add(new StatusMessage(HttpStatusCode.InternalServerError, "Unable to update student's nickname!")); } return(response); }
/// <summary> /// Used to edit the specified student's nickname in the databse with the request's information /// </summary> /// <param name="id">The StudentID of the student to be updated</param> /// <param name="request">The request that contains the student's new nickname</param> /// <returns>A boolean that indicates whether the operation was a success</returns> public bool EditStudentNickname(int id, EditStudentNicknameRequest request) { using (helpdesksystemContext context = new helpdesksystemContext()) { Nicknames nickname = context.Nicknames.FirstOrDefault(n => n.StudentId == id); if (nickname == null) { return(false); } nickname.NickName = request.Nickname; context.SaveChanges(); } return(true); }
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); }