public int Compare(object x, object y)
        {
            if (this.PropertyName == null || this.PropertyName.Length <= 0)
            {
                throw new Exception("Invalid property name");
            }
            Type t = x.GetType();

            string[] sortExpressions = this.PropertyName.Trim().Split(',');
            for (int i = 0; i < sortExpressions.Length; i++)
            {
                string           fieldName = String.Empty;
                CompareDirection direction = CompareDirection.Ascending;
                if (sortExpressions[i].Trim().Contains(" "))
                {
                    String[] parts = sortExpressions[i].Trim().Split(new[] { ' ' });
                    if (parts.Length > 0)
                    {
                        fieldName = parts[0].Trim();
                    }
                    if (parts.Length > 1 && parts[1].Trim().ToLower() == "descending")
                    {
                        direction = CompareDirection.Descending;
                    }
                }
                if (fieldName.Length > 0)
                {
                    System.Reflection.PropertyInfo prop = t.GetProperty(fieldName);
                    if (prop != null)
                    {
                        int iResult = System.Collections.Comparer.DefaultInvariant.Compare(prop.GetValue(x, null), prop.GetValue(y, null));
                        if (iResult != 0)
                        {
                            //Return if not equal
                            if (direction == CompareDirection.Descending)
                            {
                                //Invert order
                                return(-iResult);
                            }
                            else
                            {
                                return(iResult);
                            }
                        }
                    }
                    else
                    {
                        throw new Exception(fieldName + " doesn't exist in the Class.");
                    }
                }
            }
            //No change to order
            return(0);
        }
Beispiel #2
0
        private bool CompareItems(CListItem item1, CListItem item2, CompareDirection direction)
        {
            // add a numeric compare here also
            bool dir = false;

            if (direction == CompareDirection.GreaterThan)
            {
                dir = true;
            }

            if (SortDirection == SortDirections.SortAscending)
            {
                dir = !dir; // flip it
            }
            if (!NumericCompare)
            {
                if (dir)
                {
                    return(item1.SubItems[SortColumn].Text.CompareTo(item2.SubItems[SortColumn].Text) < 0);
                }
                else
                {
                    return(item1.SubItems[SortColumn].Text.CompareTo(item2.SubItems[SortColumn].Text) > 0);
                }
            }
            else
            {
                try
                {
                    double n1 = Double.Parse(item1.SubItems[SortColumn].Text);
                    double n2 = Double.Parse(item2.SubItems[SortColumn].Text);

                    if (dir)
                    {
                        // compare the numeric values inside the columns
                        return(n1 < n2);
                    }
                    else
                    {
                        return(n1 > n2);
                    }
                }
                catch (Exception ex)
                {
                    // no numeric value (bad bad)
                    Debug.WriteLine(ex.ToString());
                    return(false);
                }
            }
        }
Beispiel #3
0
        private CompareResult ProcessFileInternal(string fileOrFolder, string file, CompareDirection direction)
        {
            CompareResult result = new CompareResult
            {
                FileName      = fileOrFolder.GetFileName(),
                FileExtension = fileOrFolder.GetFileExtension()
            };

            try
            {
                if (direction == CompareDirection.SOURCE)
                {
                    result.SourceFilePath          = fileOrFolder;
                    result.SourceCreatedDate       = File.GetCreationTime(fileOrFolder);
                    result.SourceModifiedDate      = File.GetLastWriteTime(fileOrFolder);
                    result.SourceHash              = file != string.Empty ? Helpers.MD5Hash.HashFile(fileOrFolder) : string.Empty;
                    result.DestinationFilePath     = file != string.Empty ? file : string.Empty;
                    result.DestinationCreatedDate  = file != string.Empty ? File.GetCreationTime(file) : DateTime.MinValue;
                    result.DestinationModifiedDate = file != string.Empty ? File.GetLastWriteTime(file) : DateTime.MinValue;
                    result.DestinationHash         = file != string.Empty ? Helpers.MD5Hash.HashFile(file) : string.Empty;
                    result.ExistsSource            = true;
                    result.ExistsDestination       = file != string.Empty;
                }
                else
                {
                    result.DestinationFilePath     = fileOrFolder;
                    result.DestinationCreatedDate  = File.GetCreationTime(fileOrFolder);
                    result.DestinationModifiedDate = File.GetLastWriteTime(fileOrFolder);
                    result.DestinationHash         = file != string.Empty ? MD5Hash.HashFile(fileOrFolder) : string.Empty;
                    result.SourceFilePath          = file != string.Empty ? file : string.Empty;
                    result.SourceCreatedDate       = file != string.Empty ? File.GetCreationTime(file) : DateTime.MinValue;
                    result.SourceModifiedDate      = file != string.Empty ? File.GetLastWriteTime(file) : DateTime.MinValue;
                    result.SourceHash        = file != string.Empty ? MD5Hash.HashFile(file) : string.Empty;
                    result.ExistsDestination = true;
                    result.ExistsSource      = file != string.Empty;
                }

                result.Match    = file != string.Empty ? result.SourceHash == result.DestinationHash : false;
                result.Compared = true;
                result.IsFile   = true;
            }
            catch (Exception ex)
            {
                ProcessLog.logError(ex.Message);
            }
            return(result);
        }
