public async Task ProcessQueueMessage([ServiceBusTrigger("coursesignup", Connection = "ServiceBus")] string message, ILogger logger) { try { var command = Newtonsoft.Json.JsonConvert.DeserializeObject <CourseSignupCommand>(message); await CommandService.SignupCourse(command); //Email success - Mock data await EmailProvider.SendEmail("*****@*****.**", "Signup success!", "Success"); } catch (Exception ex) { //Log exception and Email failure await EmailProvider.SendEmail("*****@*****.**", "Signup failed!", "Failure"); } }
public async Task <IActionResult> SignupCourse(Guid courseId, [FromBody] SignupCourseRequest request) { try { if (!ModelState.IsValid) { return(StatusCode(StatusCodes.Status400BadRequest)); } var result = await CommandService.SignupCourse(new CourseSignupCommand(courseId, request)); return(Ok(new SignupCourseResponse { Success = true })); } catch (Exception ex) { // To do - Handle exceptions, log it and throw appropriate errors return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message)); } }