Ejemplo n.º 1
0
        public List <T> GetEntitiesByPrototype <T>(T prototype, params string[] properties)
        {
            List <T>      entities   = new List <T>();
            List <string> conditions = new List <string>();

            foreach (PropertyInfo property in prototype.GetType().GetProperties())
            {
                switch (property.PropertyType.ToString())
                {
                case "System.Int32": if ((int)property.GetValue(prototype, null) == new int())
                    {
                        continue;
                    }
                    break;

                case "System.String": if ((string)property.GetValue(prototype, null) == null)
                    {
                        continue;
                    }
                    break;

                case "System.TimeSpan": if ((TimeSpan)property.GetValue(prototype, null) == new TimeSpan())
                    {
                        continue;
                    }
                    break;

                case "System.DateTime": if ((DateTime)property.GetValue(prototype, null) == new DateTime())
                    {
                        continue;
                    }
                    break;
                }
                conditions.Add(MySqlQueryConstructor.SimpleCondition(property.Name, "=", property.GetValue(prototype, null)));
            }
            DataTable table = database.GetData(MySqlQueryConstructor.SelectQuery(typeof(T).Name, properties) + MySqlQueryConstructor.WhereQuery(conditions.ToArray()));

            foreach (DataRow row in table.Rows)
            {
                entityBuilder.SetEntity(Activator.CreateInstance <T>());
                foreach (DataColumn column in row.Table.Columns)
                {
                    entityBuilder.SetEntityProperty(column.ColumnName, row[column.ColumnName]);
                }
                entities.Add((T)entityBuilder.BuildEntity());
            }
            return(entities);
        }
Ejemplo n.º 2
0
        public List <T> GetEntities <T>(params string[] properties)
        {
            List <T>  entities = new List <T>();
            DataTable table    = database.GetData(MySqlQueryConstructor.SelectQuery(typeof(T).Name, properties));

            foreach (DataRow row in table.Rows)
            {
                entityBuilder.SetEntity(Activator.CreateInstance <T>());
                foreach (DataColumn column in row.Table.Columns)
                {
                    entityBuilder.SetEntityProperty(column.ColumnName, row[column.ColumnName]);
                }
                entities.Add((T)entityBuilder.BuildEntity());
            }
            return(entities);
        }