private void ReplaceOldOfficeCD(IFlatBOM bom, IProduct prod ) { IPartRepository partRep = RepositoryFactory.GetInstance().GetRepository<IPartRepository, IPart>(); if (prod != null) { try { bool bFindOldPartNo = false; string imgPartNo = ((string)prod.GetExtendedProperty("IMG")).Trim(); IList<ConstValueInfo> valueList = partRep.GetConstValueListByType("OfficeCD"); var partNo = (from p in valueList where p.name == imgPartNo select p).ToList(); if (partNo != null && partNo.Count > 0 && !string.IsNullOrEmpty(partNo[0].value) && !string.IsNullOrEmpty(partNo[0].description)) { string[] oldPartNo = partNo[0].value.Split(new char[] { '~' }); string newPartNo = partNo[0].description.Trim(); foreach (FlatBOMItem item in bom.BomItems) { var oldPart = (from p in item.AlterParts where oldPartNo.Contains(p.PN) select p).ToList(); if (oldPart != null && oldPart.Count > 0) { bFindOldPartNo = true; IPart newPart = GetNewOfficePart(newPartNo, item); if (newPart != null) { item.AlterParts.Clear(); item.AlterParts.Add(newPart); } } if (bFindOldPartNo) break; } } } catch { } } }