Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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));
            }
        }