private IDictionary CreateInternalDictionary(int dimension)
        {
            var result = dimension == Depth - 1 ?
                         (IDictionary)_dictionaryFactory.Create <TValue>() :
                         (IDictionary)_dictionaryFactory.Create <IDictionary>();

            if (result == null)
            {
                ThrowHelper.ThrowInvalidOperationException(ExceptionResource.InvalidOperation_NoValue);
            }
            return(result);
        }
Example #2
0
        public AssetManager(
            IRequestRouter requestRouter,
            IFrameworkConfiguration frameworkConfiguration,
            ICssWriterFactory cssWriterFactory,
            IJavascriptWriterFactory javascriptWriterFactory,
            IStringBuilderFactory stringBuilderFactory,
            IDictionaryFactory dictionaryFactory)
        {
            _frameworkConfiguration  = frameworkConfiguration;
            _cssWriterFactory        = cssWriterFactory;
            _javascriptWriterFactory = javascriptWriterFactory;
            _stringBuilderFactory    = stringBuilderFactory;

            _elementsAddedToWebsite = new HashSet <string>();
            _elementsAddedToModule  = dictionaryFactory.Create <string, HashSet <string> >();
            _elementsAddedToPage    = dictionaryFactory.Create <string, HashSet <string> >();

            _moduleStyles    = dictionaryFactory.Create <string, string>();
            _moduleFunctions = dictionaryFactory.Create <string, string>();
            _pageStyles      = dictionaryFactory.Create <string, string>();
            _pageFunctions   = dictionaryFactory.Create <string, string>();

            _websiteStylesBuilder    = stringBuilderFactory.Create();
            _websiteFunctionsBuilder = stringBuilderFactory.Create();

            _moduleStyleBuilders    = dictionaryFactory.Create <string, IStringBuilder>();
            _moduleFunctionBuilders = dictionaryFactory.Create <string, IStringBuilder>();
            _pageStyleBuilders      = dictionaryFactory.Create <string, IStringBuilder>();
            _pageFunctionBuilders   = dictionaryFactory.Create <string, IStringBuilder>();

            frameworkConfiguration.Subscribe(config =>
            {
                var rootPath = config.AssetRootPath;
                if (rootPath.EndsWith("/") && rootPath.Length > 1)
                {
                    rootPath = rootPath.Substring(0, rootPath.Length - 1);
                }
                _rootPath = new PathString(rootPath);

                var priorRegistration = _runableRegistration;

                _runableRegistration = requestRouter.Register(this,
                                                              new FilterAllFilters(
                                                                  new FilterByMethod(Method.Get),
                                                                  new FilterByPath(_rootPath.Value + "/**")), -10);

                if (priorRegistration != null)
                {
                    priorRegistration.Dispose();
                }
            });
        }
Example #3
0
 public DataCatalog(
     IDictionaryFactory dictionaryFactory)
 {
     _assemblies    = new HashSet <string>();
     _types         = new HashSet <Type>();
     _registrations = dictionaryFactory.Create <Type, SupplierRegistration[]>();
 }
        ResolutionResult ResolveNamedInstanceDictionary(ResolutionRequest request)
        {
            var keyType    = dictionaryFactory.GetKeyType(request.ServiceType);
            var valueType  = dictionaryFactory.GetValueType(request.ServiceType);
            var dictionary = dictionaryFactory.Create(keyType, valueType);

            var allServiceTypeRegistrations = registrationAccessor.GetAll(valueType);

            foreach (var registration in allServiceTypeRegistrations)
            {
                var serviceResult = ResolveSingleInstance(registration, request);
                if (!serviceResult.IsSuccess)
                {
                    // TODO: Throw an exception? Return a failed resolution result? Currently I'm silently skipping the registration.
                    continue;
                }

                var dictionaryKey = ConvertToNameType(registration.Name, keyType);
                dictionary.Add(dictionaryKey, serviceResult.ResolvedObject);
            }

            var dictionaryRegistration = CreateNamedInstanceDictionaryRegistration(request.ServiceType, dictionary);
            var resolutionPath         = request.ResolutionPath.CreateChild(dictionaryRegistration);

            return(ResolutionResult.Success(resolutionPath, dictionary));
        }
 public RenderContext(
     IAssetManager assetManager,
     IHtmlWriter htmlWriter,
     IDictionaryFactory dictionaryFactory,
     IStringBuilderFactory stringBuilderFactory,
     Action <IOwinContext, Func <string> > trace)
 {
     _assetManager         = assetManager;
     _stringBuilderFactory = stringBuilderFactory;
     _trace        = trace;
     _dataContexts = dictionaryFactory.Create <int, IDataContext>();
     Html          = htmlWriter;
 }