public async Task <GetCurrenciesResponse> GetAllAsync([FromQuery] int skip = 0, [FromQuery] int take = 0)
        {
            skip = Math.Max(0, skip);
            take = take < 0 ? 20 : Math.Min(take, 100);

            // if take == 0 return all rows
            var result = take == 0
                ? await _currenciesService.GetAllAsync()
                : await _currenciesService.GetByPageAsync(skip, take);

            var response = new GetCurrenciesResponse
            {
                Currencies = result.Value
                             .Select(value => _convertService.Convert <Currency, CurrencyContract>(value))
                             .ToList()
            };

            return(response);
        }