static List <SupplierPpeType> extractSupplierPpeType(SuppliesPost post) { List <SupplierPpeType> ppeList = new List <SupplierPpeType>(); foreach (string ppe in post.PpeTypes) { SupplierPpeType supplyPpe = new SupplierPpeType(); if (Enum.TryParse(ppe, out PpeTypes ppeType)) { supplyPpe.PpeTypeId = (byte)ppeType; if (ppeType == PpeTypes.Other) { supplyPpe.PpeTypeOther = post.OtherPpeTypes; //only add other if ppetype is other } } else //fallback in case some ppe doesn't match our enums { supplyPpe.PpeTypeId = (int)PpeTypes.Other; supplyPpe.PpeTypeOther = post.OtherPpeTypes; } ppeList.Add(supplyPpe); } return(ppeList); }
/// <summary> /// Handle the PPE Types on LEFT (i.e. basic details HWCs submit) /// </summary> void updateBasicPpeDetails(EditSuppliesPost s) { List <PpeTypes> existingPpeTypes = SupplierPpeTypes.SelectToList(p => (PpeTypes)p.PpeTypeId); //create new List <SupplierPpeTypeModel> ppeTypesToAdd = s.Supplies.PpeTypes.WhereToList(p => p.Selected && !existingPpeTypes.Contains(p.Type)); foreach (SupplierPpeTypeModel supplierPpeTypeViewModel in ppeTypesToAdd) { SupplierPpeType ppeTypeToAdd = SupplierPpeType.Create_FromViewModel(supplierPpeTypeViewModel, this); SupplierPpeTypes.Add(ppeTypeToAdd); } //remove deselected List <SupplierPpeTypeModel> ppeTypesToRemove = s.Supplies.PpeTypes.WhereToList(p => !p.Selected && existingPpeTypes.Contains(p.Type)); foreach (SupplierPpeTypeModel supplierPpeTypeViewModel in ppeTypesToRemove) { SupplierPpeType typeToRemove = SupplierPpeTypes.Single(p => p.PpeTypeId == (byte)supplierPpeTypeViewModel.Type); SupplierPpeTypes.Remove(typeToRemove); } //edit rest (existing) List <SupplierPpeTypeModel> ppeTypesToModify = s.Supplies.PpeTypes.WhereToList(p => p.Selected && existingPpeTypes.Contains(p.Type)); foreach (SupplierPpeTypeModel supplierPpeTypeViewModel in ppeTypesToModify) { SupplierPpeType supplierExisting = SupplierPpeTypes.SingleOrDefault(p => p.PpeTypeId == (byte)supplierPpeTypeViewModel.Type); supplierExisting?.Modify(supplierPpeTypeViewModel); } }
public static SupplierPpeType Create_FromViewModel(SupplierPpeTypeModel s, Supplier supplier) { SupplierPpeType respVal = new SupplierPpeType(); respVal.Supplier = supplier; respVal.PpeTypeId = (byte)s.Type; respVal.PpeTypeOther = s.PpeOther; respVal.MeetsRegulatoryRequirementsId = (int)s.MeetsRegulations.Value; respVal.CostTypeId = (int)s.CostType.Value; respVal.CostTypeOther = s.CostTypeOther; respVal.CapacityPerWeek = s.CapacityPerWeek.Value; respVal.CurrentStock = s.CurrentStock.Value; respVal.LeadTimeInDays = s.LeadTimeInDays.Value; respVal.Notes = s.Notes; return(respVal); }