Ejemplo n.º 1
0
        public async Task <IActionResult> GetProvidersByStandardId(int id, [FromQuery] GetProvidersByStandardRequest request)
        {
            try
            {
                var queryResult = await _mediator.Send(new GetCourseProvidersQuery
                {
                    StandardId        = id,
                    Lat               = request.Lat,
                    Lon               = request.Lon,
                    SortOrder         = (short)request.SortOrder,
                    SectorSubjectArea = request.SectorSubjectArea,
                    Level             = (short)request.Level,
                    ShortlistUserId   = request.ShortlistUserId
                });

                var getCourseProviderResponses = queryResult
                                                 .Providers
                                                 .Select(c => GetProviderDetailResponse.Map(c, (short)request.Age))
                                                 .ToList();

                var response = new GetCourseProvidersListResponse
                {
                    Providers    = getCourseProviderResponses,
                    TotalResults = queryResult.Providers.Count()
                };
                return(Ok(response));
            }
            catch (Exception e)
            {
                _logger.LogError(e, $"Unable to get providers by course id:{id}");
                return(BadRequest());
            }
        }
Ejemplo n.º 2
0
        public async Task Then_Gets_Providers_List_From_Mediator_Using_Params(
            int id,
            GetProvidersByStandardRequest request,
            ProviderLocation provider,
            ProviderLocation provider2,
            [Frozen] Mock <IMediator> mockMediator,
            [Greedy] CoursesController controller)
        {
            request.Age = Age.AllAges;
            provider.AchievementRates.Clear();
            provider.AchievementRates.Add(new NationalAchievementRate
            {
                Age = Domain.Entities.Age.SixteenToEighteen,
                ApprenticeshipLevel = ApprenticeshipLevel.AllLevels
            });
            provider2.AchievementRates.Clear();
            provider2.AchievementRates.Add(new NationalAchievementRate
            {
                Age = Domain.Entities.Age.AllAges,
                ApprenticeshipLevel = ApprenticeshipLevel.AllLevels
            });

            var queryResult = new GetCourseProvidersQueryResponse
            {
                Providers = new List <ProviderLocation> {
                    provider, provider2
                }
            };

            mockMediator
            .Setup(mediator => mediator.Send(
                       It.Is <GetCourseProvidersQuery>(query =>
                                                       query.StandardId == id &&
                                                       query.Lat.Equals(request.Lat) &&
                                                       query.Lon.Equals(request.Lon) &&
                                                       query.SortOrder.Equals((short)request.SortOrder) &&
                                                       query.SectorSubjectArea.Equals(request.SectorSubjectArea) &&
                                                       query.Level.Equals((short)request.Level) &&
                                                       query.ShortlistUserId.Equals(request.ShortlistUserId)
                                                       ),
                       It.IsAny <CancellationToken>()))
            .ReturnsAsync(queryResult);

            var controllerResult = await controller.GetProvidersByStandardId(id, request) as ObjectResult;

            var model = controllerResult.Value as GetCourseProvidersListResponse;

            controllerResult.StatusCode.Should().Be((int)HttpStatusCode.OK);
            model.Providers.Count().Should().Be(queryResult.Providers.Count());
            model.Providers.Sum(c => c.AchievementRates.Count).Should().Be(1);
            model.TotalResults.Should().Be(queryResult.Providers.Count());
        }
Ejemplo n.º 3
0
        public async Task And_Exception_Then_Returns_Bad_Request(
            int id,
            GetProvidersByStandardRequest request,
            [Frozen] Mock <IMediator> mockMediator,
            [Greedy] CoursesController controller)
        {
            mockMediator
            .Setup(mediator => mediator.Send(
                       It.IsAny <GetCourseProvidersQuery>(),
                       It.IsAny <CancellationToken>()))
            .Throws <InvalidOperationException>();

            var controllerResult = await controller.GetProvidersByStandardId(id, request) as StatusCodeResult;

            controllerResult.StatusCode.Should().Be((int)HttpStatusCode.BadRequest);
        }