示例#1
0
        private Possible <INugetConfiguration> ParseNugetConfigurationFrom(
            [CanBeNull] IObjectLiteralExpression configurationExpression)
        {
            IExpression expression;

            if (configurationExpression == null)
            {
                return(new MalformedConfigurationFailure("An object literal with NuGet resolver-specific configuration is expected"));
            }

            var result = new NugetConfiguration();

            if (configurationExpression.TryFindAssignmentPropertyInitializer(NaiveConfigurationParsingUtilities.CredentialProvidersFieldName, out expression))
            {
                if (expression.Kind != SyntaxKind.ArrayLiteralExpression)
                {
                    return(new MalformedConfigurationFailure("An array literal is expected for NuGet credential providers"));
                }

                var credentialProviders = expression.Cast <IArrayLiteralExpression>();
                foreach (var element in credentialProviders.Elements)
                {
                    var elementResult = ParseNugetConfigurationFrom(element.As <IObjectLiteralExpression>());
                    if (!elementResult.Succeeded)
                    {
                        return(elementResult);
                    }

                    result.CredentialProviders.Add(elementResult.Result);
                }
            }

            if (configurationExpression.TryFindAssignmentPropertyInitializer(NaiveConfigurationParsingUtilities.ToolUrlFieldName, out expression))
            {
                // TODO: Consider validating that string is well-formed URL
                result.ToolUrl = expression.As <ILiteralExpression>()?.Text;
            }

            if (configurationExpression.TryFindAssignmentPropertyInitializer(NaiveConfigurationParsingUtilities.HashFieldName, out expression))
            {
                result.Hash = expression.As <ILiteralExpression>()?.Text;
            }

            return(result);
        }
示例#2
0
 public NugetClient(NugetConfiguration config, AppSettings settings)
 {
     _config   = config;
     _settings = settings;
 }