private ParameterForCalculationChart ValidateChart(string queryString) { ParameterForCalculationChart parameterForCalculationChart = null; if (string.IsNullOrEmpty(queryString)) { QueryResponse.AddNegativeMessage("Параметры не указаны"); } else { parameterForCalculationChart = JsonConvert.DeserializeObject <ParameterForCalculationChart>(queryString); if (parameterForCalculationChart.namesSystems.Count < 1) { QueryResponse.AddNegativeMessage("Для построения графика необходимо выбрать одну или несколько систем"); } if (string.IsNullOrWhiteSpace(parameterForCalculationChart.parameterName)) { QueryResponse.AddNegativeMessage("Для построения графика необходимо выбрать параметр"); } if (!parameterForCalculationChart.From.HasValue) { QueryResponse.AddNegativeMessage("Для построения графика необходимо указать начальное значение параметра"); } if (!parameterForCalculationChart.To.HasValue) { QueryResponse.AddNegativeMessage("Для построения графика необходимо указать конечное значение параметра"); } if (!parameterForCalculationChart.CountDote.HasValue) { QueryResponse.AddNegativeMessage("Для построения графика необходимо указать количество точек"); } } return(parameterForCalculationChart); }
//public object GetCalculationsForChart(ParameterForCalculationChart parameterForCalculationChart) //{ // List<object> values = new List<object>(); // string parameterName = parameterForCalculationChart.parameterName; // double? parameterValue; // double step = (parameterForCalculationChart.To.Value - parameterForCalculationChart.From.Value) / parameterForCalculationChart.CountDote.Value; // double CurentValue = parameterForCalculationChart.From.Value - step; // Enum.TryParse(parameterName, out NameParameterWithEnter parameterWithEnter); // parameterValue = ParametersWithEnter[parameterWithEnter].Value; // for (int i = 0; i < parameterForCalculationChart.CountDote.Value; i++) // { // CurentValue += step; // ParametersWithEnter[parameterWithEnter].Value = CurentValue; // values.Add(new // { // x = CurentValue, // y = U.Value.Value // }); // } // ParametersWithEnter[parameterWithEnter].Value = parameterValue; // return new // { // values = values, // nameSystem = Name // }; //} public ChartCalculation GetCalculationsForChart(ParameterForCalculationChart parameterForCalculationChart) { List <Coords> values = new List <Coords>(); string parameterName = parameterForCalculationChart.parameterName; double? parameterValue; double step = (parameterForCalculationChart.To.Value - parameterForCalculationChart.From.Value) / parameterForCalculationChart.CountDote.Value; double CurentValue = parameterForCalculationChart.From.Value - step; Enum.TryParse(parameterName, out NameParameterWithEnter parameterWithEnter); parameterValue = ParametersWithEnter[parameterWithEnter].Value; for (int i = 0; i < parameterForCalculationChart.CountDote.Value; i++) { CurentValue += step; ParametersWithEnter[parameterWithEnter].Value = CurentValue; values.Add(new Coords(CurentValue, U.Value.Value)); } ParametersWithEnter[parameterWithEnter].Value = parameterValue; return(new ChartCalculation(values, Name)); }
public object GetCalculationForChart([FromQuery] string queryString) { ParameterForCalculationChart parameterForCalculationChart = ValidateChart(queryString); if (QueryResponse.IsSuccess) { ChartCalculationResult chartCalculationResult = new ChartCalculationResult(); chartCalculationResult.calculations = new List <ChartCalculation>(); foreach (var nameSystem in parameterForCalculationChart.namesSystems) { chartCalculationResult.calculations.Add(StaticData.Systems[nameSystem].GetCalculationsForChart(parameterForCalculationChart)); } chartCalculationResult.parameterNameX = StaticData.CurrentSystems.GetParameterDesignation(parameterForCalculationChart.parameterName); chartCalculationResult.parameterNameY = StaticData.CurrentSystems.GetParameterDesignation("U"); StaticData.ChartCalculation = chartCalculationResult; QueryResponse.Add("ParameterNameX", chartCalculationResult.parameterNameX); QueryResponse.Add("ParameterNameY", chartCalculationResult.parameterNameY); QueryResponse.Add("Calculations", chartCalculationResult.calculations.Select(x => x.ToObject())); } return(QueryResponse.ToResult()); }
public object ValidateChartBeforeSave([FromQuery] string queryString) { ParameterForCalculationChart parameterForCalculationChart = ValidateChart(queryString); return(QueryResponse.ToResult()); }