コード例 #1
0
        public ActionResult SyncIndexes()
        {
            Server.ScriptTimeout = 7200; //timeout in 2 hours

            var masterDocumentStore = _storeFactory.Create(RavenInstance.Master());

            IndexCreation.CreateIndexes(new CompositionContainer(
                                            new AssemblyCatalog(typeof(Issues).Assembly), new ExportProvider[0]),
                                        masterDocumentStore.DatabaseCommands.ForDatabase(CoreConstants.ErrorditeMasterDatabaseName),
                                        masterDocumentStore.Conventions);

            foreach (var organisation in Core.Session.MasterRaven.Query <Organisation>().GetAllItemsAsList(100))
            {
                organisation.RavenInstance = Core.Session.MasterRaven.Load <RavenInstance>(organisation.RavenInstanceId);

                using (_session.SwitchOrg(organisation))
                {
                    _session.BootstrapOrganisation(organisation);
                }
            }

            ConfirmationNotification("All indexes for all organisations have been updated");
            return(RedirectToAction("index"));
        }