Example #1
0
        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();
                }
            }
        }
Example #2
0
        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));
            }
        }
Example #3
0
 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));
     }
 }
Example #4
0
 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));
 }