Exemplo n.º 1
0
        private Model.Model EntityToModel(Entity entity)
        {
            var instance = (Model.Model)_model.GetType().Assembly.CreateInstance(_model.GetType().ToString());

            if (instance == null)
            {
                throw new Exception("the model instance could not be created: " + _model.GetType());
            }

            var tableName = instance.TableName();

            foreach (var propertyInfo in instance.GetType().GetProperties())
            {
                var attrs = propertyInfo.GetCustomAttributes(false);

                if (attrs.Length <= 0)
                {
                    continue;
                }

                foreach (var attr in attrs)
                {
                    if (!(attr is ColumnAttribute column))
                    {
                        continue;
                    }

                    var refColumnName = column.Name ?? Helper.ToSnakeCase(propertyInfo.Name);

                    var value = entity.GetValue(tableName, refColumnName);

                    propertyInfo.SetValue(instance, value);
                }
            }

            instance.AfterFillByDb();

            return(instance);
        }
Exemplo n.º 2
0
        private string FormatFromModel(string tempString, Model.Model model)
        {
            var   propertys = model.GetType().GetProperties();
            Regex r         = new Regex("{[A-Z|a-z|0-9]*}");

            return(r.Replace(tempString, (m) =>
            {
                var value = model.Property(m.Value.Trim('{', '}'));
                if (value == null)
                {
                    return "";
                }
                return value.ToString();
            }));
        }