protected override SyncAttempt <XElement> SerializeCore(IDomain item) { var node = new XElement(ItemType, new XAttribute("Key", item.Id.ToGuid()), new XAttribute("Alias", item.DomainName)); var info = new XElement("Info", new XElement("IsWildcard", item.IsWildcard), new XElement("Language", item.LanguageIsoCode)); if (item.RootContentId.HasValue) { var rootNode = contentService.GetById(item.RootContentId.Value); if (rootNode != null) { info.Add(new XElement("Root", GetItemPath(rootNode), new XAttribute("Key", rootNode.Key))); } } node.Add(info); return(SyncAttempt <XElement> .SucceedIf( node != null, item.DomainName, node, typeof(IDomain), ChangeType.Export)); }
internal override SyncAttempt <XElement> SerializeCore(IMacro item) { var node = _packaingService.Export(item); return(SyncAttempt <XElement> .SucceedIf( node != null, item.Name, node, typeof(IMacro), ChangeType.Export)); }
protected override SyncAttempt<XElement> SerializeCore(ILanguage item, SyncSerializerOptions options) { var node = InitializeBaseNode(item, item.IsoCode); // don't serialize the ID, it changes and we don't use it! // node.Add(new XElement("Id", item.Id)); node.Add(new XElement("IsoCode", item.IsoCode)); node.Add(new XElement("IsMandatory", item.IsMandatory)); node.Add(new XElement("IsDefault", item.IsDefault)); if (item.FallbackLanguageId != null) { var fallback = localizationService.GetLanguageById(item.FallbackLanguageId.Value); if (fallback != null) { node.Add(new XElement("Fallback", fallback.IsoCode)); } } return SyncAttempt<XElement>.SucceedIf( node != null, item.CultureName, node, typeof(ILanguage), ChangeType.Export); }
protected override SyncAttempt <XElement> SerializeCore(IRelationType item, SyncSerializerOptions options) { var node = this.InitializeBaseNode(item, item.Alias); var isDependency = false; if (item is IRelationTypeWithIsDependency dependencyItem) { isDependency = dependencyItem.IsDependency; } node.Add(new XElement("Info", new XElement("Name", item.Name), new XElement("ParentType", GetGuidValue(item, nameof(item.ParentObjectType))), new XElement("ChildType", GetGuidValue(item, nameof(item.ChildObjectType))), new XElement("Bidirectional", item.IsBidirectional), new XElement("IsDependency", isDependency))); if (options.GetSetting <bool>("IncludeRelations", false)) { node.Add(SerializeRelations(item)); } return(SyncAttempt <XElement> .SucceedIf( node != null, item.Name, node, typeof(IRelationType), ChangeType.Export)); }
internal override SyncAttempt <XElement> SerializeCore(IDictionaryItem item) { var node = _packagingService.Export(item, true); return(SyncAttempt <XElement> .SucceedIf( node != null, node != null?item.ItemKey : node.NameFromNode(), node, typeof(IDictionaryItem), ChangeType.Export)); }
internal override SyncAttempt <IDictionaryItem> DeserializeCore(XElement node) { // var items = _packagingService.ImportDictionaryItems(node); // var item = items.LastOrDefault(); var langs = _localizationService.GetAllLanguages().ToList(); var item = UpdateDictionaryValues(node, null, langs); return(SyncAttempt <IDictionaryItem> .SucceedIf( item != null, item != null?item.ItemKey : node.NameFromNode(), item, ChangeType.Import)); }
protected override SyncAttempt <XElement> SerializeCore(ILanguage item) { var node = InitializeBaseNode(item, item.IsoCode); node.Add(new XElement("Id", item.Id)); node.Add(new XElement("IsoCode", item.IsoCode)); node.Add(new XElement("CultureName", item.CultureName)); node.Add(new XElement("IsMandatory", item.IsMandatory)); node.Add(new XElement("IsDefault", item.IsDefault)); if (item.FallbackLanguageId != null) { node.Add(new XElement("Fallback", item.FallbackLanguageId.Value)); } return(SyncAttempt <XElement> .SucceedIf( node != null, item.CultureName, node, typeof(ILanguage), ChangeType.Export)); }
protected override SyncAttempt <XElement> SerializeCore(IRelationType item, SyncSerializerOptions options) { var node = this.InitializeBaseNode(item, item.Alias); node.Add(new XElement("Info", new XElement("Name", item.Name), new XElement("ParentType", item.ParentObjectType), new XElement("ChildType", item.ChildObjectType), new XElement("Bidirectional", item.IsBidirectional))); if (options.GetSetting <bool>("IncludeRelations", true)) { node.Add(SerializeRelations(item)); } return(SyncAttempt <XElement> .SucceedIf( node != null, item.Name, node, typeof(IRelationType), ChangeType.Export)); }
protected override SyncAttempt <XElement> SerializeCore(IMacro item, SyncSerializerOptions options) { var node = this.InitializeBaseNode(item, item.Alias); node.Add(new XElement("Name", item.Name)); node.Add(new XElement("MacroSource", item.MacroSource)); node.Add(new XElement("MacroType", item.MacroType)); node.Add(new XElement("UseInEditor", item.UseInEditor)); node.Add(new XElement("DontRender", item.DontRender)); node.Add(new XElement("CachedByMember", item.CacheByMember)); node.Add(new XElement("CachedByPage", item.CacheByPage)); node.Add(new XElement("CachedDuration", item.CacheDuration)); var properties = new XElement("Properties"); foreach (var propertyKey in item.Properties.Keys.OrderBy(x => x)) { var property = item.Properties[propertyKey]; if (property != null) { properties.Add(new XElement("Property", new XElement("Name", property.Name), new XElement("Alias", property.Alias), new XElement("SortOrder", property.SortOrder), new XElement("EditorAlias", property.EditorAlias))); } } node.Add(properties); return(SyncAttempt <XElement> .SucceedIf( node != null, item.Name, node, typeof(IMacro), ChangeType.Export)); }