/// <summary> /// obtiene una nueva entidad con sus propiedaes, sin asignar el id y sin referencias locales. /// </summary> /// <typeparam name="T">Tipo de dato de la propiedad geo de una entidad</typeparam> /// <see cref="Implements{T}"/> /// <param name="implements">objeto que mantiene todos los tipos a los que cada propiedad debe ser convertido</param> /// <param name="obj">objeto desde el que se obtendrán los atributos</param> /// <param name="index">índice de la entidad a crear, el índice se encuentra en el atributo mdm de la clase</param> /// <returns>retorna un nuevo entitySearch desde un objeto, instancia de una clase.</returns> public static IEntitySearch <T> GetSimpleEntity <T>(Implements <T> implements, object obj, int index, IHashSearchHelper hash) { // obtiene la metadata y los datos del objeto var mdl = Attributes.GetPropertiesByAttributeWithValue(obj).Where(s => Mdm.Reflection.IsPrimitiveAndCollection(s.Value.GetType()) || s.Value.GetType().IsEnum).ToDictionary(s => s.Key, s => s.Value); // asigna las propiedades. var entitySearch = Props.FillProps(implements, mdl, implements.GetEntitySearchImplementedType); // hash de cabecera entitySearch.hm = hash.HashModel(obj); // hash de modelo entitySearch.hh = hash.HashHeader(obj.GetType()); // toma el índice de la metadata del atributo entitySearch.index = index; // asigna una fecha de creación. chequear si es necesario entitySearch.created = DateTime.Now; // retorna un entitySearch. return(entitySearch); }