Beispiel #4
0
        private CompareResult ProcessFileInternal(string fileOrFolder, string file, CompareDirection direction)
        {
            CompareResult result = new CompareResult();

            result.FileName      = fileOrFolder.GetFileName();
            result.FileExtension = fileOrFolder.GetFileExtension();

            if (direction == CompareDirection.Left)
            {
                result.LeftFilePath      = fileOrFolder;
                result.LeftCreatedDate   = File.GetCreationTime(fileOrFolder);
                result.LeftModifiedDate  = File.GetLastWriteTime(fileOrFolder);
                result.LeftHash          = file != string.Empty ? MD5Hash.HashFile(fileOrFolder) : string.Empty;
                result.RightFilePath     = file != string.Empty ? file : string.Empty;
                result.RightCreatedDate  = file != string.Empty ? File.GetCreationTime(file) : DateTime.MinValue;
                result.RightModifiedDate = file != string.Empty ? File.GetLastWriteTime(file) : DateTime.MinValue;
                result.RightHash         = file != string.Empty ? MD5Hash.HashFile(file) : string.Empty;
                result.ExistsLeft        = true;
                result.ExistsRight       = file != string.Empty;
            }
            else
            {
                result.RightFilePath     = fileOrFolder;
                result.RightCreatedDate  = File.GetCreationTime(fileOrFolder);
                result.RightModifiedDate = File.GetLastWriteTime(fileOrFolder);
                result.RightHash         = file != string.Empty ? MD5Hash.HashFile(fileOrFolder) : string.Empty;
                result.LeftFilePath      = file != string.Empty ? file : string.Empty;
                result.LeftCreatedDate   = file != string.Empty ? File.GetCreationTime(file) : DateTime.MinValue;
                result.LeftModifiedDate  = file != string.Empty ? File.GetLastWriteTime(file) : DateTime.MinValue;
                result.LeftHash          = file != string.Empty ? MD5Hash.HashFile(file) : string.Empty;
                result.ExistsRight       = true;
                result.ExistsLeft        = file != string.Empty;
            }

            result.Match    = file != string.Empty ? result.LeftHash == result.RightHash : false;
            result.Compared = true;
            result.IsFile   = true;

            return(result);
        }
Beispiel #5
0
        private bool CompareItems(CListItem item1, CListItem item2, CompareDirection direction)
        {
            bool dir = false;

            if (direction == CompareDirection.GreaterThan)
                dir = true;

            if (SortDirection == SortDirections.SortAscending)
                dir = !dir; // flip it


            if (!NumericCompare)
            {
                if (dir)
                    return (item1.SubItems[SortColumn].Text.CompareTo(item2.SubItems[SortColumn].Text) < 0);
                else
                    return (item1.SubItems[SortColumn].Text.CompareTo(item2.SubItems[SortColumn].Text) > 0);
            }
            else
            {
                try
                {
                    double n1 = Double.Parse(item1.SubItems[SortColumn].Text);
                    double n2 = Double.Parse(item2.SubItems[SortColumn].Text);


                    if (dir)
                        return (n1 < n2);
                    else
                        return (n1 > n2);
                }
                catch (Exception ex)
                {
                    // no numeric value (bad bad)
                    Debug.WriteLine(ex.ToString());
                    return false;
                }
            }
        }
