예제 #1
0
 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;
     }
 }
예제 #2
0
 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;
     }
 }
예제 #3
0
        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);
        }
예제 #4
0
        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);
        }
예제 #5
0
        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);
        }
예제 #6
0
        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;
        }