public IActionResult GetListCourse([FromServices] ISignupCourseApplication _signupApp,
                                    [FromServices] ServiceBusConfiguration serviceBusConfig,
                                    [FromServices] TelemetryClient telemetry)
 {
     try
     {
         var result = _signupApp.GetListCourse()
                      .Select(x => new { x.Id, x.Description, x.TeacherId, x.MaximumAge, x.MinimumAge, x.AverageAge, x.Students.Count });
         return(Ok(result));
     }
     catch (Exception)
     {
         return(BadRequest("Probblem to process this request."));
     }
 }
 public IActionResult GetDetailCourse([FromServices] ISignupCourseApplication _signupApp,
                                      [FromServices] ServiceBusConfiguration serviceBusConfig,
                                      [FromServices] TelemetryClient telemetry,
                                      Guid id)
 {
     try
     {
         var result = _signupApp.GetDetailCourse(id);
         return(Ok(result));
     }
     catch (Exception)
     {
         return(BadRequest("Probblem to process this request."));
     }
 }
        public IActionResult Post([FromServices] ISignupCourseApplication _signupApp, [FromServices] TelemetryClient telemetry, Student student)
        {
            try
            {
                if (student.Id == Guid.Empty)
                {
                    student.Id = Guid.NewGuid();
                }

                var returnMessage = _signupApp.SigningupCourse(student);
                return(Ok(returnMessage ? successfull : fullCourse));
            }
            catch (Exception ex)
            {
                telemetry.TrackException(ex);
                return(BadRequest("Probblem to process this request."));
            }
        }
        public async Task <IActionResult> PostAsync([FromServices] ISignupCourseApplication _signupApp,
                                                    [FromServices] ServiceBusConfiguration serviceBusConfig,
                                                    [FromServices] TelemetryClient telemetry,
                                                    Student student)
        {
            try
            {
                if (student.Id == Guid.Empty)
                {
                    student.Id = Guid.NewGuid();
                }

                var returnMessage = _signupApp.SigningupCourseAsync(student, serviceBusConfig).GetAwaiter().GetResult();
                return(Ok(returnMessage ? successfull : fullCourse));
            }
            catch (Exception ex)
            {
                telemetry.TrackException(ex);

                return(BadRequest("Probblem to process this request."));
            }
        }
 public IActionResult Get([FromServices] ISignupCourseApplication _signupApp, Guid id)
 {
     return(Ok(_signupApp.CourseIsAvailable(id)));
 }