Beispiel #6
0
        private List <CompareResult> ProcessFolder(string fileOrFolder, List <string> otherFiles, CompareDirection direction)
        {
            List <CompareResult> results = new List <CompareResult>();

            try
            {
                string dirName          = '\\' + fileOrFolder.GetCurrentDir();
                string correspondingDir = otherFiles.SingleOrDefault(r => r.IsDirectory() && r.EndsWith(dirName));
                if (correspondingDir != null)
                {
                    List <string> sourceFiles      = FolderLister.GetAllFiles(fileOrFolder);
                    List <string> destinationFiles = FolderLister.GetAllFiles(correspondingDir);

                    if (sourceFiles.Count == 0 && destinationFiles.Count == 0)
                    {
                        results.Add(ProcessEmptyDirectory(fileOrFolder, correspondingDir, direction));
                    }
                    else
                    {
                        foreach (string fileorFolder in destinationFiles)
                        {
                            results.AddRange(ProcessByType(fileorFolder, destinationFiles, direction));
                        }
                    }
                }
                else
                {
                    List <string> files = FolderLister.GetAllFiles(fileOrFolder);

                    if (files.Count > 0)
                    {
                        foreach (var file in files)
                        {
                            results.AddRange(ProcessByType(file, null, direction));
                        }
                    }
                    else
                    {
                        results.Add(ProcessEmptyDirectory(fileOrFolder, string.Empty, direction));
                    }
                }
            }
            catch (Exception ex)
            {
                ProcessLog.logError(ex.Message);
            }

            return(results);
        }
        private CompareResult ProcessEmptyDirectory(string currentFolder, string correspondingFolder, CompareDirection direction)
        {
            CompareResult result = new CompareResult();
            result.FileName = string.Empty;
            result.FileExtension = string.Empty;

            if (direction == CompareDirection.Left)
            {
                result.LeftFilePath = currentFolder;
                result.RightFilePath = correspondingFolder;
                result.LeftCreatedDate = currentFolder != string.Empty ? Directory.GetCreationTime(currentFolder) : DateTime.MinValue;
                result.LeftModifiedDate = currentFolder != string.Empty ? Directory.GetLastWriteTime(currentFolder) : DateTime.MinValue;
                result.RightCreatedDate = correspondingFolder != string.Empty ? Directory.GetCreationTime(correspondingFolder) : DateTime.MinValue;
                result.RightModifiedDate = correspondingFolder != string.Empty ? Directory.GetLastWriteTime(correspondingFolder) : DateTime.MinValue;
                result.ExistsLeft = currentFolder != string.Empty;
                result.ExistsRight = correspondingFolder != string.Empty;
            }
            else
            {
                result.RightFilePath = currentFolder;
                result.LeftFilePath = correspondingFolder;
                result.RightCreatedDate = currentFolder != string.Empty ? Directory.GetCreationTime(currentFolder) : DateTime.MinValue;
                result.RightModifiedDate = currentFolder != string.Empty ? Directory.GetLastWriteTime(currentFolder) : DateTime.MinValue;
                result.LeftCreatedDate = correspondingFolder != string.Empty ? Directory.GetCreationTime(correspondingFolder) : DateTime.MinValue;
                result.LeftModifiedDate = correspondingFolder != string.Empty ? Directory.GetLastWriteTime(correspondingFolder) : DateTime.MinValue;
                result.ExistsRight = currentFolder != string.Empty;
                result.ExistsLeft = correspondingFolder != string.Empty;
            }

            result.Match = currentFolder != string.Empty && correspondingFolder != string.Empty;
            result.Compared = true;

            return result;
        }
Beispiel #8
0
        private List <CompareResult> ProcessByType(string fileOrFolder, List <string> compareItems, CompareDirection direction)
        {
            List <string>        _compareItems = compareItems ?? new List <string>();
            List <CompareResult> results       = new List <CompareResult>();

            try
            {
                if (fileOrFolder.IsFile())
                {
                    results.Add(ProcessFile(fileOrFolder, _compareItems, direction));
                }
                else
                {
                    results.AddRange(ProcessFolder(fileOrFolder, _compareItems, direction));
                }
            }
            catch (Exception ex)
            {
                ProcessLog.logError(ex.Message);
            }
            return(results);
        }
