Exemplo n.º 1
0
        public async Task <CommandReturn> GetHistorialRates(GetHistorialRatesCommand command)
        {
            string methodName = nameof(GetHistorialRates);

            if (!command.IsValid())
            {
                var errors = command.Errors();
                _logger.Error(errors, methodName);

                return(new CommandReturn(false, errors, ""));
            }

            try
            {
                var objList        = new List <object>();
                var actualDate     = DateTime.Now;
                var monthsQuantity = ((actualDate.Year - command.InitialDate.Year) * 12) + actualDate.Month - command.InitialDate.Month;

                await AddCoins(command.CoinSymbol, command.InitialDate, objList, monthsQuantity);

                CoinLoreResponse responseApiObj = await GetCoinRecord(command.CoinSymbol, actualDate);

                AddCoin(command.CoinSymbol, objList, responseApiObj);


                _logger.Info(objList, methodName);
                return(new CommandReturn(true, "Consulta realizada com sucesso!", objList));
            }
            catch (Exception ex)
            {
                _logger.Error(ex, methodName);
                return(new CommandReturn(false, "Erro na consulta, favor tentar novamente"));
            }
        }
Exemplo n.º 2
0
        public async Task <IActionResult> ReturnHistoricalRates([FromQuery] string coinSymbol, [FromQuery] DateTime initialDate)
        {
            var command       = new GetHistorialRatesCommand(coinSymbol, initialDate);
            var commandReturn = await _coinService.GetHistorialRates(command);

            return(commandReturn.Success ? Ok(commandReturn) : BadRequest(commandReturn));
        }
Exemplo n.º 3
0
        public async Task Must_Return_Error_In_GetHistorialRates_When_Informing_Wrong_parameters()
        {
            //Arrange
            var command = new GetHistorialRatesCommand(It.IsAny <string>(), It.IsAny <DateTime>());
            var service = new CoinService(_apiSetup.Object, _client.Object, _logger.Object);

            //Act
            var commandReturn = await service.GetHistorialRates(command);

            //Assert
            Assert.NotNull(commandReturn);
            Assert.False(commandReturn.Success);
        }
Exemplo n.º 4
0
        public async Task Must_Return_Success_In_GetHistorialRates_When_Informing_Ok_parameters()
        {
            //Arrange
            var param = new
            {
                fisrtCoin   = "BTC",
                initialDate = DateTime.Now
            };

            var command = new GetHistorialRatesCommand(param.fisrtCoin, param.initialDate);
            var service = new CoinService(_apiSetup.Object, _client.Object, _logger.Object);

            _apiSetup.Setup(x => x.GetCoinLoreApiUrl()).Returns("http://api.coinlayer.com/");
            _apiSetup.Setup(x => x.GetCoinLoreKey()).Returns("db185d73e2bc10752d0ea3c98a9565fc");

            //Act
            var commandReturn = await service.GetHistorialRates(command);

            //Assert
            Assert.NotNull(commandReturn);
            Assert.True(commandReturn.Success);
        }