public MetalViewModel(JobSetup js) { prevailingWage = js.ActualPrevailingWage == 0?0:(js.ActualPrevailingWage - laborRate) / laborRate; GetMetalDetailsFromGoogle(js.ProjectName); if (js.ProjectName == "Paraseal LG") { Metals = GetMetalsLG(); AddOnMetals = GetAddOnMetalsLG(); } else { Metals = GetMetals(); AddOnMetals = GetAddOnMetals(); } MiscMetals = GetMiscMetals(); if (js.ProjectName == "Multicoat") { MiscMetals.Where(x => x.Name == "Nosing for Concrete risers").FirstOrDefault().Units = 0; } //if (js.ProjectName == "Paraseal LG") //{ // foreach (Metal item in Metals.Where(x=>x.Name.Contains("STAIR METAL"))) // { // item.Units = 0; // } //} CalculateCost(null); js.JobSetupChange += JobSetup_OnJobSetupChange; }
public void OnJobSetupChange(JobSetup Js) { if (Js == null) { return; } if (Js != null) { MetalName = Js.MaterialName; isPrevailingWage = Js.IsPrevalingWage; isDiscount = Js.HasDiscount; vendorName = Js.VendorName; stairWidth = Js.StairWidth; isFlash = Js.IsFlashingRequired; riserCount = Js.RiserCount; MaterialPerc = getMaterialDiscount(Js.ProjectDelayFactor); prevailingWage = Js.ActualPrevailingWage == 0?0:(Js.ActualPrevailingWage - laborRate) / laborRate; if (Js.HasSpecialPricing) { ShowSpecialPriceColumn = System.Windows.Visibility.Visible; } else { ShowSpecialPriceColumn = System.Windows.Visibility.Hidden; } } ObservableCollection <Metal> met = new ObservableCollection <Metal>(); if (Js.ProjectName == "Paraseal LG") { met = GetMetalsLG(); } else { met = GetMetals(); } for (int i = 0; i < Metals.Count; i++) { double units = Metals[i].Units; double sp = Metals[i].SpecialMetalPricing; bool isSelected = Metals[i].IsStairMetalChecked; Metals[i] = met[i]; if (!Metals[i].Name.Contains("STAIR METAL")) { Metals[i].Units = units; Metals[i].IsStairMetalChecked = isSelected; } else { Metals[i].IsStairMetalChecked = isSelected; } Metals[i].SpecialMetalPricing = sp; } ObservableCollection <AddOnMetal> addOnMet = new ObservableCollection <AddOnMetal>(); if (Js.ProjectName == "Paraseal LG") { addOnMet = GetAddOnMetalsLG(); } else { addOnMet = GetAddOnMetals(); } for (int i = 0; i < AddOnMetals.Count; i++) { double units = AddOnMetals[i].Units; double sp = AddOnMetals[i].SpecialMetalPricing; bool ischecked = AddOnMetals[i].IsMetalChecked; AddOnMetals[i] = addOnMet[i]; if (!AddOnMetals[i].Name.Contains("STAIR METAL")) { AddOnMetals[i].Units = units; } AddOnMetals[i].IsMetalChecked = ischecked; AddOnMetals[i].SpecialMetalPricing = sp; } if (Js != null) { if (Js.ProjectName == "Multicoat") { MiscMetals.Where(x => x.Name == "Nosing for Concrete risers").FirstOrDefault().Units = 0; } else { MiscMetals[1].Units = getUnits(3); } } CalculateCost(null); }