コード例 #1
0
        internal OutgoingSourceFile GetSelectedFileById(int fileId, int branch)
        {
            var file = Context.Files
                       .Include(x => x.AssociatedCommitFiles)
                       .ThenInclude(AssociatedCommitFiles => AssociatedCommitFiles.Commit)
                       .FirstOrDefault(x => x.Id == fileId);
            var commitKey  = file.AssociatedCommitFiles.FirstOrDefault().Commit.CommitKey;
            var repository = Context.Repository
                             .Include(x => x.AssociatedRepositoryBranches)
                             .ThenInclude(AssociatedRepositoryBranches => AssociatedRepositoryBranches.Branch)
                             .ThenInclude(Branch => Branch.AssociatedBranchCommits)
                             .ThenInclude(AssociatedBranchCommits => AssociatedBranchCommits.Commit)
                             .FirstOrDefault(x =>
                                             x.AssociatedRepositoryBranches
                                             .Any(z =>
                                                  z.Branch.AssociatedBranchCommits
                                                  .Any(y =>
                                                       y.Commit.CommitKey == commitKey)));
            var fileName    = file.FilePath.Split('/').LastOrDefault();
            var fileLanauge = GitRepositoryManager.GetFileLanaguage(fileName);
            var fileData    = ExecuteSingle($"{Program.Configuration.ShellScripts.FirstOrDefault(x => x.Name == "GetCommitFile.sh").Path}", $"{repository.FolderPath} {commitKey}:{file.FilePath}");

            return(new OutgoingSourceFile {
                Data = fileData, LanguageType = fileLanauge
            });
        }
コード例 #2
0
        internal OutgoingSourceFile GetSelectedFileByName(string fileName, int projectId, int branchId)
        {
            var project       = Context.Projects.Include(x => x.Repository).FirstOrDefault(x => x.Id == projectId);
            var branch        = Context.Branches.FirstOrDefault(x => x.Id == branchId);
            var fileLanauge   = GitRepositoryManager.GetFileLanaguage(fileName);
            var branchCommits = Execute($"{Program.Configuration.ShellScripts.FirstOrDefault(x => x.Name == "GetGitList.sh").Path}", $"{project.Repository.FolderPath} {branch.BranchName}");
            var fileData      = ExecuteSingle($"{Program.Configuration.ShellScripts.FirstOrDefault(x => x.Name == "GetCommitFile.sh").Path}", $"{project.Repository.FolderPath} {branchCommits.FirstOrDefault()}:{fileName}");

            return(new OutgoingSourceFile {
                Data = fileData, LanguageType = fileLanauge
            });
        }