private string GetRowXml(object dataItem, ContentList contentType, bool includeDefaults = true) { var valDict = dataItem.ToDictionary(); var fields = contentType.ReadFields(); if (includeDefaults) { foreach (var f in fields) { var defVal = f.DefaultValue; if (valDict.ContainsKey(f.Name)) { if (defVal != null) { if (!valDict.ContainsKey(f.Name)) { valDict.Add(f.Name, defVal); } else { if (valDict[f.Name] == null) { valDict[f.Name] = defVal; } } } } } } return(GenerateDataXml(valDict, contentType.Name, fields)); }
/// <summary> /// Initializes a new instance of the ContentFieldCollection class. /// </summary> /// <param name="context">The data context</param> /// <param name="parent">The parent content list object.</param> public ContentFieldCollection(IDataContext context, ContentList parent) { this.DataContext = context; this.ParentList = parent; if (!string.IsNullOrEmpty(parent.FieldsXml)) { this.AddRange(parent.ReadFields()); //var serializer = new XmlSerializer(typeof(ContentListElement)); //using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(parent.ConfigXml))) //{ // var m = (ContentListElement)serializer.Deserialize(stream); // var factory = new DefaultContentFieldFactory(); // foreach (var f in m.Fields) // { // var fieldInstance = factory.Create(f); // fieldInstance.Parent = this.ParentList; // this.Add(fieldInstance); // } //} } }