/// <inheritdoc /> public bool IsValid(ArchetypeBrowserQueryParams queryParams) { return(_isValidPageNumber(queryParams) && _isValidMinNumberOfGames(queryParams) && _isValidNumberOfResults(queryParams) && _isValidStatisticsFromDate(queryParams) && _isValidStatisticsToDate(queryParams) && _isValidArchetypeName(queryParams)); }
public async Task <IActionResult> FindAll([FromQuery] ArchetypeBrowserQueryParams queryParams) { if (!_queryParamsValidator.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 archetypes = await _archetypeService.FindAllQuery( minNumberOfGames : queryParams.MinNumberOfGames, archetypeName : queryParams.ArchetypeName, statisticsFromDate : statisticsFrom, statisticsToDate : statisticsTo, includeCards : false, includeDecks : false, OrderByDescendingByNumberOfGames : queryParams.OrderByDescendingByNumberOfGames ); int numberOfResultsPerPage = _numberOfResultsHelper.GetNumberOfResultsPerPage(queryParams.NumberOfResults); var numberOfPages = Convert.ToInt32( Math.Ceiling( ((double)(archetypes.Count()) / (double)(numberOfResultsPerPage)) ) ); var archetypesToActualPage = archetypes .Skip(numberOfResultsPerPage * (queryParams.PageNumber - 1)) .Take(numberOfResultsPerPage) .ToList(); var dtos = _archetypeToDtoConverter.Convert(archetypesToActualPage, statisticsFrom, statisticsTo); return(Ok(new ArchetypeBrowserResultsDTO(numberOfPages, dtos))); }
public void IsInvalid_IsInvalid_ReturnsFalse( int pageNumber, string archetypeName, int minNumberOfGames, int numberOfResults, string statisticsFromDate, string statisticsToDate ) { var dto = new ArchetypeBrowserQueryParams() { PageNumber = pageNumber, ArchetypeName = archetypeName, MinNumberOfGames = minNumberOfGames, NumberOfResults = numberOfResults, StatisticsFromDate = statisticsFromDate, StatisticsToDate = statisticsToDate }; Assert.IsFalse(_validator.IsValid(dto)); }
private bool _isValidPageNumber(ArchetypeBrowserQueryParams queryParams) { return(queryParams.PageNumber >= 1); }
private bool _isValidMinNumberOfGames(ArchetypeBrowserQueryParams queryParams) { return(queryParams.MinNumberOfGames >= 1); }
private bool _isValidNumberOfResults(ArchetypeBrowserQueryParams queryParams) { return(queryParams.NumberOfResults >= 1 || queryParams.NumberOfResults == -1); }
private bool _isValidStatisticsFromDate(ArchetypeBrowserQueryParams queryParams) { return(queryParams.StatisticsFromDate == "" || _dateValidator.IsValidFormat(queryParams.StatisticsFromDate, DateFormat.yyyy_MM_dd)); }
private bool _isValidArchetypeName(ArchetypeBrowserQueryParams queryParams) { return(true); }