private List <ItemLink> FindBrokenLinks(DataProviderReader reader) { var links = new List <ItemLink>(); using (new SecurityDisabler()) { while (reader.Read()) { var itemLink = MapLinksRow(reader).Item2; var targetDatabase = Factory.GetDatabase(itemLink.TargetDatabaseName); if (!ItemExists(itemLink.TargetItemID, itemLink.TargetPath, itemLink.TargetItemLanguage, itemLink.TargetItemVersion, targetDatabase)) { // Note: The original Sitecore source code adds "sourceDatabaseName" twice instead of using targetDatabaseName links.Add(itemLink); } var job = Context.Job; if (job != null && job.Category == "GetBrokenLinks") { job.Status.Processed++; } DataCount.LinksDataRead.Increment(); DataCount.DataPhysicalReads.Increment(); } } return(links); }
private SmallPage ReadPage(DataProviderReader reader) { Assert.ArgumentNotNull(reader, "reader"); var page = new SmallPage { Id = AnalyticsManager.Provider.GetString(0, reader), Count = AnalyticsManager.Provider.GetInt(1, reader) }; return(page); }
private static ProfileKeyResult ReadProfileKeyResult(DataProviderReader reader) { var result = new ProfileKeyResult { ProfileKeyId = AnalyticsManager.GetGuid(0, reader), ProfileId = AnalyticsManager.GetGuid(1, reader), Value = AnalyticsManager.GetInt(2, reader), Count = AnalyticsManager.GetInt(3, reader), Total = AnalyticsManager.GetInt(4, reader), ProfileType = AnalyticsManager.GetString(5, reader) }; return(result); }
private void FillTheCacheInitially() { using (DataProviderReader reader = Api.CreateReader("SELECT {0}ID{1}, {0}Prefix{1}, {0}Key{1}, {0}ParentID{1}, {0}CustomData{1} FROM {0}IDTable{1}")) { while (reader.Read()) { ID id = Api.GetId(0, reader); string prefix = Api.GetString(1, reader); string key = Api.GetString(2, reader); ID parentId = Api.GetId(3, reader); string customData = Api.GetString(4, reader); var entry = new IDTableEntry(prefix, key, id, parentId, customData); Cache.Add(GetCacheKey(prefix, key), entry); DataCounters.PhysicalReads.Increment(); } } }
/// <summary> /// Gets any broken links in the database /// </summary> /// <param name="database"></param> /// <returns></returns> /// <remarks>Same as SqlLinkDatabase</remarks> public override ItemLink[] GetBrokenLinks(Database database) { Assert.ArgumentNotNull(database, nameof(database)); var sql = $@" SELECT {LinksTableSqlColumns} FROM [Links] WHERE [SourceDatabase]=@{LinksTableColumns.Database} ORDER BY [SourceItemID], [SourceFieldID]"; var databaseName = GetString(database.Name, DatabaseNameLength); using (DataProviderReader reader = DataApi.CreateReader(sql, LinksTableColumns.Database, databaseName)) { DataCount.LinksDataRead.Increment(); var links = FindBrokenLinks(reader); return(links.ToArray()); } }
private List <Tuple <Guid, ItemLink> > GetLinks(string sql, Item item, object[] parameters) { var itemLinkList = new List <Tuple <Guid, ItemLink> >(); lock (_locks.GetLock(item.ID)) { using (DataProviderReader reader = DataApi.CreateReader(sql, parameters)) { while (reader.Read()) { itemLinkList.Add(MapLinksRow(reader)); } DataCount.LinksDataRead.IncrementBy(itemLinkList.Count); DataCount.DataPhysicalReads.Increment(); } } return(itemLinkList); }
private Tuple <Guid, ItemLink> MapLinksRow(DataProviderReader reader) { var id = DataApi.GetGuid(0, reader); var sourceDatabaseName = DataApi.GetString(1, reader); var sourceItemID = DataApi.GetId(2, reader); var sourceItemLanguage = DataApi.GetLanguage(3, reader); var sourceItemVersion = DataApi.GetVersion(4, reader); var sourceFieldID = DataApi.GetId(5, reader); var targetDatabaseName = DataApi.GetString(6, reader); var targetItemID = DataApi.GetId(7, reader); var targetItemLanguage = DataApi.GetLanguage(8, reader); var targetItemVersion = DataApi.GetVersion(9, reader); var targetPath = DataApi.GetString(10, reader); var link = new ItemLink(sourceDatabaseName, sourceItemID, sourceItemLanguage, sourceItemVersion, sourceFieldID, targetDatabaseName, targetItemID, targetItemLanguage, targetItemVersion, targetPath); return(new Tuple <Guid, ItemLink>(id, link)); }
public override IDTableEntry GetID(string prefix, string key) { var entry1 = Cache[GetCacheKey(prefix, key)] as IDTableEntry; if (entry1 != null) { return(entry1); } using (DataProviderReader reader = Api.CreateReader("SELECT {0}ID{1}, {0}ParentID{1}, {0}CustomData{1} FROM {0}IDTable{1} WHERE {0}Prefix{1} = {2}prefix{3} AND {0}Key{1} = {2}key{3}", (object)"prefix", (object)prefix, (object)"key", (object)key)) { if (reader.Read()) { ID id1 = Api.GetId(0, reader); ID id2 = Api.GetId(1, reader); string @string = Api.GetString(2, reader); var entry2 = new IDTableEntry(prefix, key, id1, id2, @string); Cache.Add(GetCacheKey(prefix, key), entry2); DataCounters.PhysicalReads.Increment(); return(entry2); } } return(null); }
/// <summary> /// The get date time. /// </summary> /// <param name="columnIndex"> /// The column index. /// </param> /// <param name="reader"> /// The reader. /// </param> /// <returns> /// The <see cref="DateTime"/>. /// </returns> public override DateTime GetDateTime(int columnIndex, DataProviderReader reader) { return DateTime.Now; }
/// <summary> /// The get string. /// </summary> /// <param name="columnIndex"> /// The column index. /// </param> /// <param name="reader"> /// The reader. /// </param> /// <returns> /// The get string. /// </returns> public override string GetString(int columnIndex, DataProviderReader reader) { return reader.InnerReader.GetString(columnIndex); }
/// <summary> /// The get id. /// </summary> /// <param name="columnIndex"> /// The column index. /// </param> /// <param name="reader"> /// The reader. /// </param> /// <returns> /// The <see cref="ID"/>. /// </returns> public override ID GetId(int columnIndex, DataProviderReader reader) { return ID.Null; }
/// <summary> /// The get guid. /// </summary> /// <param name="columnIndex"> /// The column index. /// </param> /// <param name="reader"> /// The reader. /// </param> /// <returns> /// The <see cref="Guid"/>. /// </returns> public override Guid GetGuid(int columnIndex, DataProviderReader reader) { return reader.InnerReader.GetGuid(columnIndex); }
/// <summary> /// The get int. /// </summary> /// <param name="columnIndex"> /// The column index. /// </param> /// <param name="reader"> /// The reader. /// </param> /// <returns> /// The get int. /// </returns> public override int GetInt(int columnIndex, DataProviderReader reader) { return reader.InnerReader.GetInt32(columnIndex); }
/// <summary> /// The get language. /// </summary> /// <param name="columnIndex"> /// The column index. /// </param> /// <param name="reader"> /// The reader. /// </param> /// <returns> /// The <see cref="Language"/>. /// </returns> public override Language GetLanguage(int columnIndex, DataProviderReader reader) { return Language.Invariant; }
/// <summary> /// The get long. /// </summary> /// <param name="columnIndex"> /// The column index. /// </param> /// <param name="reader"> /// The reader. /// </param> /// <returns> /// The get long. /// </returns> public override long GetLong(int columnIndex, DataProviderReader reader) { return 0; }
/// <summary> /// The get version. /// </summary> /// <param name="columnIndex"> /// The column index. /// </param> /// <param name="reader"> /// The reader. /// </param> /// <returns> /// The <see cref="Version"/>. /// </returns> public override Version GetVersion(int columnIndex, DataProviderReader reader) { return Version.First; }
/// <summary> /// The get bytes. /// </summary> /// <param name="columnIndex"> /// The column index. /// </param> /// <param name="reader"> /// The reader. /// </param> /// <returns> /// The <see cref="byte[]"/>. /// </returns> public override byte[] GetBytes(int columnIndex, DataProviderReader reader) { return new byte[] { }; }