public void ValidateNotExists(IObjectSerializer serializer, Type type, ObjectSerializerSettings settings) { var files = serializer.GetPath(this.Path, type, settings); foreach (var item in files) { if (File.Exists(item) == true) { throw new FileNotFoundException(); } } }
public object Deserialize(string itemPath, Type type, ObjectSerializerSettings settings) { if (type == typeof(CremaDataTable)) { throw new NotImplementedException(); } else if (type == typeof(CremaDataType)) { var extension = settings.Extension != string.Empty ? settings.Extension : CremaSchema.SchemaExtension; var filename = itemPath + extension; var dataSet = new CremaDataSet(); var dataType = CremaDataType.ReadSchema(filename); dataSet.Types.Add(dataType); return(dataType); } else if (type == typeof(CremaDataSet)) { if (settings is CremaDataSetSerializerSettings props) { var dataSet = CremaDataSet.Create(props.SignatureDateProvider); var typePaths = props.TypePaths.Select(item => item + CremaSchema.SchemaExtension).ToArray(); var tablePaths = props.TablePaths.Select(item => item + CremaSchema.XmlExtension).ToArray(); dataSet.ReadMany(typePaths, tablePaths, props.SchemaOnly); dataSet.AcceptChanges(); return(dataSet); } else { return(CremaDataSet.ReadFromDirectory(itemPath)); } } else { var extension = settings.Extension != string.Empty ? settings.Extension : CremaSchema.XmlExtension; var filename = itemPath + extension; return(DataContractSerializerUtility.Read(filename, type)); } }
public string[] Serialize(string itemPath, object obj, ObjectSerializerSettings settings) { if (obj is CremaDataTable dataTable) { return(this.SerializeDataTable(dataTable, itemPath, settings)); } else if (obj is CremaDataType dataType) { return(this.SerializeDataType(dataType, itemPath, settings)); } else if (obj is CremaDataSet dataSet) { dataSet.WriteToDirectory(itemPath); var items1 = DirectoryUtility.GetAllFiles(itemPath, "*.xml"); var items2 = DirectoryUtility.GetAllFiles(itemPath, "*.xsd"); return(items1.Concat(items2).OrderBy(item => item).ToArray()); } else { return(this.SerializeObject(obj, itemPath, settings)); } }
public string[] GetPath(string itemPath, Type type, ObjectSerializerSettings settings) { if (type == typeof(CremaDataTable)) { var xmlPath = itemPath + CremaSchema.XmlExtension; if (settings is CremaDataTableSerializerSettings prop && prop.RelativePath != string.Empty) { return(new string[] { xmlPath }); } else { if (File.Exists(xmlPath) == true) { var xmlInfo = new CremaXmlReadInfo(xmlPath); return(new string[] { xmlPath, xmlInfo.SchemaPath, }); } else { var schemaPath = itemPath + CremaSchema.SchemaExtension; return(new string[] { xmlPath, schemaPath, }); } } }
public static T Deserialize <T>(this IObjectSerializer serializer, RepositoryPath repositoryPath, ObjectSerializerSettings settings) { return((T)serializer.Deserialize(repositoryPath.Path, typeof(T), settings)); }
public static string[] Serialize(this IObjectSerializer serializer, RepositoryPath repositoryPath, object obj, ObjectSerializerSettings settings) { return(serializer.Serialize(repositoryPath.Path, obj, settings)); }