partial void DeleteFieldMetadata(FieldMetadata instance);
partial void UpdateFieldMetadata(FieldMetadata instance);
private static IFieldMetadata DeserializeFieldMetadata(FieldMetadata fieldMetadata) { if (Kit.IsEmpty(fieldMetadata.Definition)) return null; string fieldMetadataTypeName = string.Format("RapidWebDev.ExtensionModel.{0}FieldMetadata, RapidWebDev.ExtensionModel", fieldMetadata.Type); Type fieldMetadataType = Type.GetType(fieldMetadataTypeName, true); XmlSerializer serializer = new XmlSerializer(fieldMetadataType); using (StringReader stringReader = new StringReader(fieldMetadata.Definition)) { IFieldMetadata fieldMetadataImpl = serializer.Deserialize(stringReader) as IFieldMetadata; fieldMetadataImpl.Id = fieldMetadata.FieldMetadataId; fieldMetadataImpl.FieldGroup = fieldMetadata.FieldGroup; fieldMetadataImpl.Priviledge = fieldMetadata.Priviledge; fieldMetadataImpl.Ordinal = fieldMetadata.Ordinal; fieldMetadataImpl.Description = fieldMetadata.Description; fieldMetadataImpl.Inherited = false; return fieldMetadataImpl; } }
partial void InsertFieldMetadata(FieldMetadata instance);
/// <summary> /// Saves the extension type metadata /// </summary> /// <param name="objectMetadataId">The object metadata id.</param> /// <param name="fieldMetadata">The field metadata.</param> public void SaveField(Guid objectMetadataId, IFieldMetadata fieldMetadata) { Kit.NotNull(fieldMetadata, "fieldMetadata"); Kit.NotNull(fieldMetadata.Name, "fieldMetadata.Name"); lock (syncObject) { this.DeleteField(objectMetadataId, fieldMetadata.Name); using (ExtensionModelDataContext ctx = DataContextFactory.Create<ExtensionModelDataContext>()) { FieldMetadata entity = new FieldMetadata { Name = fieldMetadata.Name, Priviledge = fieldMetadata.Priviledge, FieldGroup = fieldMetadata.FieldGroup, Description = fieldMetadata.Description, ObjectMetadataId = objectMetadataId, Ordinal = fieldMetadata.Ordinal, Type = fieldMetadata.Type, Definition = SerializeFieldMetadata(fieldMetadata) }; ctx.FieldMetadatas.InsertOnSubmit(entity); ctx.SubmitChanges(); fieldMetadata.Id = entity.FieldMetadataId; } } }