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

Resolve() public method

Resolves the given context using all the available patterns, checking their resolution in the file system as well.
public Resolve ( IPatternResolutionContext context ) : PatternResolution
context IPatternResolutionContext Resolution context
return PatternResolution
        public PatternResolution Resolve(IPatternResolutionContext context)
        {
            Contract.Requires(context != null);

            var logLines = new StringBuilder();

            foreach (RepositoryPattern pattern in patterns)
            {
                string res = pattern.Resolve(context);

                if (res != null)
                {
                    logLines.AppendFormat("Trying resolved FS repository path: {0}\n", res);

                    if (fsAccess.Exists(res))
                        return PatternResolution.Success(res);
                    else
                        logLines.AppendFormat("FS repository path `{0}` is invalid\n", res);
                }
            }

            return PatternResolution.Failure(logLines.ToString());
        }

Usage Example

        public void NoMatchBecauseOfFileSystem()
        {
            var access = new Mock<IFileSystemRepositoryAccess>();
            var context = CreateContext();

            var patterns = new RepositoryPatternCollection(access.Object);
            patterns.AddPattern(new RepositoryPattern("pattern1"));
            patterns.AddPattern(new RepositoryPattern("pattern2"));
            patterns.AddPattern(new RepositoryPattern("pattern3"));

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

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