public async Task FindAll_InvalidParam_WeGetBadRequestResponse( int pageNumber, int banlistId, string archetypeName, int minNumberOfGames, string statisticsFromDate, string statisticsToDate) { var queryParamsDto = new DecklistBrowserQueryParametersDTO() { PageNumber = pageNumber, BanlistId = banlistId, ArchetypeName = archetypeName, MinNumberOfGames = minNumberOfGames, StatisticsFromDate = statisticsFromDate, StatisticsToDate = statisticsToDate }; _decklistBrowserQueryParamsValidator .Setup(x => x.IsValid(queryParamsDto)) .Returns(false); _initController(); var response = await _decklistController.FindAll(queryParamsDto); Assert.IsTrue(response is BadRequestObjectResult || response is BadRequestResult); }
public async Task <IActionResult> FindAll([FromQuery] DecklistBrowserQueryParametersDTO queryParams) { if (!_decklistBrowserQueryParamsValidator.IsValid(queryParams)) { return(BadRequest("Invalid params. Please report it to administrator.")); } DateTime?statisticsFrom = null; DateTime?statisticsTo = null; if (!string.IsNullOrEmpty(queryParams.StatisticsFromDate)) { statisticsFrom = DateTime .ParseExact( queryParams.StatisticsFromDate, DateFormat.yyyy_MM_dd, CultureInfo.InvariantCulture); } if (!string.IsNullOrEmpty(queryParams.StatisticsToDate)) { statisticsTo = DateTime .ParseExact( queryParams.StatisticsToDate, DateFormat.yyyy_MM_dd, CultureInfo.InvariantCulture); } var decklists = await _decklistService.FindAll( minNumberOfGames : queryParams.MinNumberOfGames, banlistId : queryParams.BanlistId, archetypeName : queryParams.ArchetypeName, statisticsFrom : statisticsFrom, statisticsTo : statisticsTo, orderByDescendingByNumberOfGames : queryParams.OrderByDescendingByNumberOfGames, wantedCardsInDeck : queryParams.WantedCardsInDeck); int numberOfResultsPerPage = _numberOfResultsHelper.GetNumberOfResultsPerPage(queryParams.NumberOfResults); var numberOfPages = Convert.ToInt32( Math.Ceiling( ((double)(decklists.Count()) / (double)(numberOfResultsPerPage)) ) ); var decklistsToActualPage = decklists .Skip(numberOfResultsPerPage * (queryParams.PageNumber - 1)) .Take(numberOfResultsPerPage) .ToList(); var decklistDtos = _decklistToDtoConverter.Convert( decklistsToActualPage, statisticsFrom, statisticsTo); return(new JsonResult(new DecklistBrowserResultsDTO(numberOfPages, decklistDtos))); }
/// <inheritdoc /> public bool IsValid(DecklistBrowserQueryParametersDTO queryParams) { return(IsValidPageNumber(queryParams) && IsValidBanlistId(queryParams) && IsValidArchetypeName(queryParams) && IsValidMinNumberOfGames(queryParams) && IsValidStatisticsFromDate(queryParams) && IsValidStatisticsToDate(queryParams) && IsValidNumberOfResults(queryParams)); }
public void IsValid_ValidParams_ReturnsTrue( string archetypeName, int banlistId, int minNumberOfGames, int pageNumber, string statisticsFromDate, string statisticsToDate, int numberOfResults = -1) { var dto = new DecklistBrowserQueryParametersDTO() { ArchetypeName = archetypeName, BanlistId = banlistId, MinNumberOfGames = minNumberOfGames, PageNumber = pageNumber, StatisticsFromDate = statisticsFromDate, StatisticsToDate = statisticsToDate }; Assert.IsTrue(_validator.IsValid(dto)); }
/// <inheritdoc /> public bool IsValidStatisticsToDate(DecklistBrowserQueryParametersDTO queryParams) { return(_dateValidator .IsValidFormat(queryParams.StatisticsToDate, DateFormat.yyyy_MM_dd) || queryParams.StatisticsToDate == ""); }
/// <inheritdoc /> public bool IsValidMinNumberOfGames(DecklistBrowserQueryParametersDTO queryParams) { return(queryParams.MinNumberOfGames >= 1); }
/// <inheritdoc /> public bool IsValidArchetypeName(DecklistBrowserQueryParametersDTO queryParams) { return(true); }
/// <inheritdoc /> public bool IsValidBanlistId(DecklistBrowserQueryParametersDTO queryParams) { return(queryParams.BanlistId >= 1 || queryParams.BanlistId == -1); }
/// <inheritdoc /> public bool IsValidPageNumber(DecklistBrowserQueryParametersDTO queryParams) { return(queryParams.PageNumber >= 1); }
/// <inheritdoc /> public bool IsValidNumberOfResults(DecklistBrowserQueryParametersDTO queryParams) { return(queryParams.NumberOfResults > 0 || queryParams.NumberOfResults == -1); }