Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }