/// <summary> /// Handle the PPE Types on LEFT (i.e. basic details HWCs submit) /// </summary> void updateBasicPpeDetails(EditNeedsPost s) { List <PpeTypes> existingPpeTypes = NeedPpeTypes.SelectToList(p => (PpeTypes)p.PpeTypeId); //create new List <NeedPpeTypeViewModel> ppeTypesToAdd = s.Request.PpeTypes.WhereToList(p => p.Selected && !existingPpeTypes.Contains(p.Type)); foreach (NeedPpeTypeViewModel needPpeTypeViewModel in ppeTypesToAdd) { NeedPpeType ppeTypeToAdd = NeedPpeType.Create_FromViewModel(needPpeTypeViewModel, this); NeedPpeTypes.Add(ppeTypeToAdd); } //remove deselected List <NeedPpeTypeViewModel> ppeTypesToRemove = s.Request.PpeTypes.WhereToList(p => !p.Selected && existingPpeTypes.Contains(p.Type)); foreach (NeedPpeTypeViewModel needPpeTypeViewModel in ppeTypesToRemove) { NeedPpeType typeToRemove = NeedPpeTypes.Single(p => p.PpeTypeId == (byte)needPpeTypeViewModel.Type); NeedPpeTypes.Remove(typeToRemove); } //edit rest (existing) List <NeedPpeTypeViewModel> ppeTypesToModify = s.Request.PpeTypes.WhereToList(p => p.Selected && existingPpeTypes.Contains(p.Type)); foreach (NeedPpeTypeViewModel needPpeTypeViewModel in ppeTypesToModify) { NeedPpeType needExisting = NeedPpeTypes.SingleOrDefault(p => p.PpeTypeId == (byte)needPpeTypeViewModel.Type); needExisting?.Modify(needPpeTypeViewModel); //works?? } }
/// <summary> /// Handle the Needs Matching data ON RIGHT (i.e. Admin details such as PPE Status and Suppliers etc) /// mod those that are in post, and already exist /// </summary> void updatePpeMatchingDetails(EditNeedsPost s) { foreach (NeedsMatchData needsMatchData in s.NeedsMatching) { NeedPpeType needExisting = NeedPpeTypes.SingleOrDefault(p => p.PpeTypeId == (byte)needsMatchData.PpeType); needExisting?.Modify(needsMatchData); } }