public static void AddUniqFly(ElementReader oldElem, ElementReader newElem, out HashSet <string> flyPaths) { flyPaths = new HashSet <string>(); foreach (var newIt in newElem.GetListById(23)) { var flag = oldElem.GetListById(23).All(oldIt => !newIt.GetByKey("file_model").Equals(oldIt.GetByKey("file_model"))); if (flag) { flyPaths.Add(UtilsIO.NormalizeString(newIt.GetByKey("file_model"))); oldElem.AddItem(23, AdvancedCopy(oldElem.GetFirstInList(23), newIt), true); } } }
public static Item AdvancedCopy(Item oldItem, Item newItem) { if (oldItem == null || newItem == null) { return(null); } if (oldItem.Values.Length == newItem.Values.Length) { return(newItem); } var temp = UtilsIO.DeepClone(oldItem); for (int i = 0; i < temp.Values.Length / 2; i++) { string key = temp.Values[i, 0]; temp.SetByKey(key, newItem.GetByKey(key)); } return(temp); }