public PartStore(IEnumerable <ConcretePartModel> concreteParts) { IEnumerable <IGrouping <PartModel, ConcretePartModel> > partGroups = concreteParts.GroupBy( part => part.Part, new PartModel.PartComparer() ); foreach (IGrouping <PartModel, ConcretePartModel> partGroup in partGroups) { Positions.Add(PartStorePosition.CreateByConcrete(partGroup.Key, partGroup.ToList())); } }
public static PartStorePosition CreateByConcrete(PartModel part, IEnumerable <ConcretePartModel> concreteParts) { PartStorePosition position = new PartStorePosition() { Part = part }; IEnumerable <IGrouping <MaterialModel, ConcretePartModel> > materialGroups = concreteParts.GroupBy( cpart => cpart.SelectedMaterial, new MaterialModel.MaterialComparer() ); foreach (IGrouping <MaterialModel, ConcretePartModel> materialGroup in materialGroups) { position.MaterialPositions.Add(PartStoreMaterialPosition.CreateByConcrete(materialGroup.Key, materialGroup.ToList())); } return(position); }
public PartStore(IEnumerable <PartModel> parts, IEnumerable <ConcretePartModel> concreteParts) { Positions = parts.Select(part => PartStorePosition.CreateByPossible(part, concreteParts.Where(cpart => cpart.Part.Id == part.Id)) ).ToList(); }