public async static Task ProcessUpdateStudentMessageAsync([QueueTrigger("%queueName%")] UpdateStudentMessage message, TextWriter logger) { await Console.Out.WriteAsync($"Starting processing request for user: '******'"); try { var repository = new StudentRepository(); var student = new Student { Id = message.Id, FirstName = message.FirstName, LastName = message.LastName }; await repository.AddStudent(student); } catch (Exception ex) { var baseException = ex.GetBaseException(); var messageJson = JsonConvert.SerializeObject(message); var error = $"Error Message: '{baseException.Message}'; Stack Trace: '{baseException.StackTrace}'; Queue Message: {messageJson}"; await logger.WriteAsync(error); } await Console.Out.WriteAsync($"Completed processsing request for user: '******'"); }
public IActionResult Update(long id, [FromBody] Student updateStudent) { var request = new UpdateStudentMessage(Guid.NewGuid(), id, updateStudent); var reply = _bus.SendRequest <UpdateStudentMessage, UpdateStudentReplyMessage>("ClassroomApi_Consumer", request); return(new AcceptedResult()); }
private void UpdateStudentMessageReceived(UpdateStudentMessage obj) { var student = obj.StudentListModel ?? throw new ArgumentException(); var oldStudent = Students.First(s => s.Id == student.Id); var studentIndex = Students.IndexOf(oldStudent); Students[studentIndex] = student; }
public void GivenUpdatingStudent_WhenPutting_ThenCorrespondingStudentIsUpdated() { // Arrange var testStudent = new Student("OliCreationTest", "test") { Id = 1 }; var updatedStudent = new Student("override", "override"); UpdateStudentMessage request = null; UpdateStudentReplyMessage reply = null; var queryCountWrapper = new Mock <IQueryCountWrapper>(); queryCountWrapper.SetupGet(qcw => qcw.QueryCount).Returns(0); var bus = new Mock <IBus>(MockBehavior.Strict); bus .Setup(b => b.SendRequest <UpdateStudentMessage, UpdateStudentReplyMessage> (It.IsAny <string>(), It.IsAny <UpdateStudentMessage>(), null, It.IsAny <int>())) .Returns <string, UpdateStudentMessage, Dictionary <string, string>, int>( (endpoint, message, headers, timeout) => { request = message; reply = new UpdateStudentReplyMessage(message.CorrelationId); return(reply); }); var claimsHelper = new Mock <IClaimsHelper>(MockBehavior.Strict); var controller = new StudentController(bus.Object, claimsHelper.Object, queryCountWrapper.Object); // Act var result = controller.Update(1, updatedStudent); var okObjectResult = result as AcceptedResult; // Assert Assert.NotNull(okObjectResult); }
[Fact] // TODO public void GivenUpdateStudentMessage_WhenCallingUpgradeStudentHandler_ThenCorrespondingReplyIsSend() { // Arrange var repositry = new Mock <ISqlRepository <IStudent> >(MockBehavior.Strict); var updatedStudent = new Student("test1Updated", "1Updated"); repositry.Setup(s => s.UpdateStudent(updatedStudent)); repositry.Setup(s => s.Read(1)).Returns(updatedStudent); var claimsHelper = new Mock <IClaimsHelper>(MockBehavior.Strict); claimsHelper.Setup(h => h.GetClaims()).Returns(new Claims() { UserClaims = new UserClaim() { Username = "******" } }); var context = new Mock <IConsumeContext>(MockBehavior.Strict); context.Setup(c => c.Reply(It.IsAny <UpdateStudentReplyMessage>())); var handler = new SqlUpdateStudentHandler(repositry.Object, claimsHelper.Object) { Context = context.Object }; UpdateStudentMessage request = new UpdateStudentMessage(Guid.NewGuid(), 1, updatedStudent); UpdateStudentReplyMessage reply = null; // Act handler.Execute(request); // Assert context.Verify(c => c.Reply(It.IsAny <UpdateStudentReplyMessage>()), Times.Once); }
public Task Put(Guid id, SaveStudentViewModel model) { var message = new UpdateStudentMessage(id, model.FirstName, model.LastName); return(_bus.PublishAsync(message)); }