Bari.Plugins.FSRepository.Model.RepositoryPattern.Resolve C# (CSharp) Method

Resolve() public method

Tries to resolve the pattern using the given context
public Resolve ( IPatternResolutionContext context ) : string
context IPatternResolutionContext The context to get variables from
return string
        public string Resolve(IPatternResolutionContext context)
        {
            Contract.Requires(context != null);

            var resultBuilder = new StringBuilder(pattern);

            if (!EnvironmentVariables.ResolveEnvironmentVariables(context, resultBuilder,
                m => log.InfoFormat("Failed to resolve FS repository pattern {0}: environment variable {1} does not exists", pattern, m)))
                return null;

            resultBuilder.Replace("%NAME", context.DependencyName);
            resultBuilder.Replace("%FILENAME", context.FileName);
            resultBuilder.Replace("%EXT", context.Extension);
            if (!string.IsNullOrEmpty(context.Version))
                resultBuilder.Replace("%VERSION", context.Version);
            else
            {
                if (resultBuilder.ToString().IndexOf("%VERSION", System.StringComparison.InvariantCulture) >= 0)
                    // Pattern requires version but we don't have it
                    return null;
            }

            return resultBuilder.ToString();
        }

Usage Example

Beispiel #1
0
        public void NonExistingEnvironmentVariablesStopsResolution()
        {
            var pattern = new RepositoryPattern("$ENV1, $ENV2 and $ENV3");
            var context = new Mock<IPatternResolutionContext>();

            context.Setup(c => c.GetEnvironmentVariable("ENV1")).Returns("e1");

            var resolution = pattern.Resolve(context.Object);

            resolution.Should().BeNull();
        }
All Usage Examples Of Bari.Plugins.FSRepository.Model.RepositoryPattern::Resolve