public void RemoveHydraulicConditionDoesNotChangeClassEstimatesNoExperts()
        {
            var treeEvent = new TreeEvent();
            var hydraulicConditionToRemove = new HydraulicCondition(1.0, (Probability)0.01, 1, 1);
            var hydraulicCondition2        = new HydraulicCondition(2.0, (Probability)0.001, 1, 1);
            var project = new Project
            {
                EventTrees =
                {
                    new EventTree
                    {
                        MainTreeEvent = treeEvent
                    }
                },
                HydraulicConditions =
                {
                    hydraulicConditionToRemove,
                    hydraulicCondition2,
                }
            };
            var projectManipulationService = new ProjectManipulationService(project);

            Assert.AreEqual(0, treeEvent.ClassesProbabilitySpecification.Count);

            projectManipulationService.RemoveHydraulicCondition(hydraulicConditionToRemove);

            Assert.AreEqual(1, project.HydraulicConditions.Count);
            Assert.AreEqual(hydraulicCondition2, project.HydraulicConditions.First());
            Assert.AreEqual(0, treeEvent.ClassesProbabilitySpecification.Count);
        }
示例#2
0
        internal static HydraulicCondition Read(this HydraulicConditionElementEntity entity, ReadConversionCollector collector)
        {
            if (entity == null)
            {
                throw new ArgumentNullException(nameof(entity));
            }
            if (collector == null)
            {
                throw new ArgumentNullException(nameof(collector));
            }

            if (collector.Contains(entity))
            {
                return(collector.Get(entity));
            }

            FragilityCurveElement curveElement = entity.FragilityCurveElementEntity.Read(collector);
            var condition = new HydraulicCondition
            {
                Probability = curveElement.Probability,
                WaterLevel  = curveElement.WaterLevel,
                WavePeriod  = entity.WavePeriod == null ? double.NaN : (double)entity.WavePeriod,
                WaveHeight  = entity.WaveHeight == null ? double.NaN : (double)entity.WaveHeight
            };

            collector.Collect(entity, condition);
            return(condition);
        }
示例#3
0
        /// <summary>
        /// Существует ли информация по уровню масла для заданного агрегата
        /// </summary>
        /// <param name="con"></param>
        /// <returns></returns>
        private bool ConditionExists(HydraulicCondition con)
        {
            //
            if (Flight == null || Flight.HydraulicConditionCollection == null)
            {
                return(false);
            }

            //
            return(Flight.HydraulicConditionCollection.Any(t => t == con));

            //
        }