Beispiel #9
0
        private CompareResult ProcessEmptyDirectory(string currentFolder, string correspondingFolder, CompareDirection direction)
        {
            CompareResult result = new CompareResult
            {
                FileName      = string.Empty,
                FileExtension = string.Empty
            };

            try
            {
                if (direction == CompareDirection.SOURCE)
                {
                    result.SourceFilePath          = currentFolder;
                    result.DestinationFilePath     = correspondingFolder;
                    result.SourceCreatedDate       = currentFolder != string.Empty ? Directory.GetCreationTime(currentFolder) : DateTime.MinValue;
                    result.SourceModifiedDate      = currentFolder != string.Empty ? Directory.GetLastWriteTime(currentFolder) : DateTime.MinValue;
                    result.DestinationCreatedDate  = correspondingFolder != string.Empty ? Directory.GetCreationTime(correspondingFolder) : DateTime.MinValue;
                    result.DestinationModifiedDate = correspondingFolder != string.Empty ? Directory.GetLastWriteTime(correspondingFolder) : DateTime.MinValue;
                    result.ExistsSource            = currentFolder != string.Empty;
                    result.ExistsDestination       = correspondingFolder != string.Empty;
                }
                else
                {
                    result.DestinationFilePath     = currentFolder;
                    result.SourceFilePath          = correspondingFolder;
                    result.DestinationCreatedDate  = currentFolder != string.Empty ? Directory.GetCreationTime(currentFolder) : DateTime.MinValue;
                    result.DestinationModifiedDate = currentFolder != string.Empty ? Directory.GetLastWriteTime(currentFolder) : DateTime.MinValue;
                    result.SourceCreatedDate       = correspondingFolder != string.Empty ? Directory.GetCreationTime(correspondingFolder) : DateTime.MinValue;
                    result.SourceModifiedDate      = correspondingFolder != string.Empty ? Directory.GetLastWriteTime(correspondingFolder) : DateTime.MinValue;
                    result.ExistsDestination       = currentFolder != string.Empty;
                    result.ExistsSource            = correspondingFolder != string.Empty;
                }

                result.Match    = currentFolder != string.Empty && correspondingFolder != string.Empty;
                result.Compared = true;
            }
            catch (Exception ex)
            {
                ProcessLog.logError(ex.Message);
            }

            return(result);
        }
Beispiel #10
0
        private CompareResult ProcessFile(string fileOrFolder, List <string> otherFiles, CompareDirection direction)
        {
            string        file   = otherFiles.SingleOrDefault(r => r.IsFile() && r.EndsWith('\\' + fileOrFolder.GetFileName()));
            CompareResult result = file != null?ProcessFileInternal(fileOrFolder, file, direction)
                                       : ProcessFileInternal(fileOrFolder, string.Empty, direction);

            return(result);
        }
 private CompareResult ProcessFile(string fileOrFolder, List<string> otherFiles, CompareDirection direction)
 {
     string file = otherFiles.SingleOrDefault(r => r.IsFile() && r.EndsWith('\\' + fileOrFolder.GetFileName()));
     CompareResult result = file != null ? ProcessFileInternal(fileOrFolder, file, direction)
                                         : ProcessFileInternal(fileOrFolder, string.Empty, direction);
     return result;
 }
Beispiel #12
0
        private List <CompareResult> ProcessFolder(string fileOrFolder, List <string> otherFiles, CompareDirection direction)
        {
            List <CompareResult> results = new List <CompareResult>();

            string dirName          = '\\' + fileOrFolder.GetCurrentDir();
            string correspondingDir = otherFiles.SingleOrDefault(r => r.IsDirectory() && r.EndsWith(dirName));

            if (correspondingDir != null)
            {
                List <string> leftFiles   = DirectoryLister.GetAllFiles(fileOrFolder);
                List <string> cRightFiles = DirectoryLister.GetAllFiles(correspondingDir);

                if (leftFiles.Count == 0 && cRightFiles.Count == 0)
                {
                    results.Add(ProcessEmptyDirectory(fileOrFolder, correspondingDir, direction));
                }
                else
                {
                    foreach (string fileorFolder in leftFiles)
                    {
                        results.AddRange(ProcessByType(fileorFolder, cRightFiles, direction));
                    }
                }
            }
            else
            {
                List <string> files = DirectoryLister.GetAllFiles(fileOrFolder);

                if (files.Count > 0)
                {
                    foreach (var file in files)
                    {
                        results.AddRange(ProcessByType(file, null, direction));
                    }
                }
                else
                {
                    results.Add(ProcessEmptyDirectory(fileOrFolder, string.Empty, direction));
                }
            }

            return(results);
        }
		private bool CompareItems( GLItem item1, GLItem item2, CompareDirection direction )
		{
			// add a numeric compare here also
			bool dir = false;

			if ( direction == CompareDirection.GreaterThan )
				dir=true;

			if ( this.SortDirection == SortDirections.SortAscending )
				dir = !dir;		// flip it

			if ( !this.NumericCompare )
			{
				if ( dir )
				{
					return ( item1.SubItems[SortColumn].Text.CompareTo( item2.SubItems[SortColumn].Text ) < 0 );
				}
				else
				{
					return ( item1.SubItems[SortColumn].Text.CompareTo( item2.SubItems[SortColumn].Text ) > 0 );
				}
			}
			else
			{
				try
				{
					double n1 = Double.Parse( item1.SubItems[SortColumn].Text );
					double n2 = Double.Parse( item2.SubItems[SortColumn].Text );

					if ( dir )
					{	// compare the numeric values inside the columns
						return ( n1 < n2 );
					}
					else
					{
						return ( n1 > n2 );
					}
				}
				catch( Exception ex )
				{
					// no numeric value (bad bad)
					Debug.WriteLine( ex.ToString() );
					return false;
				}
			}
		}
