private static SyncItem LoadItem(XmlDocument document) { SyncItem loadedItem = new SyncItem(); XmlNode itemNode = document.DocumentElement; loadedItem.ID = XmlUtil.GetAttribute("id", itemNode); loadedItem.Name = XmlUtil.GetAttribute("name", itemNode); loadedItem.ParentID = XmlUtil.GetAttribute("parentid", itemNode); loadedItem.TemplateID = XmlUtil.GetAttribute("tid", itemNode); loadedItem.MasterID = XmlUtil.GetAttribute("mid", itemNode); loadedItem.BranchId = XmlUtil.GetAttribute("bid", itemNode); loadedItem.TemplateName = XmlUtil.GetAttribute("template", itemNode); SyncVersion loadedVersion = loadedItem.AddVersion( XmlUtil.GetAttribute("language", itemNode), XmlUtil.GetAttribute("version", itemNode), string.Empty); foreach (XmlNode node in itemNode.SelectNodes("fields/field")) { XmlNode content = node.SelectSingleNode("content"); loadedVersion.AddField( XmlUtil.GetAttribute("tfid", node), XmlUtil.GetAttribute("key", node), XmlUtil.GetAttribute("key", node), content != null ? XmlUtil.GetValue(content) : null, content != null); } return(loadedItem); }
public SyncVersion BuildSyncVersion() { SyncVersion version = new SyncVersion { Language = DefaultVersion.Language, Version = DefaultVersion.Version, Revision = Guid.NewGuid().ToString() }; string date = DateUtil.IsoNowWithTicks; version.AddField(StatisticsTemplateFields.Created, date); version.AddField(StatisticsTemplateFields.CreatedBy, CurrentUser); version.AddField(StatisticsTemplateFields.Revision, Guid.NewGuid().ToString()); version.AddField(StatisticsTemplateFields.Updated, date); version.AddField(StatisticsTemplateFields.UpdatedBy, CurrentUser); return version; }
public SyncVersion BuildSyncVersion() { SyncVersion version = new SyncVersion { Language = DefaultVersion.Language, Version = DefaultVersion.Version, Revision = Guid.NewGuid().ToString() }; string date = DateUtil.IsoNowWithTicks; version.AddField(StatisticsTemplateFields.Created, date); version.AddField(StatisticsTemplateFields.CreatedBy, CurrentUser); version.AddField(StatisticsTemplateFields.Revision, Guid.NewGuid().ToString()); version.AddField(StatisticsTemplateFields.Updated, date); version.AddField(StatisticsTemplateFields.UpdatedBy, CurrentUser); return(version); }
/// <summary> /// Creates a new version for a content item in a particular language. /// </summary> /// <param name="itemDefinition">Used to identify the particular item</param> /// <param name="baseVersion">The version to copy off of</param> /// <param name="context"></param> /// <returns></returns> public override int AddVersion(ItemDefinition itemDefinition, VersionUri baseVersion, CallContext context) { if (!ItemsById.ContainsKey(itemDefinition.ID)) { return(-1); } SyncItem current = ItemsById[itemDefinition.ID]; int num = -1; Language baseVersionLanguage = baseVersion.Language; if (Language.Invariant.Equals(baseVersionLanguage)) { baseVersionLanguage = LanguageManager.DefaultLanguage; } if (baseVersion.Version != null && baseVersion.Version.Number > 0) { // copy version SyncVersion matchingVersion = (current.Versions ?? new List <SyncVersion>()) .OrderByDescending(vr => int.Parse(vr.Version)) .FirstOrDefault(vr => vr.Language.Equals(baseVersionLanguage.Name)); int?maxVersionNumber = matchingVersion != null?int.Parse(matchingVersion.Version) : null as int?; num = maxVersionNumber.HasValue && maxVersionNumber > 0 ? maxVersionNumber.Value + 1 : -1; if (num > 0) { SyncVersion newVersion = current.AddVersion(matchingVersion.Language, num.ToString(), matchingVersion.Revision); IList <SyncField> currentFieldValues = matchingVersion.Fields; foreach (SyncField fieldValue in currentFieldValues) { newVersion.AddField(fieldValue.FieldID, fieldValue.FieldName, fieldValue.FieldKey, fieldValue.FieldValue, true); } } } if (num == -1) { num = 1; // add blank version current.AddVersion(baseVersionLanguage.Name, num.ToString(), Guid.NewGuid().ToString()); } return(num); }
public static SyncVersion Clone(this SyncVersion version) { Assert.ArgumentNotNull(version, "version"); var newSyncVersion = new SyncVersion { Language = version.Language, Revision = version.Revision, Version = version.Version }; foreach (var field in version.Fields) { newSyncVersion.AddField(field.FieldID, field.FieldName, field.FieldKey, field.FieldValue, true); } return newSyncVersion; }
public static SyncVersion Clone(this SyncVersion version) { Assert.ArgumentNotNull(version, "version"); var newSyncVersion = new SyncVersion { Language = version.Language, Revision = version.Revision, Version = version.Version }; foreach (var field in version.Fields) { newSyncVersion.AddField(field.FieldID, field.FieldName, field.FieldKey, field.FieldValue, true); } return(newSyncVersion); }
/// <summary> /// Builds the version. /// </summary> /// <param name="item">The item.</param> /// <param name="version">The version.</param> private static void BuildVersion(SyncItem item, Item version) { SyncVersion syncVersion = item.AddVersion(version.Language.ToString(), version.Version.ToString(), version.Statistics.Revision); if (syncVersion == null) { return; } version.Fields.ReadAll(); version.Fields.Sort(); foreach (Field field in version.Fields) { if (TemplateManager.GetTemplate(version).GetField(field.ID) != null && !field.Shared) { string fieldValue = GetFieldValue(field); if (fieldValue != null) { syncVersion.AddField(field.ID.ToString(), field.Name, field.Key, fieldValue, true); } } } }
public static SyncVersion AddField(this SyncVersion syncItem, IFieldInfo field, string value) { syncItem.AddField(field.FieldId, field.Name, field.Key, value, true); return(syncItem); }