private static void SetCurrentValues(NavObjectModel navObjectCurrent, NavObjectsCompared objectsCompared) { if (navObjectCurrent != null) { objectsCompared.StringDateCurrent = navObjectCurrent.StringDate; objectsCompared.StringTimeCurrent = navObjectCurrent.StringTime; objectsCompared.VersionListCurrent = navObjectCurrent.VersionList; objectsCompared.NoOfLinesCurrent = navObjectCurrent.ObjectLines.Count; } }
private void AddObjectComparedToDictionary(string internalId, NavObjectsCompared newObjectsCompared) { if (!_objectsComparedDict.ContainsKey(internalId)) { _objectsComparedDict.Add(internalId, newObjectsCompared); } else { if (_objectsComparedDict.TryGetValue(internalId, out NavObjectsCompared prevObjectsCompared)) { newObjectsCompared.Selected = prevObjectsCompared.Selected; } _objectsComparedDict[internalId] = newObjectsCompared; } }
public void FindDifferencesNew(string internalId) { NavObjectModel navObjectNew = GetDictValue(_newNavObjects, internalId); NavObjectModel navObjectCurrent = GetDictValue(_currentNavObjects, internalId); NavObjectsCompared newObjectsCompared = new NavObjectsCompared(internalId) { Id = navObjectNew.Id, Type = navObjectNew.Type, Name = navObjectNew.Name, Edited = (navObjectNew == null ? false : navObjectNew.IsEdited) || (navObjectCurrent == null ? false : navObjectCurrent.IsEdited) }; GetDifference(navObjectNew, navObjectCurrent, newObjectsCompared); SetCurrentValues(navObjectCurrent, newObjectsCompared); SetNewValues(navObjectNew, newObjectsCompared); AddObjectComparedToDictionary(internalId, newObjectsCompared); }
private bool ObjectIsEqual(NavObjectModel navObject1, NavObjectModel navObject2, ref NavObjectsCompared objectsCompared) { string comment = string.Empty; objectsCompared.ObjectPropertiesEqual = true; objectsCompared.CodeEqual = true; if (!navObject1.IsEqualTo(navObject2)) { objectsCompared.Status = NavObjectsCompared.EqualStatus.Unequal; // Do More Analysis if (!navObject1.IsObjectPropertiesEqual(navObject2)) { objectsCompared.ObjectPropertiesEqual = false; AddToComment(ref comment, "Date, Time or Version"); } if (!navObject1.IsCodeEqual(navObject2)) { objectsCompared.CodeEqual = false; AddToComment(ref comment, "Code"); } objectsCompared.Comment = comment; return(false); } return(true); }
private bool ObjectExists(NavObjectModel navObject1, NavObjectModel navObject2, ref NavObjectsCompared objectsCompared) { if (!navObject1.IsExisting(navObject2)) { objectsCompared.CodeEqual = false; objectsCompared.ObjectPropertiesEqual = false; objectsCompared.Status = NavObjectsCompared.EqualStatus.Unexisting; objectsCompared.Comment = "Object does not exists"; return(false); } return(true); }
private void GetDifference(NavObjectModel navObject1, NavObjectModel navObject2, NavObjectsCompared objectsCompared) { if (!ObjectExists(navObject1, navObject2, ref objectsCompared)) { return; } if (!ObjectIsEqual(navObject1, navObject2, ref objectsCompared)) { return; } objectsCompared.CodeEqual = true; objectsCompared.ObjectPropertiesEqual = true; objectsCompared.Status = NavObjectsCompared.EqualStatus.Equal; }