Exemplo n.º 1
0
        public async Task <IActionResult> UpdateCandlesFromExchange([FromBody] UpdateCandlesFromExchangeCommand command)
        {
            /* if (!ModelState.IsValid)
             * {
             *   return BadRequest(ModelState);
             * }
             */

            try
            {
                DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc);
                var      from       = dtDateTime.AddSeconds(command.From);
                var      to         = dtDateTime.AddSeconds(command.To);

                var candles = await this._exchangeAccessService.GetCandlesData(
                    command.ExchangeId,
                    command.BaseCurrency,
                    command.QuoteCurrency,
                    CandlePeriod.FromName(command.CandlePeriod),
                    from,
                    to);

                var chart = await this._candleChartRepository
                            .GetByCurrencyPairAsync(command.BaseCurrency, command.QuoteCurrency, command.ExchangeId, CandlePeriod.FromName(command.CandlePeriod));

                if (chart == null)
                {
                    throw new KeyNotFoundException();
                }

                foreach (var candle in candles)
                {
                    chart.UpdateCandle(candle.Timestamp, candle.High, candle.Low, candle.Open, candle.Close, candle.Volume);
                }

                await _context.SaveEntitiesAsync();

                return(Ok(chart.CandleChartId));
            }
            catch (Exception ex)
            {
                return(NotFound(ex.Message));
            }
        }
Exemplo n.º 2
0
        public async Task <IActionResult> CreateMarket([FromBody] CreateMarketCommand command)
        {
            try
            {
                var market = await Market.FromAccessService(this._exchangeAccessService, command.ExchangeId, command.BaseCurrency.ToUpper(), command.QuoteCurrency.ToUpper());

                if (market != null)
                {
                    this._marketRepository.Add(market);

                    await _context.SaveEntitiesAsync();
                }

                return(Ok(market.MarketId));
                //return CreatedAtAction("GetMarket", new { marketId = market.MarketId }, market);
            }
            catch (Exception ex)
            {
                return(NotFound(ex.Message));
            }
        }