コード例 #1
0
        private void DrawValue()
        {
            var showList      = new List <IThisWell>();
            var defaultValues = getDefaultValues();

            var sample     = selectionWell.Sample;
            var pollutions = Logic.LogicInstances.PollutionLogic.Find();

            var calc = new Calc_644(sample, obj, PollutionBase_Class.AllResolution.First(x => x.CurtName == "644"));

            var middles = pollutions.Select(x => new MiddleValue(x.CurtName, x.Index)).ToArray();

            foreach (var selectionWell in sample.SelectionWells)
            {
                {
                    var selectionWellViewModel = new SelectionWellViewModel(selectionWell.Well.ShortName, defaultValues.ToArray());

                    foreach (var selectionValue in selectionWell.ValueSelections)
                    {
                        selectionWellViewModel.Values[selectionValue.Pollution.Index].Value = selectionValue.Value;
                    }

                    showList.Add(selectionWellViewModel);
                }

                {
                    var declarationViewModel = new NamedValues("Декларация", defaultValues.ToArray());

                    var declaration = selectionWell.Well.Declaration;

                    foreach (var declarationValue in declaration.DeclarationValues)
                    {
                        declarationViewModel.Values[declarationValue.Pollution.Index] = new NamedValue(declarationValue.Pollution.CurtName, declarationValue.Pollution.GetRounded(declarationValue.To));
                    }

                    showList.Add(declarationViewModel);
                }

                {
                    var selectedValues = new NamedValues("Выбран", defaultValues.ToArray());

                    var values = calc.ValueFromResolution(selectionWell.ValueSelections);

                    foreach (var value in values)
                    {
                        var pollutionIndex = value.Pollution.Index;
                        var resultValue    = value.Pollution.GetRounded(value.Value);

                        selectedValues.Values[pollutionIndex].Value = resultValue;
                    }

                    foreach (var middle in middles)
                    {
                        var pollutionIndex = middle.Index;

                        middles[pollutionIndex].AddValue(selectedValues.Values[pollutionIndex]);
                    }

                    showList.Add(selectedValues);
                }
            }

            {
                var middleValues = new NamedValues("Среднее", middles);

                showList.Add(middleValues);
            }

            dgValues.ItemsSource = showList.ToArray();
        }
コード例 #2
0
        private void DrawValue()
        {
            var showList = new List<IThisWell>();

            var pollutions = Helpers.LogicHelper.PollutionLogic.Find();
            var defaultValues = getDefaultValues();
            var values = pollutions.Select(x => new MiddleValue(x.CurtName)).ToArray();

            {
                var calc = new Calc_644(_values, obj, PollutionBase_Class.AllResolution.First(x => x.CurtName == "644"));

                var sample = selectionWell.Sample;

                foreach (var selectionWell in sample.SelectionWells)
                {
                    {
                        var selectionWellViewModel = new ThisWell(selectionWell, pollutions.Select(x => new SelectionValueInternal(selectionWell, x)).ToArray());

                        foreach (var selectionValue in selectionWell.ValueSelections)
                        {
                            var pollutionIndex = selectionValue.Pollution.Index;

                            selectionWellViewModel.Values[pollutionIndex] = new SelectionValueInternal(selectionValue);
                        }

                        showList.Add(selectionWellViewModel);
                    }

                    {
                        var declaration = selectionWell.Well.Declaration;
                        var declarationViewModel = new ThisCalc("Декларация", pollutions.Select(x => new DeclarationValueInternal(declaration, x)).ToArray());

                        if (declaration != null)
                        {

                            foreach (var declarationValue in declaration.DeclarationValues)
                            {
                                if (declarationValue.PollutionID > 0)
                                {
                                    declarationViewModel.Values[declarationValue.Pollution.Index] = new DeclarationValueInternal(declarationValue);
                                }
                            }
                        }

                        showList.Add(declarationViewModel);
                    }

                    {
                        var selectionViewModel = new ThisCalc("Выбран", defaultValues.ToArray());

                        foreach (var selectionValue in calc.ValueFromResolution(selectionWell.ValueSelections))
                        {
                            var pollutionIndex = selectionValue.Pollution.Index;
                            var value = Math.Round(selectionValue.Value, selectionValue.Pollution.Round);

                            selectionViewModel.Values[pollutionIndex] = new ValueCalc(selectionValue.Pollution.CurtName, value);
                            values[pollutionIndex].Add(value);
                        }

                        showList.Add(selectionViewModel);
                    }
                }
            }

            {
                var middleViewModel = new ThisCalc("Среднее", values);

                showList.Add(middleViewModel);
            }


            dgValues.ItemsSource = showList.ToArray();
        }