Beispiel #14
0
        private CompareResult ProcessEmptyDirectory(string currentFolder, string correspondingFolder, CompareDirection direction)
        {
            CompareResult result = new CompareResult();

            result.FileName      = string.Empty;
            result.FileExtension = string.Empty;

            if (direction == CompareDirection.Left)
            {
                result.LeftFilePath      = currentFolder;
                result.RightFilePath     = correspondingFolder;
                result.LeftCreatedDate   = currentFolder != string.Empty ? Directory.GetCreationTime(currentFolder) : DateTime.MinValue;
                result.LeftModifiedDate  = currentFolder != string.Empty ? Directory.GetLastWriteTime(currentFolder) : DateTime.MinValue;
                result.RightCreatedDate  = correspondingFolder != string.Empty ? Directory.GetCreationTime(correspondingFolder) : DateTime.MinValue;
                result.RightModifiedDate = correspondingFolder != string.Empty ? Directory.GetLastWriteTime(correspondingFolder) : DateTime.MinValue;
                result.ExistsLeft        = currentFolder != string.Empty;
                result.ExistsRight       = correspondingFolder != string.Empty;
            }
            else
            {
                result.RightFilePath     = currentFolder;
                result.LeftFilePath      = correspondingFolder;
                result.RightCreatedDate  = currentFolder != string.Empty ? Directory.GetCreationTime(currentFolder) : DateTime.MinValue;
                result.RightModifiedDate = currentFolder != string.Empty ? Directory.GetLastWriteTime(currentFolder) : DateTime.MinValue;
                result.LeftCreatedDate   = correspondingFolder != string.Empty ? Directory.GetCreationTime(correspondingFolder) : DateTime.MinValue;
                result.LeftModifiedDate  = correspondingFolder != string.Empty ? Directory.GetLastWriteTime(correspondingFolder) : DateTime.MinValue;
                result.ExistsRight       = currentFolder != string.Empty;
                result.ExistsLeft        = correspondingFolder != string.Empty;
            }

            result.Match    = currentFolder != string.Empty && correspondingFolder != string.Empty;
            result.Compared = true;

            return(result);
        }
 private List<CompareResult> ProcessByType(string fileOrFolder, List<string> compareItems, CompareDirection direction)
 {
     List<string> _compareItems = compareItems ?? new List<string>();
     List<CompareResult> results = new List<CompareResult>();
     if (fileOrFolder.IsFile())
     {
         results.Add(ProcessFile(fileOrFolder, _compareItems, direction));
     }
     else
     {
         results.AddRange(ProcessFolder(fileOrFolder, _compareItems, direction));
     }
     return results;
 }
        private List<CompareResult> ProcessFolder(string fileOrFolder, List<string> otherFiles, CompareDirection direction)
        {
            List<CompareResult> results = new List<CompareResult>();

            string dirName = '\\' + fileOrFolder.GetCurrentDir();
            string correspondingDir = otherFiles.SingleOrDefault(r => r.IsDirectory() && r.EndsWith(dirName));
            if (correspondingDir != null)
            {
                List<string> leftFiles = DirectoryLister.GetAllFiles(fileOrFolder);
                List<string> cRightFiles = DirectoryLister.GetAllFiles(correspondingDir);

                if (leftFiles.Count == 0 && cRightFiles.Count == 0)
                {
                    results.Add(ProcessEmptyDirectory(fileOrFolder, correspondingDir, direction));
                }
                else
                {
                    foreach (string fileorFolder in leftFiles)
                    {
                        results.AddRange(ProcessByType(fileorFolder, cRightFiles, direction));
                    }
                }
            }
            else
            {
                List<string> files = DirectoryLister.GetAllFiles(fileOrFolder);

                if (files.Count > 0)
                {
                    foreach (var file in files)
                    {
                        results.AddRange(ProcessByType(file, null, direction));
                    }
                }
                else
                {
                    results.Add(ProcessEmptyDirectory(fileOrFolder, string.Empty, direction));
                }
            }

            return results;
        }
        private CompareResult ProcessFileInternal(string fileOrFolder, string file, CompareDirection direction)
        {
            CompareResult result = new CompareResult();
            result.FileName = fileOrFolder.GetFileName();
            result.FileExtension = fileOrFolder.GetFileExtension();

            if (direction == CompareDirection.Left)
            {
                result.LeftFilePath = fileOrFolder;
                result.LeftCreatedDate = File.GetCreationTime(fileOrFolder);
                result.LeftModifiedDate = File.GetLastWriteTime(fileOrFolder);
                result.LeftHash = file != string.Empty ? MD5Hash.HashFile(fileOrFolder) : string.Empty;
                result.RightFilePath = file != string.Empty ? file : string.Empty;
                result.RightCreatedDate = file != string.Empty ? File.GetCreationTime(file) : DateTime.MinValue;
                result.RightModifiedDate = file != string.Empty ? File.GetLastWriteTime(file) : DateTime.MinValue;
                result.RightHash = file != string.Empty ? MD5Hash.HashFile(file) : string.Empty;
                result.ExistsLeft = true;
                result.ExistsRight = file != string.Empty;
            }
            else
            {
                result.RightFilePath = fileOrFolder;
                result.RightCreatedDate = File.GetCreationTime(fileOrFolder);
                result.RightModifiedDate = File.GetLastWriteTime(fileOrFolder);
                result.RightHash = file != string.Empty ? MD5Hash.HashFile(fileOrFolder) : string.Empty;
                result.LeftFilePath = file != string.Empty ? file : string.Empty;
                result.LeftCreatedDate = file != string.Empty ? File.GetCreationTime(file) : DateTime.MinValue;
                result.LeftModifiedDate = file != string.Empty ? File.GetLastWriteTime(file) : DateTime.MinValue;
                result.LeftHash = file != string.Empty ? MD5Hash.HashFile(file) : string.Empty;
                result.ExistsRight = true;
                result.ExistsLeft = file != string.Empty;
            }

            result.Match = file != string.Empty ? result.LeftHash == result.RightHash : false;
            result.Compared = true;
            result.IsFile = true;

            return result;
        }
