public MetaList GenerateMetadataFor(Type type, int version = 1, IEnumerable <MetaList> data = null) { int newVersion = version; if (data == null) { data = new List <MetaList>(); } var meta = new MetaList() { Version = newVersion, Created = DateTimeOffset.Now }; var properties = type.GetProperties().ToArray(); for (int i = 0; i < properties.Length; i++) { meta.Metas.Add(new Metadata() { FieldName = properties[i].Name, Type = properties[i].PropertyType.Name, Order = i }); } var dataList = data.ToList(); dataList.Add(meta); string filepath = IOHelper.CreateFileIfNotExists($"{type.Namespace}_meta", false); _writer.WriteAsync(filepath, new List <string>() { JsonConvert.SerializeObject(dataList) }); return(meta); }
public bool CheckVersion <TEntity>(MetaList metadata) { var properties = typeof(TEntity).GetType().GetProperties(); if (properties.Count() == metadata.Metas.Count) { for (int i = 0; i < properties.Count(); i++) { if (properties[i].Name == metadata.Metas[i].FieldName && properties[i].PropertyType.Name == metadata.Metas[i].Type) { continue; } return(false); } return(true); } return(false); }