コード例 #1
0
ファイル: DataManager.cs プロジェクト: Gvin/Diplom
 public void AddFile(RepositoryFile file, Repository repository)
 {
     fileManager.AddFile(file, repository);
 }
コード例 #2
0
ファイル: DataManager.cs プロジェクト: Gvin/Diplom
 public RepositoryFile MarkFileAsExisting(RepositoryFile file)
 {
     return fileManager.MarkFileAsExisting(file);
 }
コード例 #3
0
ファイル: DataManager.cs プロジェクト: Gvin/Diplom
 public void RemoveFile(RepositoryFile file)
 {
     fileManager.RemoveFile(file);
 }
コード例 #4
0
ファイル: DataManager.cs プロジェクト: Gvin/Diplom
 public RepositoryFile MarkFileAsDeleted(RepositoryFile file)
 {
     return fileManager.MarkFileAsDeleted(file);
 }
コード例 #5
0
ファイル: Change.cs プロジェクト: Gvin/Diplom
 public Change(RepositoryFile file, ChangeType changeType, int lineIndex, String oldValue)
     : this(file, changeType)
 {
     this.lineIndex = lineIndex;
     this.oldValue = oldValue;
 }
コード例 #6
0
ファイル: Change.cs プロジェクト: Gvin/Diplom
 public Change(RepositoryFile file, ChangeType changeType)
 {
     this.file = file;
     this.changeType = changeType;
 }
コード例 #7
0
ファイル: Change.cs プロジェクト: Gvin/Diplom
 public Change(int id, RepositoryFile file, ChangeType changeType)
     : base(id)
 {
     this.file = file;
     this.changeType = changeType;
 }
コード例 #8
0
ファイル: DesktopApiController.cs プロジェクト: Gvin/Diplom
        private List<Change> GetFileChanges(String repositoryPath, String commitPath, RepositoryFile file)
        {
            var result = new List<Change>();

            var sourcePath = file.GetFileRealPath(repositoryPath);
            var destinationPath = file.GetFileRealPath(commitPath);

            TextFile sourceFile;
            TextFile destinationFile;
            if (System.IO.File.Exists(destinationPath))
            {
                destinationFile = new TextFile(destinationPath);
            }
            else
            {
                destinationFile = new TextFile();
                DataManager.GetInstance().MarkFileAsDeleted(file);
            }

            sourceFile = new TextFile(sourcePath);

            var difference = DiffHelper.GetDifference(sourceFile, destinationFile);

            foreach (DiffResultSpan diffResultSpan in difference)
            {
                switch (diffResultSpan.Status)
                {
                    case DiffResultSpanStatus.DeleteSource:
                        for (int i = 0; i < diffResultSpan.Length; i++)
                        {
                            var change = new Change(file, ChangeType.Remove, diffResultSpan.SourceIndex,
                                                    ((TextLine) sourceFile.GetByIndex(diffResultSpan.SourceIndex + i)).
                                                        Line);
                            result.Add(change);
                        }
                        break;
                    case DiffResultSpanStatus.AddDestination:
                        for (int i = 0; i < diffResultSpan.Length; i++)
                        {
                            var change = new Change(file, ChangeType.Add, diffResultSpan.DestIndex,
                                                    ((TextLine)destinationFile.GetByIndex(diffResultSpan.DestIndex + i)).
                                                        Line);
                            result.Add(change);
                        }
                        break;
                    case DiffResultSpanStatus.Replace:
                        for (int i = 0; i < diffResultSpan.Length; i++)
                        {
                            var change = new Change(file, ChangeType.Update, diffResultSpan.SourceIndex,
                                                    ((TextLine)sourceFile.GetByIndex(diffResultSpan.SourceIndex + i)).
                                                        Line);
                            result.Add(change);
                        }
                        break;
                }
            }

            return result;
        }