Beispiel #18
0
        /// <summary>Compare items.</summary>
        /// <param name="item1">Item 1.</param>
        /// <param name="item2">Item 2.</param>
        /// <param name="direction">The direction.</param>
        /// <returns>The <see cref="bool" />.</returns>
        private bool CompareItems(VisualListViewItem item1, VisualListViewItem item2, CompareDirection direction)
        {
            bool dir = false;

            if (direction == CompareDirection.GreaterThan)
            {
                dir = true;
            }

            if (SortDirection == SortDirections.Ascending)
            {
                dir = !dir;
            }

            if (!NumericCompare)
            {
                if (dir)
                {
                    return(string.Compare(item1.SubItems[SortColumn].Text, item2.SubItems[SortColumn].Text, StringComparison.Ordinal) < 0);
                }
                else
                {
                    return(string.Compare(item1.SubItems[SortColumn].Text, item2.SubItems[SortColumn].Text, StringComparison.Ordinal) > 0);
                }
            }
            else
            {
                try
                {
                    double n1 = double.Parse(item1.SubItems[SortColumn].Text);
                    double n2 = double.Parse(item2.SubItems[SortColumn].Text);

                    if (dir)
                    {
                        return(n1 < n2);
                    }
                    else
                    {
                        return(n1 > n2);
                    }
                }
                catch (Exception e)
                {
                    Debug.WriteLine(e.ToString());
                    return(false);
                }
            }
        }
Beispiel #19
0
        private List <CompareResult> ProcessByType(string fileOrFolder, List <string> compareItems, CompareDirection direction)
        {
            List <string>        _compareItems = compareItems ?? new List <string>();
            List <CompareResult> results       = new List <CompareResult>();

            if (fileOrFolder.IsFile())
            {
                results.Add(ProcessFile(fileOrFolder, _compareItems, direction));
            }
            else
            {
                results.AddRange(ProcessFolder(fileOrFolder, _compareItems, direction));
            }
            return(results);
        }