示例#1
0
        public object Validate([FromQuery] string validateArr)
        {
            var Parameters = JsonConvert.DeserializeObject <List <ParameterForValidate> >(validateArr);

            List <object> parametersCorrect = new List <object>();
            bool          resultVerification;
            string        message;

            foreach (var parameter in Parameters)
            {
                if (StaticData.CurrentSystems.ParametersWithEnter.TryGetValue(parameter.parameterName, out ParameterWithEnter parameterWithEnter))
                {
                    parameterWithEnter.Value = parameter.value;
                    resultVerification       = parameterWithEnter.Verification(out message);

                    if (!resultVerification)
                    {
                        QueryResponse.AddNegativeMessage(message);
                    }

                    parametersCorrect.Add(new
                    {
                        parameterName = parameter.parameterName.GetName(),
                        Correct       = resultVerification
                    });
                }
            }

            QueryResponse.Add("parametersCorrect", parametersCorrect);
            return(QueryResponse.ToResult());
        }
示例#2
0
        public object SaveSystemToFile([FromQuery] string fileName)
        {
            if (string.IsNullOrEmpty(fileName))
            {
                QueryResponse.AddNegativeMessage("Имя файла не указано");
                return(QueryResponse.ToResult());
            }

            string filePath = Path.ChangeExtension(fileName, ".csv");

            MemoryStream memory = new MemoryStream();

            using (StreamWriter streamWriter = new StreamWriter(memory, Encoding.UTF8))
            {
                using (CsvWriter csvWriter = new CsvWriter(streamWriter, CultureInfo.CurrentCulture))
                {
                    csvWriter.Configuration.Delimiter = ";";

                    csvWriter.WriteRecords(StaticData.CurrentSystems.ParametersWithEnter.Values);
                }
            }

            StaticData.CurrentSystems.Name = Path.GetFileNameWithoutExtension(filePath);
            return(File(memory.ToArray(), MimeTypesMap.GetMimeType(filePath), filePath));
        }
        public object ValidateRestrictionsBeforeSave()
        {
            if (ParameterUniversal.GetRestrictions().Count < 1)
            {
                QueryResponse.AddNegativeMessage("Ограничения для сохранения не добавлены");
            }

            return(QueryResponse.ToResult());
        }
示例#4
0
        public object ValidateSystemBeforeSave()
        {
            if (!StaticData.CurrentSystems.U.Value.HasValue)
            {
                QueryResponse.AddNegativeMessage("Невозможно сохранить систему т.к. данные некорректны");
            }

            return(QueryResponse.ToResult());
        }
        public object AddRestriction(string parameter = null, string condition = null, string value = null)
        {
            ConditionType conditionValue = ConditionType.NoCorrect;
            double        Value          = 0;

            if (string.IsNullOrEmpty(value))
            {
                QueryResponse.AddNegativeMessage("Значение ограничения не указано");
            }
            else
            {
                if (!double.TryParse(value, out Value))
                {
                    QueryResponse.AddNegativeMessage(String.Format("Указанное значение \"{0}\" не является числом", value));
                }
                else if (!(Value > 0))
                {
                    QueryResponse.AddNegativeMessage("Значение ограничения должно быть > 0");
                }
            }

            if (string.IsNullOrEmpty(condition))
            {
                QueryResponse.AddNegativeMessage("Условие для ограничения не указано");
            }
            else
            {
                HelperEnum.TryGetValue <ConditionType>(condition, out conditionValue);

                if (HelperEnum.IsDefault(conditionValue))
                {
                    QueryResponse.AddNegativeMessage(String.Format("Условие типа \"{0}\" не найдено", condition));
                }
            }

            if (string.IsNullOrEmpty(parameter))
            {
                QueryResponse.AddNegativeMessage("Параметр для ограничения не указан");
            }
            else
            {
                var result = ParameterUniversal.AddToRestriction(parameter, conditionValue, Value, QueryResponse.IsSuccess, out bool correct);

                if (QueryResponse.IsSuccess)
                {
                    QueryResponse.Add(result);
                }
                else if (!correct)
                {
                    QueryResponse.AddNegativeMessage(String.Format("Параметр с именем \"{0}\" не найден", parameter));
                }
            }

            return(QueryResponse.ToResult());
        }
