public async Task <IActionResult> Get([FromQuery] GrandPrixesResourceParameters grandPrixesResourceParameters) { _logger.LogInformation("API ENTRY: Inside get all grand prixes API call."); var grandPrixes = await _grandPrixesService.GetGrandPrixes(grandPrixesResourceParameters); return(Ok(grandPrixes)); }
public async Task <IEnumerable <GrandPrixDto> > GetGrandPrixes(GrandPrixesResourceParameters grandPrixesResourceParameters) { try { _logger.LogInformation(LoggingEvents.ListItems, "Get all Grands Prix with filter", null); if (grandPrixesResourceParameters == null) { throw new ArgumentNullException(nameof(grandPrixesResourceParameters)); } if (string.IsNullOrWhiteSpace(grandPrixesResourceParameters.Country) && string.IsNullOrWhiteSpace(grandPrixesResourceParameters.Year)) { return(await GetGrandPrixes()); } IEnumerable <GrandPrix> grandPrixes = Enumerable.Empty <GrandPrix>(); TextInfo textInfo = new CultureInfo("en-GB", false).TextInfo; if (!string.IsNullOrWhiteSpace(grandPrixesResourceParameters.Country)) { _logger.LogInformation(LoggingEvents.ListItems, "Get all Grands Prix with country filter", null); var countryFilter = grandPrixesResourceParameters.Country.Trim(); grandPrixes = await _grandPrixesRepository.GetByCountry(textInfo.ToTitleCase(countryFilter)); } if (!string.IsNullOrWhiteSpace(grandPrixesResourceParameters.Year)) { _logger.LogInformation(LoggingEvents.ListItems, "Get all Grands Prix with year filter", null); var yearFilter = grandPrixesResourceParameters.Year.Trim(); grandPrixes = await _grandPrixesRepository.GetByYear(Int32.Parse(yearFilter)); } if (grandPrixes.Count() == 0) { _logger.LogInformation(LoggingEvents.GetItem, "No Grands Prixes found", null); return(Enumerable.Empty <GrandPrixDto>()); } return(await GetGrandPrixDrivers(grandPrixes)); } catch (Exception ex) { _logger.LogError(LoggingEvents.ListItems, ex, ex.Message, null); throw; } }
public async void GrandPrixesController_GetAll_Valid() { // Arrange var mockGrandPrix = MockGrandPrixData.GetAllModelListAsync(); GrandPrixesResourceParameters parameters = new GrandPrixesResourceParameters { }; var mockGrandPrixService = new MockGrandPrixService().MockGetAll(mockGrandPrix); var mockLogging = new Mock <ILogger <GrandPrixesController> >(); var controller = new GrandPrixesController(mockGrandPrixService.Object, mockLogging.Object); // Act var result = await controller.Get(parameters); // Assert Assert.IsAssignableFrom <IActionResult>(result); mockGrandPrixService.VerifyGetAll(Times.Once()); }
public async void GrandPrixesController_GetAll_Empty() { // Arrange var mockGrandPrix = MockGrandPrixData.GetEmptyModelListAsync(); GrandPrixesResourceParameters parameters = new GrandPrixesResourceParameters { }; var mockGrandPrixService = new MockGrandPrixService().MockGetAll(mockGrandPrix); var mockLogging = new Mock <ILogger <GrandPrixesController> >(); var controller = new GrandPrixesController(mockGrandPrixService.Object, mockLogging.Object); // Act var result = await controller.Get(parameters); // Assert var okResult = result.Should().BeOfType <OkObjectResult>().Subject; var GrandPrix = okResult.Value.Should().BeAssignableTo <IEnumerable <GrandPrixDto> >().Subject; GrandPrix.Count().Should().Be(0); mockGrandPrixService.VerifyGetAll(Times.Once()); }