public IActionResult ValidateNickname([FromBody] ValidateNicknameRequest request) { try { var facade = new StudentFacade(); var response = facade.ValidateNickname(request); switch (response.Status) { case HttpStatusCode.OK: return(Ok(response)); case HttpStatusCode.Accepted: return(Accepted(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 validate student's nickname."); } return(StatusCode(StatusCodes.Status500InternalServerError)); }
public void ValidateNicknameOldInValid() { Nicknames nickname = new Nicknames() { NickName = AlphaNumericStringGenerator.GetString(10), Sid = AlphaNumericStringGenerator.GetStudentIDString() }; using (helpdesksystemContext context = new helpdesksystemContext()) { context.Nicknames.Add(nickname); context.SaveChanges(); } ValidateNicknameRequest request = new ValidateNicknameRequest() { Name = nickname.NickName, SID = AlphaNumericStringGenerator.GetStudentIDString() }; var facade = new StudentFacade(); var response = facade.ValidateNickname(request); Assert.AreEqual(HttpStatusCode.BadRequest, response.Status); }
/// <summary> /// This method is responsible for validating a given student's nickname /// </summary> /// <param name="request">Request that contains the nickname information</param> /// <returns>Response which indicates success or failure</returns> public ValidateNicknameResponse ValidateNickname(ValidateNicknameRequest request) { var response = new ValidateNicknameResponse(); try { var dataLayer = new StudentDatalayer(); var existingNickname = dataLayer.GetStudentNicknameByNickname(request.Name); if (existingNickname == null) { if (!string.IsNullOrEmpty(request.SID)) { existingNickname = dataLayer.GetStudentNicknameByStudentID(request.SID); if (existingNickname == null) { response.Status = HttpStatusCode.OK; } else { response.SID = existingNickname.ID; response.StudentId = existingNickname.StudentID; response.Nickname = existingNickname.Nickname; response.Status = HttpStatusCode.Accepted; } } else { response.Status = HttpStatusCode.NotFound; } } else if (existingNickname.StudentID == request.SID || string.IsNullOrEmpty(request.SID)) { response.Nickname = existingNickname.Nickname; response.StudentId = existingNickname.StudentID; response.SID = existingNickname.ID; response.Status = HttpStatusCode.Accepted; } else { response.Status = HttpStatusCode.BadRequest; } } catch (Exception ex) { s_logger.Error(ex, "Unable to validate student's nickname!"); response.Status = HttpStatusCode.InternalServerError; response.StatusMessages.Add(new StatusMessage(HttpStatusCode.InternalServerError, "Unable to validate student's nickname!")); } return(response); }
public void ValidateNicknameNew() { ValidateNicknameRequest request = new ValidateNicknameRequest() { Name = AlphaNumericStringGenerator.GetString(10), SID = AlphaNumericStringGenerator.GetStudentIDString() }; var facade = new StudentFacade(); var response = facade.ValidateNickname(request); Assert.AreEqual(HttpStatusCode.OK, response.Status); }