using System; using System.Collections.ObjectModel; using System.ComponentModel; using System.Linq; using System.Runtime.CompilerServices; using Xylem.Common.Logic.ProductionOrderCore.TestResults; namespace ProductionUiCordonelLegacy.Data { public class PressureResultDataNotifyable : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; protected virtual void NotifyPropertyChanged([CallerMemberName] String propertyName = "") { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } public PressureResultDataNotifyable(PressureResultData baseData) { LeakRate = baseData.LeakRate; Passed = baseData.Passed; PcbId = baseData.PcbId; Remark = baseData.Remark; Rev = baseData.Rev; TesterName = baseData.TesterName; Testpoints = new ObservableCollection(); baseData.TestPoints.ForEach(o => Testpoints.Add(o)); TestPressure = baseData.TestPressure; } public PressureResultDataNotifyable() { } public void InternalPropertyChanged(String propertyName = "") { NotifyPropertyChanged(propertyName); } public String PcbId; private Int32 rev; public Int32 Rev { get => rev; set { rev = value; InternalPropertyChanged(nameof(Rev)); } } private Boolean? passed = false; public Boolean? Passed { get => passed; set { passed = value; InternalPropertyChanged(nameof(Passed)); } } private String testerName = "C. Röhl"; public String TesterName { get => testerName; set { testerName = value; InternalPropertyChanged(nameof(TesterName)); } } private String testPressure = "6"; public String TestPressure { get => testPressure; set { testPressure = value; InternalPropertyChanged(nameof(TestPressure)); } } private String leakRate = " 0,00001"; public String LeakRate { get => leakRate; set { leakRate = value; InternalPropertyChanged(nameof(LeakRate)); } } private String remark = ""; public String Remark { get => remark; set { remark = value; InternalPropertyChanged(nameof(Remark)); } } private ObservableCollection testpoints = new ObservableCollection { new PressureTestPoints { Ident = 1, Input = "2E-07" }, new PressureTestPoints { Ident = 2, Input = "2E-07" }, new PressureTestPoints { Ident = 3, Input = "2E-07" }, new PressureTestPoints { Ident = 4, Input = "2E-07" }, new PressureTestPoints { Ident = 5, Input = "2E-07" }, new PressureTestPoints { Ident = 6, Input = "2E-07" }, new PressureTestPoints { Ident = 7, Input = "2E-07" }, new PressureTestPoints { Ident = 8, Input = "2E-07" }, new PressureTestPoints { Ident = 9, Input = "2E-07" }, new PressureTestPoints { Ident = 10, Input = "2E-07" } }; public ObservableCollection Testpoints { get => testpoints; set { testpoints = value; InternalPropertyChanged(nameof(Testpoints)); } } internal void SetAllTestPoints(String input) { foreach (var item in Testpoints) { item.Input = input; } InternalPropertyChanged(nameof(Testpoints)); } public PressureResultData ToBase() { var baseData = new PressureResultData(); baseData.LeakRate = LeakRate; baseData.Passed = Passed; baseData.PcbId = PcbId; baseData.Remark = Remark; baseData.Rev = Rev; baseData.TesterName = TesterName; baseData.TestPoints = Testpoints.ToList(); baseData.TestPressure = TestPressure; return baseData; } } }