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();
}