Example #1
0
 public async Task UpdateAsync(PublicContractKLine publicContractKLine)
 {
     await _context.PublicContractKLines.ReplaceOneAsync(
         doc => doc.Id == publicContractKLine.Id,
         publicContractKLine,
         new UpdateOptions { IsUpsert = true });
 }
Example #2
0
        public async Task <ActionResult> RequestKLine()
        {
            try
            {
                var requestModel = new KLineRequestModel
                {
                    instrument_id = "BTC-USD-200320",
                    start         = "2020-01-01T00:00:00Z",
                    end           = "2020-03-19T00:00:00Z",
                    granularity   = "900"
                };

                var url      = _oKEXSettings.BaseUrl + string.Format(DeliveryContractUrl.KLineUrl, requestModel.instrument_id, requestModel.start, requestModel.end, requestModel.granularity);
                var response = await _iOKEXHttpClient.GetStringAsync(url);

                //var result = JsonConvert.DeserializeObject<ArrayList>(response);
                if (response[0] == '[')
                {
                    var result = JArray.Parse(response);

                    if (result.Count > 0)
                    {
                        var list = new List <PublicContractKLine>();
                        foreach (var item in result)
                        {
                            var model = new PublicContractKLine();
                            model.instrument_id = requestModel.instrument_id;
                            model.start         = requestModel.start;
                            model.end           = requestModel.end;
                            model.granularity   = requestModel.granularity;

                            model.timestamp       = item[0].ToString();
                            model.open            = item[1].ToString();
                            model.high            = item[2].ToString();
                            model.low             = item[3].ToString();
                            model.close           = item[4].ToString();
                            model.volume          = item[5].ToString();
                            model.currency_volume = item[6].ToString();
                            list.Add(model);
                        }
                        await _publicContractKLineRepository.AddRangeAsync(list);
                    }
                }
                else
                {
                    return(Ok(response));
                }

                return(Ok());
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "失败!");
                return(StatusCode(500));
            }
        }
Example #3
0
 public async Task AddAsync(PublicContractKLine publicContractKLine)
 {
     await _context.PublicContractKLines.InsertOneAsync(publicContractKLine);
 }