public void Dispose() { if (_securityDisabler != null) { _securityDisabler.Dispose(); _securityDisabler = null; } if (_siteContextSwitcher != null) { _siteContextSwitcher.Dispose(); _siteContextSwitcher = null; } if (_languageSwitcher != null) { _languageSwitcher.Dispose(); _languageSwitcher = null; } if (_databaseSwitcher != null) { _databaseSwitcher.Dispose(); _databaseSwitcher = null; } if (_userSwitcher != null) { _userSwitcher.Dispose(); _userSwitcher = null; } }
protected override void AddPlugins(ItemModel source, PipelineStep pipelineStep) { var settings = new WriteToTagSettings(); var database = Settings.GetSetting("DEF.WriteToTagStepConverter.Db"); using (var db = new DatabaseSwitcher(Database.GetDatabase(database))) { var createPath = base.GetStringValue(source, WriteToTagSettingsItemModel.CreatePath); if (createPath != null) { var parentTagItem = Sitecore.Context.Data.Database.GetItem(createPath); settings.CreatePath = parentTagItem; } var destinationTemplate = base.GetStringValue(source, WriteToTagSettingsItemModel.DestinationTemplate); if (createPath != null) { var desiredTemplate = Sitecore.Context.Data.Database.GetItem(ID.Parse(destinationTemplate)); settings.DestinationTemplate = (TemplateItem)desiredTemplate; } } var sourceField = base.GetStringValue(source, WriteToTagSettingsItemModel.SourceField); var destinationField = base.GetStringValue(source, WriteToTagSettingsItemModel.DestinationField); var countField = base.GetStringValue(source, WriteToTagSettingsItemModel.CountField); settings.SourceField = sourceField; settings.DestinationField = destinationField; settings.CountField = countField; pipelineStep.Plugins.Add(settings); }
public IEnumerable <Item> GetAllItemsWithPresentationFilteredByTemplate(SiteInfo siteInfo, ID baseTemplateId, string forceDatabase) { var databaseName = !string.IsNullOrEmpty(forceDatabase) ? forceDatabase : siteInfo.Database; var database = Database.GetDatabase(databaseName); using (var databaseSwitcher = new DatabaseSwitcher(database)) { var startItem = database.GetItem($"{siteInfo.RootPath}{siteInfo.StartItem}"); return(Recurse(startItem, baseTemplateId)); } }
/// <summary> /// Initializes a new instance of the <see cref="Db"/> class with the specified database. /// </summary> /// <param name="databaseName">The database name.</param> public Db(string databaseName) { Assert.ArgumentNotNullOrEmpty(databaseName, "databaseName"); this.database = Database.GetDatabase(databaseName); this.dataStorage = new DataStorage(this.database); this.dataStorageSwitcher = new DataStorageSwitcher(this.dataStorage); this.databaseSwitcher = new DatabaseSwitcher(this.database); var args = new InitDbArgs(this.database, this.dataStorage); CorePipeline.Run("initFakeDb", args); }
public Db(string databaseName) { Assert.ArgumentNotNullOrEmpty(databaseName, "databaseName"); this.database = Database.GetDatabase(databaseName); this.dataStorage = new DataStorage(this.database); this.databaseSwitcher = new DatabaseSwitcher(this.database); var args = new InitDbArgs(this.database, this.dataStorage); CorePipeline.Run("initFakeDb", args); }
protected override RenderingReference DoActivateCondition(RenderingDefinition rendering, ID conditionID, Language lang, Database database, Item item, SiteContext site) { // Copied from Sitecore Assert.ArgumentNotNull(rendering, "rendering"); Assert.ArgumentNotNull(conditionID, "conditionID"); Assert.ArgumentNotNull(lang, "lang"); Assert.ArgumentNotNull(database, "database"); Assert.ArgumentNotNull(item, "item"); Assert.ArgumentNotNull(site, "site"); RenderingReference renderingReference = new RenderingReference(rendering, lang, database); RuleList <ConditionalRenderingsRuleContext> rules = renderingReference.Settings.Rules; Rule <ConditionalRenderingsRuleContext> rule = rules.Rules.FirstOrDefault <Rule <ConditionalRenderingsRuleContext> >((Rule <ConditionalRenderingsRuleContext> r) => r.UniqueId == conditionID); if (rule == null) { return(renderingReference); } List <RenderingReference> renderingReferences = new List <RenderingReference>() { renderingReference }; ConditionalRenderingsRuleContext conditionalRenderingsRuleContext = new ConditionalRenderingsRuleContext(renderingReferences, renderingReference) { Item = item }; rule.SetCondition(new TrueCondition <ConditionalRenderingsRuleContext>()); rules = new RuleList <ConditionalRenderingsRuleContext>(rule); using (SiteContextSwitcher siteContextSwitcher = new SiteContextSwitcher(site)) { using (DatabaseSwitcher databaseSwitcher = new DatabaseSwitcher(item.Database)) { rules.Run(conditionalRenderingsRuleContext); } } Assert.IsTrue(conditionalRenderingsRuleContext.References.Count == 1, "The references count should equal 1"); RenderingReference renderingReference1 = conditionalRenderingsRuleContext.References[0]; Assert.IsNotNull(renderingReference1, "result"); rendering.Datasource = renderingReference1.Settings.DataSource; if (renderingReference1.RenderingItem != null) { rendering.ItemID = renderingReference1.RenderingItem.ID.ToString(); } // End copied from Sitecore // Apply Parameters Too rendering.Parameters = renderingReference1.Settings.Parameters; return(renderingReference1); }
public ReportContext(string userName = "******", string siteName = "shell", string databaseName = "master", string language = null) { var user = User.FromName(userName, false); _userSwitcher = new UserSwitcher(user); _databaseSwitcher = new DatabaseSwitcher(Sitecore.Configuration.Factory.GetDatabase(databaseName)); if (!string.IsNullOrEmpty(language)) { _languageSwitcher = new LanguageSwitcher(language); } _siteContextSwitcher = new SiteContextSwitcher(SiteContextFactory.GetSiteContext(siteName)); _securityDisabler = new SecurityDisabler(); }
/// <summary> /// Initializes a new instance of the <see cref="Db"/> class with the specified database. /// </summary> /// <param name="databaseName">The database name.</param> public Db(string databaseName) { Assert.ArgumentNotNullOrEmpty(databaseName, "databaseName"); this.database = Database.GetDatabase(databaseName); this.dataStorage = new DataStorage(this.database); this.dataStorageSwitcher = new DataStorageSwitcher(this.dataStorage); this.databaseSwitcher = new DatabaseSwitcher(this.database); this.databaseLanguages = new Stack<Switcher<DbLanguages>>(); this.databaseLanguages.Push( new Switcher<DbLanguages>( new DbLanguages(Language.Parse("en")))); var args = new InitDbArgs(this.database, this.dataStorage); CorePipeline.Run("initFakeDb", args); }
/// <summary> /// Initializes a new instance of the <see cref="Db"/> class with the specified database. /// </summary> /// <param name="databaseName">The database name.</param> public Db(string databaseName) { Assert.ArgumentNotNullOrEmpty(databaseName, "databaseName"); this.database = Database.GetDatabase(databaseName); this.dataStorage = new DataStorage(this.database); this.dataStorageSwitcher = new DataStorageSwitcher(this.dataStorage); this.databaseSwitcher = new DatabaseSwitcher(this.database); this.databaseLanguages = new Stack <Switcher <DbLanguages> >(); this.databaseLanguages.Push( new Switcher <DbLanguages>( new DbLanguages(Language.Parse("en")))); var args = new InitDbArgs(this.database, this.dataStorage); CorePipeline.Run("initFakeDb", args); }
/// <summary> /// Runs the healthcheck. /// </summary> public override void RunHealthcheck() { this.LastCheckTime = DateTime.UtcNow; this.Status = HealthcheckStatus.Healthy; this.HealthyMessage = "Search index contain no errors"; if (string.IsNullOrEmpty(IndexName)) { this.Status = HealthcheckStatus.Warning; this.ErrorList.Entries.Add(new ErrorEntry { Created = DateTime.UtcNow, Reason = "Search Index Check is not configured correctly", Exception = null }); return; } ISearchIndex index; try { index = ContentSearchManager.GetIndex(IndexName); } catch (Exception) { this.Status = HealthcheckStatus.Warning; this.ErrorList.Entries.Add(new ErrorEntry { Created = DateTime.UtcNow, Reason = "Search Index does not exist or cannot be loaded: " + IndexName, Exception = null }); return; } var totalResults = 0; try { IQueryable <SearchResultItem> query = null; using (var context = index.CreateSearchContext()) { if (string.IsNullOrEmpty(CustomQuery)) { query = context.GetQueryable <SearchResultItem>(); } else { var stringModel = SearchStringModel.ExtractSearchQuery(CustomQuery); using (var switcher = new DatabaseSwitcher(Factory.GetDatabase("master"))) { query = LinqHelper.CreateQuery <SearchResultItem>(context, stringModel); } } totalResults = query.Count(); } if (MinimumExpectedDocumentsCount > totalResults) { this.Status = HealthcheckStatus.Error; this.ErrorList.Entries.Add(new ErrorEntry { Created = DateTime.UtcNow, Reason = string.Format("Search Index returned less items than expected: {0}, actual: {1} ", this.MinimumExpectedDocumentsCount, totalResults), Exception = null }); return; } } catch (Exception ex) { this.Status = HealthcheckStatus.Error; this.ErrorList.Entries.Add(new ErrorEntry { Created = DateTime.UtcNow, Reason = "Search Index error", Exception = ex }); return; } }