示例#6
0
        public object LoadSystemFromFile([FromQuery] IFormFile file)
        {
            if ((file == null) || (string.IsNullOrEmpty(file.FileName)))
            {
                QueryResponse.AddNegativeMessage("Файл не выбран");
            }

            if (QueryResponse.IsSuccess)
            {
                using (StreamReader streamReader = new StreamReader(file.OpenReadStream()))
                {
                    using (CsvReader csvReader = new CsvReader(streamReader, CultureInfo.InvariantCulture))
                    {
                        csvReader.Configuration.Delimiter = ";";
                        try
                        {
                            List <ParameterWithEnter> parametersWithEnter = csvReader.GetRecords <ParameterWithEnter>().ToList();
                            string nameSystem = Path.GetFileNameWithoutExtension(file.FileName);
                            if (parametersWithEnter.Count != HelperEnum.GetValuesWithoutDefault <NameParameterWithEnter>().Count)
                            {
                                QueryResponse.AddNegativeMessage(String.Format("Файл {0} не корректен, выберите файл, сохраненный системой", file.FileName));
                            }
                            else if (StaticData.Systems.Keys.Contains(nameSystem))
                            {
                                QueryResponse.AddNegativeMessage(String.Format("Система с именем {0} уже была добавлена", nameSystem));
                            }
                            else
                            {
                                SystemForAnalys systemForAnalys = new SystemForAnalys(nameSystem);
                                foreach (var parameterWithEnter in parametersWithEnter)
                                {
                                    systemForAnalys.ParametersWithEnter[parameterWithEnter.TypeParameter].Value = parameterWithEnter.Value;
                                }
                                systemForAnalys.SetAsCorrect();
                                StaticData.Systems.Add(nameSystem, systemForAnalys);
                            }
                        }
                        catch (Exception ex)
                        {
                            QueryResponse.AddNegativeMessage(String.Format("Файл {0} не корректен, выберите файл, сохраненный системой", file.FileName));
                        }
                    }
                }
            }


            return(QueryResponse.ToResult());
        }
        public object AddRestrictionsFromFile([FromQuery] IFormFile file)
        {
            if ((file == null) || (string.IsNullOrEmpty(file.FileName)))
            {
                QueryResponse.AddNegativeMessage("Файл не выбран.");
            }

            if (QueryResponse.IsSuccess)
            {
                if (!RestrictionsFromFile(file, out List <string> message))
                {
                    QueryResponse.AddNegativeMessages(message);
                }
            }
            return(QueryResponse.ToResult());
        }
示例#8
0
        public object DeleteSystem([FromQuery] string nameSystem)
        {
            if (string.IsNullOrEmpty(nameSystem))
            {
                QueryResponse.AddNegativeMessage("Система для удаления не указана");
            }
            else if (!StaticData.Systems.Keys.Contains(nameSystem))
            {
                QueryResponse.AddNegativeMessage($"Невозможно удалить систему. Система  с именем \"{nameSystem}\" не найдена");
            }
            else
            {
                StaticData.Systems.Remove(nameSystem);
            }


            return(QueryResponse.ToResult());
        }
示例#9
0
        public object LoadSystemFromFile([FromQuery] IFormFile file)
        {
            if ((file == null) || (string.IsNullOrEmpty(file.FileName)))
            {
                QueryResponse.AddNegativeMessage("Файл не выбран");
            }

            if (QueryResponse.IsSuccess)
            {
                //bool resultVerification;
                //string message;
                //List<string> messages = new List<string>();
                using (StreamReader streamReader = new StreamReader(file.OpenReadStream()))
                {
                    using (CsvReader csvReader = new CsvReader(streamReader, CultureInfo.InvariantCulture))
                    {
                        csvReader.Configuration.Delimiter = ";";
                        try
                        {
                            List <ParameterWithEnter> parametersWithEnter = csvReader.GetRecords <ParameterWithEnter>().ToList();
                            foreach (var parameterWithEnter in parametersWithEnter)
                            {
                                StaticData.CurrentSystems.ParametersWithEnter[parameterWithEnter.TypeParameter].Value = parameterWithEnter.Value;
                                //resultVerification = StaticData.CurrentSystems.ParametersWithEnter[parameterWithEnter.TypeParameter].Verification(out message);
                                //if (!resultVerification)
                                //    messages.Add(message);
                            }
                        }
                        catch (Exception ex)
                        {
                            QueryResponse.AddNegativeMessage(String.Format("Файл {0} не корректен, выберите файл, сохраненный системой", file.FileName));
                        }
                    }
                }
                //QueryResponse.AddRangeErrorWithIfNotEmpty(messages);
            }
            StaticData.CurrentSystems.SetAsCorrect();

            return(QueryResponse.ToResult());
        }
示例#10
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);
        }
        public object DeleteRestriction([FromQuery] string restrictionName = null)
        {
            if (string.IsNullOrEmpty(restrictionName))
            {
                QueryResponse.AddNegativeMessage("Ограничение не указано");
            }
            else
            {
                bool contains = ParameterUniversal.DeleteFromRestrictions(restrictionName, out bool correct);

                if (!correct)
                {
                    QueryResponse.AddNegativeMessage(String.Format("Ограничение с именем \"{0}\" не найдено", restrictionName));
                }

                if (!contains)
                {
                    QueryResponse.AddNegativeMessage("Ограничение для данного параметра не найдено");
                }
            }

            return(QueryResponse.ToResult());
        }
示例#12
0
        private ParameterForCalculationDiagram ValidateDiagram(string queryString)
        {
            ParameterForCalculationDiagram parameterForCalculationDiagram = null;

            if (string.IsNullOrEmpty(queryString))
            {
                QueryResponse.AddNegativeMessage("Параметры не указаны");
            }
            else
            {
                parameterForCalculationDiagram = JsonConvert.DeserializeObject <ParameterForCalculationDiagram>(queryString);

                if (parameterForCalculationDiagram.namesSystems.Count < 1)
                {
                    QueryResponse.AddNegativeMessage("Для построения диаграммы необходимо выбрать одну или несколько систем");
                }
                if (string.IsNullOrWhiteSpace(parameterForCalculationDiagram.parameterName))
                {
                    QueryResponse.AddNegativeMessage("Для построения диаграммы необходимо выбрать параметр");
                }
            }

            return(parameterForCalculationDiagram);
        }