public EPartCompare getListCompareEPartStructure(int Lev, int?LOID, int?ROID, EPart LPartData, EPart RPataData, List <EBOM> CompareList) { List <EBOM> CheckCompareList = CompareList; EPartCompare getCompareStructure = new EPartCompare(); getCompareStructure.Level = Lev; getCompareStructure.LOId = LOID; getCompareStructure.ToOID = LOID; getCompareStructure.RootOID = LOID; getCompareStructure.LName = LPartData.Name; getCompareStructure.LType = EBomConstant.TYPE_PART; getCompareStructure.LToOld = LOID; getCompareStructure.LRevision = LPartData.Revision; //getCompareStructure.LId = null; getCompareStructure.RName = RPataData.Name; getCompareStructure.RType = EBomConstant.TYPE_PART; getCompareStructure.RToOld = ROID; getCompareStructure.RRevision = RPataData.Revision; //getCompareStructure.RId = null; getCompareEPartStructure(getCompareStructure, LOID, ROID, CompareList, CheckCompareList); //if(CheckCompareList.Count > 1) //{ // getCheckCompareEPartStructure(getCompareStructure, LOID, ROID, CompareList, CheckCompareList); //} return(getCompareStructure); }
public void getCheckCompareEPartStructure(EPartCompare getCompareStructure, int?LOID, int?ROID, List <EBOM> CompareList, List <EBOM> CheckCompareList) { getCompareStructure.CompareChildren = new List <EPartCompare>(); List <EBOM> lRelation = CompareList.FindAll(item => { return(((EBOM)item).FromOID == getCompareStructure.RToOld && item.LToOID == null); }).OrderBy(x => ((EBOM)x).Ord).ToList(); for (var j = 0; j < lRelation.Count; j++) { EPartCompare tmpCompareItem = new EPartCompare(); tmpCompareItem.Level = getCompareStructure.Level + 1; tmpCompareItem.FromOID = lRelation[j].FromOID; tmpCompareItem.ToOID = lRelation[j].ToOID; tmpCompareItem.LToOld = lRelation[j].LToOID; tmpCompareItem.RToOld = lRelation[j].RToOID; tmpCompareItem.Action = lRelation[j].Action; if (tmpCompareItem.Action.Equals(PmsConstant.ACTION_ADD)) { tmpCompareItem.Action = PmsConstant.ACTION_NONE; EPart LDetail = EPartRepository.SelEPartObject(new EPart { OID = tmpCompareItem.ToOID }); tmpCompareItem.LOId = LDetail.OID; tmpCompareItem.LName = LDetail.Name; tmpCompareItem.LType = LDetail.Type; //tmpCompareItem.LId = LDetail.OID; tmpCompareItem.LOrd = lRelation[j].Ord; EPart RDetail = EPartRepository.SelEPartObject(new EPart { OID = tmpCompareItem.RToOld }); tmpCompareItem.ROId = RDetail.OID; tmpCompareItem.RName = RDetail.Name; tmpCompareItem.RType = RDetail.Type; //tmpCompareItem.RId = RDetail.OID; tmpCompareItem.ROrd = lRelation[j].Ord; if (!tmpCompareItem.LOId.Equals(tmpCompareItem.ROId)) { tmpCompareItem.Action = PmsConstant.ACTION_MODIFY; if (!tmpCompareItem.LName.Equals(tmpCompareItem.RName)) { tmpCompareItem.Action = tmpCompareItem.Action + "|" + "Name"; } if (!tmpCompareItem.LOrd.Equals(tmpCompareItem.ROrd)) { tmpCompareItem.Action = tmpCompareItem.Action + "|" + "Ord"; } } } else if (tmpCompareItem.Action.Equals(PmsConstant.ACTION_LEFT)) { tmpCompareItem.Action = PmsConstant.ACTION_ADD_NM; EPart LDetail = EPartRepository.SelEPartObject(new EPart { OID = tmpCompareItem.ToOID }); tmpCompareItem.LOId = LDetail.OID; tmpCompareItem.LName = LDetail.Name; tmpCompareItem.LType = LDetail.Type; //tmpCompareItem.LId = LDetail.OID; tmpCompareItem.LOrd = lRelation[j].Ord; } else if (tmpCompareItem.Action.Equals(PmsConstant.ACTION_RIGHT)) { tmpCompareItem.Action = PmsConstant.ACTION_DELETE_NM; EPart RDetail = EPartRepository.SelEPartObject(new EPart { OID = tmpCompareItem.RToOld }); tmpCompareItem.ROId = RDetail.OID; tmpCompareItem.RName = RDetail.Name; tmpCompareItem.RType = RDetail.Type; //tmpCompareItem.RId = RDetail.OID; tmpCompareItem.ROrd = lRelation[j].Ord; } getCompareStructure.CompareChildren.Add(tmpCompareItem); CheckCompareList.RemoveAll(data => data.Equals(lRelation[j])); getCheckCompareEPartStructure(tmpCompareItem, LOID, ROID, CompareList, CheckCompareList); //List<EBOM> A = CompareList.FindAll(item => { return ((EBOM)item).FromOID == tmpCompareItem.ToOID; }).OrderBy(x => ((EBOM)x).Ord).ToList(); } }