コード例 #1
0
        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);
        }
コード例 #2
0
        //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));
        }
コード例 #3
0
        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());
        }
コード例 #4
0
        public object ValidateChartBeforeSave([FromQuery] string queryString)
        {
            ParameterForCalculationChart parameterForCalculationChart = ValidateChart(queryString);

            return(QueryResponse.ToResult());
        }