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