示例#1
0
        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);
        }
示例#2
0
        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);
 }