public async Task <SessionFeedback> CreateFeedbackAsync(SessionFeedback feedback) { try { await _sessionFeedbacks.InsertOneAsync(feedback); } catch (MongoWriteException ex) { throw ex; } return(feedback); }
public async Task <SessionFeedbackDto> AddFeedbackAsync(Guid sessionId, Guid userId, byte rating) { var entity = new SessionFeedback() { SessionId = sessionId, UserId = userId, Rating = rating }; _repo.Add(entity); await _repo.SaveAsync(); return(_mapper.Map <SessionFeedbackDto>(entity)); }
public async Task Success_FeedbackController_CreateSessionFeedback_Created() { //Arrange var sessionId = "someSessionId"; var userId = "someUserId"; var feedback = new SessionFeedback() { Comment = "", Id = "", Rate = 5, SessionId = sessionId, UserId = userId }; _mockFeedbackService.Setup(service => service.CreateFeedbackAsync(It.IsAny <SessionFeedback>())) .ReturnsAsync(feedback); var httpContext = new DefaultHttpContext(); httpContext.Request.Headers["Ubi-UserId"] = "1234566"; var controllerContext = new ControllerContext() { HttpContext = httpContext }; //Act var feedbackController = new FeedbackController(_mockLogger.Object, _mockFeedbackService.Object) { ControllerContext = controllerContext }; var action = await feedbackController.CreateSessionFeedback(sessionId, new SessionFeedback() { Comment = "", Rate = 4 }); var result = action.Result as StatusCodeResult; //Assert Assert.IsType <StatusCodeResult>(result); Assert.Equal(201, result.StatusCode); _mockFeedbackService.Verify(service => service.CreateFeedbackAsync(It.IsAny <SessionFeedback>()), Times.Once); }
public async Task Fail_FeedbackController_CreateSessionFeedback_BadRequest_When_Feedback_Allready_Exists() { //Arrange var sessionId = "someSessionId"; var userId = "someUserId"; var feedback = new SessionFeedback() { Comment = "", Id = "", Rate = 5, SessionId = sessionId, UserId = userId }; _mockFeedbackService.Setup(service => service.CreateFeedbackAsync(It.IsAny <SessionFeedback>())) .ThrowsAsync(CreateDuplicateMongoWriteException()); var httpContext = new DefaultHttpContext(); httpContext.Request.Headers["Ubi-UserId"] = "1234566"; var controllerContext = new ControllerContext() { HttpContext = httpContext }; //Act var feedbackController = new FeedbackController(_mockLogger.Object, _mockFeedbackService.Object) { ControllerContext = controllerContext }; var action = await feedbackController.CreateSessionFeedback(sessionId, new SessionFeedback() { Comment = "", Rate = 4 }); var result = action.Result as ConflictResult; //Assert Assert.IsType <ConflictResult>(result); _mockFeedbackService.Verify(service => service.CreateFeedbackAsync(It.IsAny <SessionFeedback>()), Times.Once); }
public async Task Fail_FeedbackController_CreateSessionFeedback_BadRequest_When_Wrong_Header(string headerValue) { //Arrange var sessionId = "someSessionId"; var userId = "someUserId"; var feedback = new SessionFeedback() { Comment = "", Id = "", Rate = 5, SessionId = sessionId, UserId = userId }; _mockFeedbackService.Setup(service => service.CreateFeedbackAsync(It.IsAny <SessionFeedback>())) .ReturnsAsync(feedback); var httpContext = new DefaultHttpContext(); httpContext.Request.Headers["Ubi-UserId"] = headerValue; var controllerContext = new ControllerContext() { HttpContext = httpContext }; //Act var feedbackController = new FeedbackController(_mockLogger.Object, _mockFeedbackService.Object) { ControllerContext = controllerContext }; var action = await feedbackController.CreateSessionFeedback(sessionId, new SessionFeedback() { Comment = "", Rate = 4 }); var result = action.Result as BadRequestResult; //Assert Assert.IsType <BadRequestResult>(result); _mockFeedbackService.Verify(service => service.CreateFeedbackAsync(It.IsAny <SessionFeedback>()), Times.Never); }
public SessionDetailViewModel(SessionFeedback feedback, INavigation nav) { _nav = nav; this.Feedback = feedback; }
public async Task <ActionResult <SessionFeedback> > CreateSessionFeedback(string sessionId, [Required, FromBody] SessionFeedback sessionFeedback) { // Check that header userid is present.. Can be replaced by Middleware if (!Request.Headers.ContainsKey(USERID_HEADER_KEY)) { _logger.LogWarning(USERID_HEADER_KEY + " must not be null"); return(BadRequest()); } Request.Headers.TryGetValue(USERID_HEADER_KEY, out var userId); if (String.IsNullOrWhiteSpace(userId)) { _logger.LogWarning(USERID_HEADER_KEY + " must not be empty"); return(BadRequest()); } sessionFeedback.UserId = userId; sessionFeedback.SessionId = sessionId; sessionFeedback.CreatedOn = DateTime.Now; try { await _feedbackService.CreateFeedbackAsync(sessionFeedback); } catch (MongoWriteException e) { if (e.WriteError.Category == ServerErrorCategory.DuplicateKey) { return(Conflict()); } } return(StatusCode(201)); }