/// <summary>
        /// Método que permite obtener de la base de datos un objeto de Paginación con la lista de todos los datos de Entidad
        /// </summary>
        /// <param name="page">Página Actual</param>
        /// <param name="pageSize">Elementos por Página</param>
        /// <param name="columnName">Nombre de columna a Ordenar</param>
        /// <param name="orderDesc">Booleano de ordenamiento descendente</param>
        /// <returns>Objeto de Paginación con la Lista de Datos de Entidad</returns>
        public IPagedResult <Entity> GetAllPaged(int?page = null, int?pageSize = null, string columnName = null, bool orderDesc = false)
        {
            var entitiesFind = this.FindAll();

            if (columnName != null && !columnName.Equals(string.Empty))
            {
                if (EntityProperties.ContainsPropertyName(typeof(Entity), columnName))
                {
                    if (!orderDesc)
                    {
                        entitiesFind = entitiesFind.CustomOrderBy(columnName);
                    }
                    else
                    {
                        entitiesFind = entitiesFind.CustomOrderByDescending(columnName);
                    }
                }
            }
            if (page.HasValue && pageSize.HasValue)
            {
                return(entitiesFind.GetPaged(page.Value, pageSize.Value));
            }

            return(new PagedResult <Entity>
            {
                RowCount = entitiesFind.Count(),
                Results = entitiesFind.AsEnumerable().ToList()
            });
        }