public string ExportChartAsTable(ChartDataRequest dataRequest) { _dataPresenter.DataRequest = dataRequest; _dataPresenter.InputPoints = _dataProcessor.GetChartData(dataRequest.Begin, dataRequest.End, ConvertCurrencyValuesToCodes(dataRequest.CurrencyValues)); return(_dataPresenter.ExportAsTable()); }
public IActionResult LoadChartData(string json) { ChartDataRequest clientRequest = null; IDictionary <CurrencyCodeEntry, ICollection <ChartCurrencyDataPoint <CurrencyDataEntry> > > points = null; string resultJson = ""; //try //{ clientRequest = JsonConvert.DeserializeObject <ChartDataRequest>(json); if (clientRequest != null) { if (clientRequest.End.Date > DateTime.Now.Date) { throw new ArgumentOutOfRangeException("End date should not be greater than todays date."); } _currencyXplorer.ChartTimePeriod = new ChartTimePeriod(clientRequest.Begin, clientRequest.End); _currencyXplorer.ChartCurrencyCodeStrings = clientRequest.CurrencyValues; _currencyXplorer.RequestChartData(); points = _currencyXplorer.ChartDataPoints; // Minimify all IDictionary <string, List <JsonChartPointData> > lazyPoints = new Dictionary <string, List <JsonChartPointData> >(); foreach (var pair in points) { lazyPoints.Add(pair.Key.Alias, new List <JsonChartPointData>()); foreach (var currencyDataPoint in pair.Value) { // TODO: fix date conversion so that it is based on language. lazyPoints[pair.Key.Alias].Add(new JsonChartPointData() { ActualDate = currencyDataPoint.DataObject.ActualDate.ToString("yyyy.M.dd"), Value = currencyDataPoint.DataObject.Value, Alias = currencyDataPoint.DataObject.DbCurrencyCodeEntry.Alias, Name = currencyDataPoint.DataObject.DbCurrencyCodeEntry.Name }); } } resultJson = JsonConvert.SerializeObject(new { State = "Success", Data = lazyPoints }); } //} //catch (Exception e) //{ // Debug.WriteLine(e.Message); // resultJson = JsonConvert.SerializeObject(new { State = "Failed", Data = e.Message }); //} return(Json(resultJson)); }
public IActionResult ExportAsTable(string json) { ChartDataRequest clientRequest = JsonConvert.DeserializeObject <ChartDataRequest>(json); string status = "OK"; string filePath = ""; if (clientRequest != null) { filePath = _currencyExplorer.ExportChartAsTable(clientRequest); } if (System.IO.File.Exists(filePath) == false) { status = "Fail"; } return(Json(new { Status = status, Path = filePath })); }
public async Task <IActionResult> GetChartData([FromBody] ChartDataRequest model) { if (ModelState.IsValid) { var serviceRequest = _mapper.Map <ChartRequestDto>(model); // ReSharper disable once PossibleInvalidOperationException serviceRequest.UserId = CurrentUser.UserId.Value; var chartDataResult = await _chartService.GetDataAsync(serviceRequest); if (chartDataResult.IsValid) { return(Ok(SmartJsonResult <ChartDataReturnModel> .Success(_mapper.Map <ChartDataReturnModel>(chartDataResult.Result)))); } return(BadRequest(SmartJsonResult.Failure(chartDataResult.ValidationErrors))); } return(BadRequest(SmartJsonResult.Failure(GetModelStateErrors(ModelState)))); }
public async Task <ResponseModel> GetChartData([FromQuery] ChartDataRequest request) { return(await this.mediator.Send(request)); }
private async void RequestChartData() { var testPair = ConfigurationManager.AppSettings["testPair"]; var request = new ChartDataRequest(testPair, DateTime.UtcNow.AddHours(-10), DateTime.UtcNow, CandlestickPeriod.MediaHora); var candles = Enumerable.Empty <ChartDataCandle>(); using (var client = new HttpClient()) { candles = await client.GetAsync <IEnumerable <ChartDataCandle> >(new EndPointConfiguration { Address = publicExUrl }, request); } if (!candles.HasElements()) { return; } Tendencia tendencia = null; var tendencias = new List <Tendencia>(); var candlesTendencia = new List <ChartDataCandle>(); TipoTendencia?ultimoTipoTendencia = null; var variacionesNegativas = new[] { TipoVariacion.BajaEstabilizacion, TipoVariacion.BajaModerada, TipoVariacion.BajaFuerte }; var variacionesPositivas = new[] { TipoVariacion.AlzaEstabilizacion, TipoVariacion.AlzaModerada, TipoVariacion.AlzaFuerte }; foreach (var candle in candles) { var tipoTendenciaActual = TipoTendencia.Estable; if (variacionesNegativas.Contains(candle.TipoVariacion)) { tipoTendenciaActual = TipoTendencia.Baja; } else if (variacionesPositivas.Contains(candle.TipoVariacion)) { tipoTendenciaActual = TipoTendencia.Alza; } if (!ultimoTipoTendencia.HasValue) { tendencia = new Tendencia { Tipo = tipoTendenciaActual } } ; else if (ultimoTipoTendencia.Value != tipoTendenciaActual) { tendencia.Candles = candlesTendencia.OrderBy(ct => ct.DateTime); tendencias.Add(tendencia); tendencia = new Tendencia { Tipo = tipoTendenciaActual }; candlesTendencia = new List <ChartDataCandle>(); } candlesTendencia.Add(candle); ultimoTipoTendencia = tipoTendenciaActual; } tendencia.Candles = candlesTendencia; tendencias.Add(tendencia); var tendenciasResult = tendencias.OrderBy(t => t.Start); }