public RepositoryViewModel(string name, TrackRepository trackRepository, RepositoriesViewModel repositories) { TrackRepository = trackRepository; GitLabWrapper = new GitLabWrapper(TrackRepository.Server, TrackRepository.Token); HasAdminPrivileges = GitLabWrapper.IsAdmin(); GitReader = new GitReaderWrapper(trackRepository.LocalPath); UpdateConfigs(trackRepository, repositories); Repositories = repositories; Origin = GitLabWrapper.FindProject(GitReader.GetOriginRepoPath()); Upstream = GitLabWrapper.FindProject(GitReader.GetUpstreamRepoPath()); Name = name; Update(); }
EditTrackRepository CreateEditRepository(TrackRepository repo) { return new EditTrackRepository() { Name = repo.Name, ConfigName = repo.ConfigName, RepoConfig = repo.ConfigName != null ? this.configsReader[repo.ConfigName] : null, Token = repo.Token, LocalPath = repo.LocalPath, }; }
void UpdateConfigs(TrackRepository trackRepository, RepositoriesViewModel repositories) { RepoConfig = repositories.RepoConfigs[trackRepository.ConfigName]; }
bool IsValidConfig(TrackRepository repo) { if (string.IsNullOrEmpty(repo.Name)) return false; if (!RepoConfigs.HasConfig(repo.ConfigName)) return false; if (string.IsNullOrEmpty(repo.LocalPath)) return false; if (string.IsNullOrEmpty(repo.Server)) return false; if (string.IsNullOrEmpty(repo.Token)) return false; return DirectoryHelper.IsGitDir(repo.LocalPath); }