示例#4
0
        private void OilConditionControlDeleted(object sender, EventArgs e)
        {
            HydraulicControl   control = (HydraulicControl)sender;
            HydraulicCondition cond    = control.HydraulicCondition;

            if (cond.ItemId > 0 && MessageBox.Show("Do you really want to delete hydraulic condition?", "Deleting confirmation", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
            {
                //если информация о состоянии сохранена в БД
                //и получен положительный ответ на ее удаление
                try
                {
                    GlobalObjects.CasEnvironment.NewKeeper.Delete(cond);
                }
                catch (Exception ex)
                {
                    Program.Provider.Logger.Log("Error while removing data", ex);
                }

                flowLayoutPanelMain.Controls.Remove(control);
                control.Deleted             -= OilConditionControlDeleted;
                control.AfterRemainChanget  -= ItemAfterRemainChanget;
                control.RefuelChanget       -= ItemRefuelChanget;
                control.OnBoardChanget      -= ItemOnBoardChanget;
                control.SpentChanget        -= ItemSpentChanget;
                control.BeforeRemainChanget -= ItemBeforeRemainChanget;
                control.Dispose();
            }
            else if (cond.ItemId <= 0)
            {
                flowLayoutPanelMain.Controls.Remove(control);
                control.Deleted             -= OilConditionControlDeleted;
                control.AfterRemainChanget  -= ItemAfterRemainChanget;
                control.RefuelChanget       -= ItemRefuelChanget;
                control.OnBoardChanget      -= ItemOnBoardChanget;
                control.SpentChanget        -= ItemSpentChanget;
                control.BeforeRemainChanget -= ItemBeforeRemainChanget;
                control.Dispose();
            }

            GetTotalBefore();
            GetTotalRefuel();
            GetTotalOnBoard();
            GetTotalSpent();
            GetTotalAfter();
        }
        public void RemoveHydraulicCondition(HydraulicCondition hydraulicCondition)
        {
            project.HydraulicConditions.Remove(hydraulicCondition);

            foreach (var eventTree in project.EventTrees)
            {
                foreach (var treeEvent in eventTree.MainTreeEvent.GetAllEventsRecursive())
                {
                    foreach (var expert in project.Experts)
                    {
                        var estimatesToRemove = treeEvent.ClassesProbabilitySpecification.Where(e =>
                                                                                                e.Expert == expert && e.HydraulicCondition == hydraulicCondition).ToArray();
                        foreach (var estimation in estimatesToRemove)
                        {
                            treeEvent.ClassesProbabilitySpecification.Remove(estimation);
                        }
                    }
                }
            }
        }
        public void AddHydraulicCondition(HydraulicCondition hydraulicCondition)
        {
            project.HydraulicConditions.Add(hydraulicCondition);

            foreach (var eventTree in project.EventTrees)
            {
                foreach (var treeEvent in eventTree.MainTreeEvent.GetAllEventsRecursive())
                {
                    foreach (var expert in project.Experts)
                    {
                        treeEvent.ClassesProbabilitySpecification.Add(new ExpertClassEstimation
                        {
                            Expert             = expert,
                            HydraulicCondition = hydraulicCondition,
                            AverageEstimation  = ProbabilityClass.None,
                            MaxEstimation      = ProbabilityClass.None,
                            MinEstimation      = ProbabilityClass.None
                        });
                    }
                }
            }
        }
        public void AddHydraulicConditionChangesClassEstimatesWithExperts()
        {
            var treeEvent = new TreeEvent();
            var project   = new Project
            {
                EventTrees = { new EventTree
                               {
                                   MainTreeEvent = treeEvent
                               } },
                Experts =
                {
                    new Expert(),
                    new Expert()
                }
            };
            var projectManipulationService = new ProjectManipulationService(project);

            Assert.AreEqual(0, treeEvent.ClassesProbabilitySpecification.Count);

            var hydraulicCondition = new HydraulicCondition(1.0, (Probability)0.01, 1, 1);

            projectManipulationService.AddHydraulicCondition(hydraulicCondition);

            Assert.AreEqual(1, project.HydraulicConditions.Count);
            Assert.AreEqual(hydraulicCondition, project.HydraulicConditions.First());
            Assert.AreEqual(2, treeEvent.ClassesProbabilitySpecification.Count);
            var firstSpecification = treeEvent.ClassesProbabilitySpecification.First();

            Assert.AreEqual(hydraulicCondition, firstSpecification.HydraulicCondition);
            Assert.Contains(firstSpecification.Expert, project.Experts);

            var secondSpecification = treeEvent.ClassesProbabilitySpecification.Last();

            Assert.AreEqual(hydraulicCondition, secondSpecification.HydraulicCondition);
            Assert.Contains(secondSpecification.Expert, project.Experts);

            Assert.AreNotEqual(firstSpecification.Expert, secondSpecification.Expert);
        }
示例#8
0
        internal static HydraulicConditionElementEntity Create(this HydraulicCondition model, PersistenceRegistry registry)
        {
            if (registry == null)
            {
                throw new ArgumentNullException(nameof(registry));
            }

            if (registry.Contains(model))
            {
                return(registry.Get(model));
            }

            var entity = new HydraulicConditionElementEntity
            {
                FragilityCurveElementEntity = ((FragilityCurveElement)model).Create(registry),
                WaveHeight = model.WaveHeight.ToNaNAsNull(),
                WavePeriod = model.WavePeriod.ToNaNAsNull()
            };

            registry.Register(model, entity);

            return(entity);
        }
 internal void Collect(HydraulicConditionElementEntity entity, HydraulicCondition model)
 {
     Collect(hydraulicConditions, entity, model);
 }
 public HydraulicConditionViewModel(HydraulicCondition condition) : base(condition)
 {
     HydraulicCondition = condition;
 }
示例#11
0
 internal bool Contains(HydraulicCondition model)
 {
     return(ContainsValue(hydraulicConditions, model));
 }
示例#12
0
 internal void Register(HydraulicCondition model, HydraulicConditionElementEntity entity)
 {
     Register(hydraulicConditions, model, entity);
 }
示例#13
0
 public HydraulicConditionElementEntity Get(HydraulicCondition model)
 {
     return(Get(hydraulicConditions, model));
 }
示例#14
0
        public static Project GenerateAsphaltProject()
        {
            var andre = new Expert
            {
                Name         = "Andre van Hoven",
                Email        = "*****@*****.**",
                Expertise    = "Asfalt bekleding",
                Organisation = "Deltares",
                Telephone    = ""
            };
            var erik = new Expert
            {
                Name         = "Erik Vastenburg",
                Email        = "*****@*****.**",
                Expertise    = "Faalpaden, geotechniek",
                Organisation = "HHNK",
                Telephone    = ""
            };
            var roy = new Expert
            {
                Name         = "Roy Mom",
                Email        = "",
                Expertise    = "Bekledingen",
                Organisation = "",
                Telephone    = ""
            };
            var andries = new Expert
            {
                Name         = "Andries Nederpel",
                Email        = "*****@*****.**",
                Expertise    = "",
                Organisation = "HHNK",
                Telephone    = ""
            };
            var dirk = new Expert
            {
                Name         = "Dirk",
                Email        = "",
                Expertise    = "Asfalt",
                Organisation = "HKV",
                Telephone    = ""
            };

            var hydraulicCondition23 = new HydraulicCondition(2.3, (Probability)3.33E-02, double.NaN, double.NaN);
            var hydraulicCondition26 = new HydraulicCondition(2.6, (Probability)1.00E-02, double.NaN, double.NaN);
            var hydraulicCondition29 = new HydraulicCondition(2.9, (Probability)3.33E-03, double.NaN, double.NaN);
            var hydraulicCondition32 = new HydraulicCondition(3.2, (Probability)1.00E-03, double.NaN, double.NaN);
            var hydraulicCondition35 = new HydraulicCondition(3.5, (Probability)3.33E-04, double.NaN, double.NaN);
            var hydraulicCondition38 = new HydraulicCondition(3.8, (Probability)1.00E-04, double.NaN, double.NaN);

            return(new Project
            {
                Name = "AGK - HHNK",
                ProjectLeader =
                {
                    Email = "*****@*****.**",
                    Name  = "Goaitske de Vries"
                },
                AssessmentSection = "12-3",
                EventTrees =
                {
                    new EventTree
                    {
                        Name = "AGK - HHNK",
                        MainTreeEvent = new TreeEvent
                        {
                            Name = "Knoop 1",
                            ProbabilitySpecificationType = ProbabilitySpecificationType.Classes,
                            ClassesProbabilitySpecification =
                            {
                                new ExpertClassEstimation     {
                                    Expert = andre, HydraulicCondition = hydraulicCondition23, AverageEstimation = ProbabilityClass.Seven, MinEstimation = ProbabilityClass.Seven, MaxEstimation = ProbabilityClass.Seven
                                },
                                new ExpertClassEstimation     {
                                    Expert = andre, HydraulicCondition = hydraulicCondition26, AverageEstimation = ProbabilityClass.Seven, MinEstimation = ProbabilityClass.Seven, MaxEstimation = ProbabilityClass.Seven
                                },
                                new ExpertClassEstimation     {
                                    Expert = andre, HydraulicCondition = hydraulicCondition29, AverageEstimation = ProbabilityClass.Seven, MinEstimation = ProbabilityClass.Seven, MaxEstimation = ProbabilityClass.Seven
                                },
                                new ExpertClassEstimation     {
                                    Expert = andre, HydraulicCondition = hydraulicCondition32, AverageEstimation = ProbabilityClass.Seven, MinEstimation = ProbabilityClass.Seven, MaxEstimation = ProbabilityClass.Seven
                                },
                                new ExpertClassEstimation     {
                                    Expert = andre, HydraulicCondition = hydraulicCondition35, AverageEstimation = ProbabilityClass.Six, MinEstimation = ProbabilityClass.Six, MaxEstimation = ProbabilityClass.Six
                                },
                                new ExpertClassEstimation     {
                                    Expert = andre, HydraulicCondition = hydraulicCondition38, AverageEstimation = ProbabilityClass.Five, MinEstimation = ProbabilityClass.Five, MaxEstimation = ProbabilityClass.Six
                                },
                                new ExpertClassEstimation     {
                                    Expert = erik, HydraulicCondition = hydraulicCondition23, AverageEstimation = ProbabilityClass.Seven, MinEstimation = ProbabilityClass.Seven, MaxEstimation = ProbabilityClass.Seven
                                },
                                new ExpertClassEstimation     {
                                    Expert = erik, HydraulicCondition = hydraulicCondition26, AverageEstimation = ProbabilityClass.Seven, MinEstimation = ProbabilityClass.Seven, MaxEstimation = ProbabilityClass.Seven
                                },
                                new ExpertClassEstimation     {
                                    Expert = erik, HydraulicCondition = hydraulicCondition29, AverageEstimation = ProbabilityClass.Seven, MinEstimation = ProbabilityClass.Seven, MaxEstimation = ProbabilityClass.Seven
                                },
                                new ExpertClassEstimation     {
                                    Expert = erik, HydraulicCondition = hydraulicCondition32, AverageEstimation = ProbabilityClass.Seven, MinEstimation = ProbabilityClass.Seven, MaxEstimation = ProbabilityClass.Seven
                                },
                                new ExpertClassEstimation     {
                                    Expert = erik, HydraulicCondition = hydraulicCondition35, AverageEstimation = ProbabilityClass.Seven, MinEstimation = ProbabilityClass.Seven, MaxEstimation = ProbabilityClass.Seven
                                },
                                new ExpertClassEstimation     {
                                    Expert = erik, HydraulicCondition = hydraulicCondition38, AverageEstimation = ProbabilityClass.Seven, MinEstimation = ProbabilityClass.Seven, MaxEstimation = ProbabilityClass.Seven
                                },
                                new ExpertClassEstimation     {
                                    Expert = roy, HydraulicCondition = hydraulicCondition23, AverageEstimation = ProbabilityClass.Seven, MinEstimation = ProbabilityClass.Seven, MaxEstimation = ProbabilityClass.Seven
                                },
                                new ExpertClassEstimation     {
                                    Expert = roy, HydraulicCondition = hydraulicCondition26, AverageEstimation = ProbabilityClass.Seven, MinEstimation = ProbabilityClass.Seven, MaxEstimation = ProbabilityClass.Seven
                                },
                                new ExpertClassEstimation     {
                                    Expert = roy, HydraulicCondition = hydraulicCondition29, AverageEstimation = ProbabilityClass.Seven, MinEstimation = ProbabilityClass.Seven, MaxEstimation = ProbabilityClass.Seven
                                },
                                new ExpertClassEstimation     {
                                    Expert = roy, HydraulicCondition = hydraulicCondition32, AverageEstimation = ProbabilityClass.Seven, MinEstimation = ProbabilityClass.Seven, MaxEstimation = ProbabilityClass.Seven
                                },
                                new ExpertClassEstimation     {
                                    Expert = roy, HydraulicCondition = hydraulicCondition35, AverageEstimation = ProbabilityClass.Seven, MinEstimation = ProbabilityClass.Seven, MaxEstimation = ProbabilityClass.Seven
                                },
                                new ExpertClassEstimation     {
                                    Expert = roy, HydraulicCondition = hydraulicCondition38, AverageEstimation = ProbabilityClass.Seven, MinEstimation = ProbabilityClass.Seven, MaxEstimation = ProbabilityClass.Seven
                                },
                                new ExpertClassEstimation     {
                                    Expert = andries, HydraulicCondition = hydraulicCondition23, AverageEstimation = ProbabilityClass.Seven, MinEstimation = ProbabilityClass.Seven, MaxEstimation = ProbabilityClass.Seven
                                },
                                new ExpertClassEstimation     {
                                    Expert = andries, HydraulicCondition = hydraulicCondition26, AverageEstimation = ProbabilityClass.Seven, MinEstimation = ProbabilityClass.Seven, MaxEstimation = ProbabilityClass.Seven
                                },
                                new ExpertClassEstimation     {
                                    Expert = andries, HydraulicCondition = hydraulicCondition29, AverageEstimation = ProbabilityClass.Seven, MinEstimation = ProbabilityClass.Seven, MaxEstimation = ProbabilityClass.Seven
                                },
                                new ExpertClassEstimation     {
                                    Expert = andries, HydraulicCondition = hydraulicCondition32, AverageEstimation = ProbabilityClass.Seven, MinEstimation = ProbabilityClass.Seven, MaxEstimation = ProbabilityClass.Seven
                                },
                                new ExpertClassEstimation     {
                                    Expert = andries, HydraulicCondition = hydraulicCondition35, AverageEstimation = ProbabilityClass.Seven, MinEstimation = ProbabilityClass.Seven, MaxEstimation = ProbabilityClass.Seven
                                },
                                new ExpertClassEstimation     {
                                    Expert = andries, HydraulicCondition = hydraulicCondition38, AverageEstimation = ProbabilityClass.Seven, MinEstimation = ProbabilityClass.Seven, MaxEstimation = ProbabilityClass.Seven
                                },
                                new ExpertClassEstimation     {
                                    Expert = dirk, HydraulicCondition = hydraulicCondition23, AverageEstimation = ProbabilityClass.Seven, MinEstimation = ProbabilityClass.Seven, MaxEstimation = ProbabilityClass.Seven
                                },
                                new ExpertClassEstimation     {
                                    Expert = dirk, HydraulicCondition = hydraulicCondition26, AverageEstimation = ProbabilityClass.Seven, MinEstimation = ProbabilityClass.Seven, MaxEstimation = ProbabilityClass.Seven
                                },
                                new ExpertClassEstimation     {
                                    Expert = dirk, HydraulicCondition = hydraulicCondition29, AverageEstimation = ProbabilityClass.Seven, MinEstimation = ProbabilityClass.Seven, MaxEstimation = ProbabilityClass.Seven
                                },
                                new ExpertClassEstimation     {
                                    Expert = dirk, HydraulicCondition = hydraulicCondition32, AverageEstimation = ProbabilityClass.Six, MinEstimation = ProbabilityClass.Six, MaxEstimation = ProbabilityClass.Seven
                                },
                                new ExpertClassEstimation     {
                                    Expert = dirk, HydraulicCondition = hydraulicCondition35, AverageEstimation = ProbabilityClass.Five, MinEstimation = ProbabilityClass.Four, MaxEstimation = ProbabilityClass.Five
                                },
                                new ExpertClassEstimation     {
                                    Expert = dirk, HydraulicCondition = hydraulicCondition38, AverageEstimation = ProbabilityClass.Five, MinEstimation = ProbabilityClass.Four, MaxEstimation = ProbabilityClass.Five
                                },
                            },
                            FailingEvent = new TreeEvent
                            {
                                Name = "Knoop 2",
                                ProbabilitySpecificationType = ProbabilitySpecificationType.Classes,
                                ClassesProbabilitySpecification =
                                {
                                    new ExpertClassEstimation {
                                        Expert = andre, HydraulicCondition = hydraulicCondition23, AverageEstimation = ProbabilityClass.Six, MinEstimation = ProbabilityClass.Four, MaxEstimation = ProbabilityClass.Seven
                                    },
                                    new ExpertClassEstimation {
                                        Expert = andre, HydraulicCondition = hydraulicCondition26, AverageEstimation = ProbabilityClass.Five, MinEstimation = ProbabilityClass.Three, MaxEstimation = ProbabilityClass.Six
                                    },
                                    new ExpertClassEstimation {
                                        Expert = andre, HydraulicCondition = hydraulicCondition29, AverageEstimation = ProbabilityClass.Four, MinEstimation = ProbabilityClass.Three, MaxEstimation = ProbabilityClass.Five
                                    },
                                    new ExpertClassEstimation {
                                        Expert = andre, HydraulicCondition = hydraulicCondition32, AverageEstimation = ProbabilityClass.Three, MinEstimation = ProbabilityClass.Two, MaxEstimation = ProbabilityClass.Four
                                    },
                                    new ExpertClassEstimation {
                                        Expert = andre, HydraulicCondition = hydraulicCondition35, AverageEstimation = ProbabilityClass.Three, MinEstimation = ProbabilityClass.Two, MaxEstimation = ProbabilityClass.Four
                                    },
                                    new ExpertClassEstimation {
                                        Expert = andre, HydraulicCondition = hydraulicCondition38, AverageEstimation = ProbabilityClass.Three, MinEstimation = ProbabilityClass.Two, MaxEstimation = ProbabilityClass.Four
                                    },
                                    new ExpertClassEstimation {
                                        Expert = erik, HydraulicCondition = hydraulicCondition23, AverageEstimation = ProbabilityClass.Six
                                    },
                                    new ExpertClassEstimation {
                                        Expert = erik, HydraulicCondition = hydraulicCondition26, AverageEstimation = ProbabilityClass.Five
                                    },
                                    new ExpertClassEstimation {
                                        Expert = erik, HydraulicCondition = hydraulicCondition29, AverageEstimation = ProbabilityClass.Four
                                    },
                                    new ExpertClassEstimation {
                                        Expert = erik, HydraulicCondition = hydraulicCondition32, AverageEstimation = ProbabilityClass.Three
                                    },
                                    new ExpertClassEstimation {
                                        Expert = erik, HydraulicCondition = hydraulicCondition35, AverageEstimation = ProbabilityClass.Two
                                    },
                                    new ExpertClassEstimation {
                                        Expert = erik, HydraulicCondition = hydraulicCondition38, AverageEstimation = ProbabilityClass.One
                                    },
                                    new ExpertClassEstimation {
                                        Expert = roy, HydraulicCondition = hydraulicCondition23, AverageEstimation = ProbabilityClass.None, MinEstimation = ProbabilityClass.None, MaxEstimation = ProbabilityClass.None
                                    },
                                    new ExpertClassEstimation {
                                        Expert = roy, HydraulicCondition = hydraulicCondition26, AverageEstimation = ProbabilityClass.None, MinEstimation = ProbabilityClass.None, MaxEstimation = ProbabilityClass.None
                                    },
                                    new ExpertClassEstimation {
                                        Expert = roy, HydraulicCondition = hydraulicCondition29, AverageEstimation = ProbabilityClass.None, MinEstimation = ProbabilityClass.None, MaxEstimation = ProbabilityClass.None
                                    },
                                    new ExpertClassEstimation {
                                        Expert = roy, HydraulicCondition = hydraulicCondition32, AverageEstimation = ProbabilityClass.None, MinEstimation = ProbabilityClass.None, MaxEstimation = ProbabilityClass.None
                                    },
                                    new ExpertClassEstimation {
                                        Expert = roy, HydraulicCondition = hydraulicCondition35, AverageEstimation = ProbabilityClass.None, MinEstimation = ProbabilityClass.None, MaxEstimation = ProbabilityClass.None
                                    },
                                    new ExpertClassEstimation {
                                        Expert = roy, HydraulicCondition = hydraulicCondition38, AverageEstimation = ProbabilityClass.None, MinEstimation = ProbabilityClass.None, MaxEstimation = ProbabilityClass.None
                                    },
                                    new ExpertClassEstimation {
                                        Expert = andries, HydraulicCondition = hydraulicCondition23, AverageEstimation = ProbabilityClass.Seven, MinEstimation = ProbabilityClass.Seven, MaxEstimation = ProbabilityClass.Seven
                                    },
                                    new ExpertClassEstimation {
                                        Expert = andries, HydraulicCondition = hydraulicCondition26, AverageEstimation = ProbabilityClass.Six, MinEstimation = ProbabilityClass.Six, MaxEstimation = ProbabilityClass.Seven
                                    },
                                    new ExpertClassEstimation {
                                        Expert = andries, HydraulicCondition = hydraulicCondition29, AverageEstimation = ProbabilityClass.Five, MinEstimation = ProbabilityClass.Five, MaxEstimation = ProbabilityClass.Six
                                    },
                                    new ExpertClassEstimation {
                                        Expert = andries, HydraulicCondition = hydraulicCondition32, AverageEstimation = ProbabilityClass.Four, MinEstimation = ProbabilityClass.Three, MaxEstimation = ProbabilityClass.Five
                                    },
                                    new ExpertClassEstimation {
                                        Expert = andries, HydraulicCondition = hydraulicCondition35, AverageEstimation = ProbabilityClass.Two, MinEstimation = ProbabilityClass.Two, MaxEstimation = ProbabilityClass.Three
                                    },
                                    new ExpertClassEstimation {
                                        Expert = andries, HydraulicCondition = hydraulicCondition38, AverageEstimation = ProbabilityClass.One, MinEstimation = ProbabilityClass.One, MaxEstimation = ProbabilityClass.Two
                                    },
                                    new ExpertClassEstimation {
                                        Expert = dirk, HydraulicCondition = hydraulicCondition23, AverageEstimation = ProbabilityClass.Five, MinEstimation = ProbabilityClass.Five, MaxEstimation = ProbabilityClass.Five
                                    },
                                    new ExpertClassEstimation {
                                        Expert = dirk, HydraulicCondition = hydraulicCondition26, AverageEstimation = ProbabilityClass.Five, MinEstimation = ProbabilityClass.Four, MaxEstimation = ProbabilityClass.Five
                                    },
                                    new ExpertClassEstimation {
                                        Expert = dirk, HydraulicCondition = hydraulicCondition29, AverageEstimation = ProbabilityClass.Four, MinEstimation = ProbabilityClass.Four, MaxEstimation = ProbabilityClass.Five
                                    },
                                    new ExpertClassEstimation {
                                        Expert = dirk, HydraulicCondition = hydraulicCondition32, AverageEstimation = ProbabilityClass.Four, MinEstimation = ProbabilityClass.Three, MaxEstimation = ProbabilityClass.Five
                                    },
                                    new ExpertClassEstimation {
                                        Expert = dirk, HydraulicCondition = hydraulicCondition35, AverageEstimation = ProbabilityClass.Three, MinEstimation = ProbabilityClass.Three, MaxEstimation = ProbabilityClass.Four
                                    },
                                    new ExpertClassEstimation {
                                        Expert = dirk, HydraulicCondition = hydraulicCondition38, AverageEstimation = ProbabilityClass.Three, MinEstimation = ProbabilityClass.Two, MaxEstimation = ProbabilityClass.Four
                                    },
                                }
                            }
                        },
                        Color = Colors.CornflowerBlue,
                        NeedsSpecification = true
                    }
                },
                Experts =
                {
                    andre,
                    erik,
                    roy,
                    andries,
                    dirk,
                },
                HydraulicConditions =
                {
                    hydraulicCondition23,
                    hydraulicCondition26,
                    hydraulicCondition29,
                    hydraulicCondition32,
                    hydraulicCondition35,
                    hydraulicCondition38,
                }
            });
        }
        public void RemoveExpertChangesClassEstimatesWithHydraulicConditions()
        {
            var expertToRemove      = new Expert();
            var otherExpert         = new Expert();
            var hydraulicCondition1 = new HydraulicCondition(1.0, (Probability)0.01, 1, 1);
            var hydraulicCondition2 = new HydraulicCondition(2.0, (Probability)0.001, 1, 1);
            var treeEvent           = new TreeEvent
            {
                ClassesProbabilitySpecification =
                {
                    new ExpertClassEstimation {
                        Expert = expertToRemove, HydraulicCondition = hydraulicCondition1
                    },
                    new ExpertClassEstimation {
                        Expert = expertToRemove, HydraulicCondition = hydraulicCondition2
                    },
                    new ExpertClassEstimation {
                        Expert = otherExpert, HydraulicCondition = hydraulicCondition1
                    },
                    new ExpertClassEstimation {
                        Expert = otherExpert, HydraulicCondition = hydraulicCondition2
                    }
                }
            };
            var project = new Project
            {
                EventTrees =
                {
                    new EventTree
                    {
                        MainTreeEvent = treeEvent
                    }
                },
                Experts =
                {
                    expertToRemove,
                    otherExpert
                },
                HydraulicConditions =
                {
                    hydraulicCondition1,
                    hydraulicCondition2,
                }
            };
            var projectManipulationService = new ProjectManipulationService(project);

            Assert.AreEqual(4, treeEvent.ClassesProbabilitySpecification.Count);

            projectManipulationService.RemoveExpert(expertToRemove);

            Assert.AreEqual(1, project.Experts.Count);
            Assert.AreEqual(otherExpert, project.Experts.First());
            Assert.AreEqual(2, treeEvent.ClassesProbabilitySpecification.Count);

            var firstSpecification = treeEvent.ClassesProbabilitySpecification.First();

            Assert.AreEqual(otherExpert, firstSpecification.Expert);
            Assert.AreEqual(hydraulicCondition1, firstSpecification.HydraulicCondition);
            Assert.Contains(firstSpecification.HydraulicCondition, project.HydraulicConditions);

            var secondSpecification = treeEvent.ClassesProbabilitySpecification.Last();

            Assert.AreEqual(otherExpert, secondSpecification.Expert);
            Assert.AreEqual(hydraulicCondition2, secondSpecification.HydraulicCondition);
            Assert.Contains(secondSpecification.HydraulicCondition, project.HydraulicConditions);

            Assert.AreNotEqual(firstSpecification.HydraulicCondition, secondSpecification.HydraulicCondition);
        }
示例#16
0
 /// <summary>
 /// Контрол редактирует данные о залитом масле для одного агрегата
 /// </summary>
 public HydraulicControl(HydraulicCondition condition) : this()
 {
     AttachedObject = condition;
 }