Exemplo n.º 1
0
        protected override void ConfigureApplicationContainer(global::Nancy.TinyIoc.TinyIoCContainer container)
        {
            // TODO: support multiple doc-stores
            var docStore = new DocumentStore {
                ConnectionStringName = "RavenDB"
            };
            var conventions = docStore.Conventions;

            conventions.FindFullDocumentKeyFromNonStringIdentifier = (o, type, arg3) =>
            {
                var ret         = conventions.DefaultFindFullDocumentKeyFromNonStringIdentifier(o, type, arg3);
                var areaConfigs = HttpContext.Current.Items["AreaConfigs"] as AreaConfigs;
                if (areaConfigs != null)
                {
                    ret = areaConfigs.DocumentsPrefix + ret;
                }

                return(ret);
            };

            conventions.TransformTypeTagNameToDocumentKeyPrefix = s =>
            {
                var ret         = DocumentConvention.DefaultTransformTypeTagNameToDocumentKeyPrefix(s);
                var areaConfigs = HttpContext.Current.Items["AreaConfigs"] as AreaConfigs;
                if (areaConfigs != null)
                {
                    ret = areaConfigs.DocumentsPrefix + ret;
                }

                return(ret);
            };

            AppDomainAssemblyTypeScanner.LoadAssembliesWithNancyReferences();

            docStore.Initialize();
            container.Register <IDocumentStore>(docStore, "DocStore");

            base.ConfigureApplicationContainer(container);
        }