/// <summary> /// Serves as a hash function for a particular type. /// </summary> /// <returns> /// A hash code for the current <see cref="T:System.Object"/>. /// </returns> /// <filterpriority>2</filterpriority> public override int GetHashCode() { int cName = ConnectorName == null ? 0 : ConnectorName.GetHashCode(); int rUri = RepositoryUri == null ? 0 : RepositoryUri.GetHashCode(); int rId = RepositoryId == null ? 0 : RepositoryId.GetHashCode(); return(cName ^ rUri ^ rId); }
protected override async Task <ValidationResult> PopulateSettings(SettingsContainer settings) { if (string.IsNullOrWhiteSpace(RepositoryUri)) { return(ValidationResult.Failure($"Missing repository URI")); } Uri repoUri; try { repoUri = RepositoryUri.ToUri(); } catch (UriFormatException) { return(ValidationResult.Failure($"Bad repository URI: '{RepositoryUri}'")); } var didRead = false; foreach (var reader in _settingsReaders) { if (didRead) { continue; } if (await reader.CanRead(repoUri)) { didRead = true; settings.SourceControlServerSettings.Repository = await reader.RepositorySettings(repoUri, TargetBranch); } } if (!didRead) { return(ValidationResult.Failure($"Unable to work out which platform to use {RepositoryUri} could not be matched")); } var baseResult = await base.PopulateSettings(settings); if (!baseResult.IsSuccess) { return(baseResult); } if (settings.SourceControlServerSettings.Repository == null) { return(ValidationResult.Failure($"Could not read repository URI: '{RepositoryUri}'")); } settings.SourceControlServerSettings.Scope = ServerScope.Repository; settings.UserSettings.MaxRepositoriesChanged = 1; return(ValidationResult.Success); }
protected override async Task <ValidationResult> PopulateSettings(SettingsContainer settings) { if (string.IsNullOrWhiteSpace(RepositoryUri)) { return(ValidationResult.Failure($"Missing repository URI")); } Uri repoUri; try { repoUri = RepositoryUri.ToUri(); } catch (UriFormatException) { return(ValidationResult.Failure($"Bad repository URI: '{RepositoryUri}'")); } ISettingsReader reader = await TryGetSettingsReader(repoUri, Platform); if (reader == null) { return(ValidationResult.Failure($"Unable to work out which platform to use {RepositoryUri} could not be matched")); } settings.SourceControlServerSettings.Repository = await reader.RepositorySettings(repoUri, SetAutoMerge ?? false, TargetBranch, MergeStrategy ?? GitPullRequestMergeStrategy.NoFastForward); var baseResult = await base.PopulateSettings(settings); if (!baseResult.IsSuccess) { return(baseResult); } if (settings.SourceControlServerSettings.Repository == null) { return(ValidationResult.Failure($"Could not read repository URI: '{RepositoryUri}'")); } settings.SourceControlServerSettings.Scope = ServerScope.Repository; settings.UserSettings.MaxRepositoriesChanged = 1; settings.UserSettings.Directory = CheckoutDirectory; return(ValidationResult.Success); }
protected override ValidationResult PopulateSettings(SettingsContainer settings) { Uri repoUri; try { repoUri = RepositoryUri.ToUri(); } catch { return(ValidationResult.Failure($"Bad repository URI: '{RepositoryUri}'")); } var didRead = false; foreach (var reader in _settingsReaders) { if (reader.CanRead(repoUri)) { didRead = true; settings.SourceControlServerSettings.Repository = reader.RepositorySettings(repoUri, TargetBranch); } } if (!didRead) { return(ValidationResult.Failure($"Unable to work out which platform to use {RepositoryUri} could not be matched")); } var baseResult = base.PopulateSettings(settings); if (!baseResult.IsSuccess) { return(baseResult); } if (settings.SourceControlServerSettings.Repository == null) { return(ValidationResult.Failure($"Could not read repository URI: '{RepositoryUri}'")); } settings.SourceControlServerSettings.Scope = ServerScope.Repository; settings.UserSettings.MaxRepositoriesChanged = 1; return(ValidationResult.Success); }
/// <summary> /// Parse child tag /// </summary> protected override ITlvTag ParseChild(ITlvTag childTag) { switch (childTag.Type) { case Constants.PublicationData.TagType: return(PublicationData = childTag as PublicationData ?? new PublicationData(childTag)); case Constants.PublicationRecord.PublicationReferencesTagType: StringTag refTag = GetStringTag(childTag); PublicationReferences.Add(refTag.Value); return(refTag); case Constants.PublicationRecord.PublicationRepositoryUriTagType: StringTag uriTag = GetStringTag(childTag); RepositoryUri.Add(uriTag.Value); return(uriTag); default: return(base.ParseChild(childTag)); } }