コード例 #1
0
        private void SetObjectProperties(string line, ObjectSection objectSection, ref NavObjectModel navObject)
        {
            if (objectSection != ObjectSection.ObjectProperties)
            {
                return;
            }

            string[] parts = line.Split('=');

            switch (ObjectHelper.RemoveIllChar(parts[0]))
            {
            case "Date":
                navObject.StringDate = ObjectHelper.RemoveIllChar(parts[1]);
                break;

            case "Time":
                navObject.StringTime = ObjectHelper.RemoveIllChar(parts[1]);
                break;

            case "Modified":
                navObject.Modified = ObjectHelper.GetBool(parts[1]);
                break;

            case "Version List":
                navObject.VersionList = ObjectHelper.GetVersionList(line, parts[0]);
                break;
            }
        }
コード例 #2
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);
        }
コード例 #3
0
 private static void RemoveFile(NavObjectModel navObjectModel, string destinationFolder)
 {
     if (File.Exists(navObjectModel.GetFullPath(destinationFolder)))
     {
         File.Delete(navObjectModel.GetFullPath(destinationFolder));
     }
 }
コード例 #4
0
        private static void CreateDirectoryIfNotExists(string filePath, NavObjectModel navObject)
        {
            string folder = navObject.GetDirectoryPath(filePath);

            if (!Directory.Exists(folder))
            {
                Directory.CreateDirectory(folder);
            }
        }
コード例 #5
0
 private static void SetNewValues(NavObjectModel navObjectNew, NavObjectsCompared objectsCompared)
 {
     if (navObjectNew != null)
     {
         objectsCompared.StringDateNew  = navObjectNew.StringDate;
         objectsCompared.StringTimeNew  = navObjectNew.StringTime;
         objectsCompared.VersionListNew = navObjectNew.VersionList;
         objectsCompared.NoOfLinesNew   = navObjectNew.ObjectLines.Count;
     }
 }
コード例 #6
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;
     }
 }
コード例 #7
0
        private NavObjectModel CreateNewObject(string line, ObjectSection objectSection, NavObjectModel navObject)
        {
            NavObjectModel newNavObject = NewObject(line, objectSection);

            if (newNavObject != null)
            {
                navObject = newNavObject;
                _navObjects.Add(newNavObject.InternalId, newNavObject);
            }

            return(navObject);
        }
コード例 #8
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);
        }
コード例 #9
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;
        }
コード例 #10
0
        private void SetModifiedFiles(List <string> modifiedFiles)
        {
            foreach (NavObjectModel navObject in NavObjects)
            {
                navObject.IsEdited = false;

                foreach (string modifiedFile in modifiedFiles)
                {
                    if (navObject.Type.ToUpper() == NavObjectModel.PathToType(modifiedFile))
                    {
                        navObject.IsEdited = true;
                    }

                    if (navObject.InternalId.ToUpper() == NavObjectModel.FilePathToInternalId(modifiedFile))
                    {
                        navObject.IsEdited = true;
                    }
                }
            }
        }
コード例 #11
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);
        }
コード例 #12
0
        private void ProcessLine(string line, ObjectSection objectSection, ref NavObjectModel navObject)
        {
            switch (objectSection)
            {
            case ObjectSection.Object:
                navObject = CreateNewObject(line, objectSection, navObject);
                break;

            case ObjectSection.ObjectProperties:
                SetObjectProperties(line, objectSection, ref navObject);
                navObject.ObjectProperties.Add(line);
                break;

            default:
                if (navObject != null)
                {
                    navObject.Code.Add(line);
                }
                break;
                //case ObjectSection.Properties:
                //    navObject.Properties.Add(line);
                //    break;
                //case ObjectSection.Fields:
                //    navObject.Fields.Add(line);
                //    break;
                //case ObjectSection.Keys:
                //    navObject.Keys.Add(line);
                //    break;
                //case ObjectSection.FieldGroups:
                //    navObject.FieldGroups.Add(line);
                //    break;
                //case ObjectSection.Code:
                //    navObject.Code.Add(line);
                //    break;
            }

            if (navObject != null)
            {
                navObject.ObjectLines.Add(line);
            }
        }
コード例 #13
0
        public void RunImportFromObjectFile(string filePath)
        {
            if (string.IsNullOrEmpty(filePath))
            {
                return;
            }

            if (!File.Exists(filePath))
            {
                return;
            }

            if (!IsTxtFile(filePath))
            {
                return;
            }

            ObjectSection  currObjectSection = ObjectSection.Unknown;
            NavObjectModel currNavObject     = null;

            var lines = File.ReadAllLines(filePath, Encoding.Default);

            int totalLineCount = lines.Length;

            for (int i = 0; i < totalLineCount; i++)
            {
                ObjectSection objectSection = ObjectHelper.FindObjectSection(lines[i]);
                if (objectSection != ObjectSection.Unknown)
                {
                    currObjectSection = objectSection;
                }

                ProcessLine(lines[i], currObjectSection, ref currNavObject);

                // FireFileReadEvent(i, totalLineCount);
            }
        }