/// <summary> /// Get Title of view tree /// </summary> /// <param name="htmlHelper"></param> /// <param name="model"></param> /// <returns></returns> public static string Title(this HtmlHelper htmlHelper, TreeModelView model) { if (model.Model != null) { return(model.Model.GetType().GetEnumerableType().GetDescription()); } if (model.ModelDto != null) { return(model.ModelDto.GetType().GetEnumerableType().GetDescription()); } return(string.Empty); }
public virtual ActionResult Search(List <FilterEntity> filters, int?page) //, string orderBy) { var model = new TreeModelView(); //Add Filtros personalizados filters = AddFilter(filters); var pageNumber = page ?? 1; // if no page was specified in the querystring, default to the first page (1) var pageSize = ParametroService.GetValor <int>(CodigosParametros.PARAMETRO_TAMAÑO_PAGINA_GRILLAS); //1. Get View var view = GetViewTree(); var treeView = view.Layout as Tree; model.View = treeView; //2. Get Data IPagedListMetaData <Entity> result; if (string.IsNullOrWhiteSpace(treeView.DefaultOrder)) // && string.IsNullOrEmpty(orderBy)) { result = EntityService.GetList(filters, (pageNumber - 1) * pageSize, pageSize); } else { //if (!string.IsNullOrEmpty(orderBy)) //{ // result = EntityService.GetList(filters, (pageNumber - 1) * pageSize, pageSize, orderBy); //} //else { result = EntityService.GetList(filters, (pageNumber - 1) * pageSize, pageSize, treeView.DefaultOrder); //} } var list = result.Subset as IEnumerable <IEntity>; model.Model = list; model.PagedListMetaData = new PagedListMetaDataModel(pageNumber, pageSize, result.TotalResultSetCount); //3. Message model.Mensaje = new MensajeHelper(); //4. Paged ////View Search //view = _viewService.Get(typeof(Entity), typeof(Search)); ////var searchView = view.Layout as Search; ////view.Name //model.SearchView = view; // Order //model.OrderBy = !string.IsNullOrEmpty(orderBy) ? orderBy : treeView.DefaultOrder; return(Request.IsAjaxRequest() ? (ActionResult)PartialView("FormDynamic/TreeView", model) : View("Index", model)); }
/// <summary> /// Generic Index /// </summary> /// <param name="msg"></param> /// <param name="TipoMensaje"></param> /// <returns></returns> public virtual ActionResult Index(string msg, TipoMensaje?TipoMensaje) { //1. Model var model = new TreeModelView(); if (!string.IsNullOrEmpty(Title)) { model.Title = Title; } var filters = AddFilter(new List <FilterEntity>()); //2. Get View var view = GetViewTree(); var treeView = view.Layout as Tree; model.View = treeView; //3. Get Data if (ApplyPagination) { var pageNumber = 1; var pageSize = ParametroService.GetValor <int>(CodigosParametros.PARAMETRO_TAMAÑO_PAGINA_GRILLAS); IPagedListMetaData <Entity> result; if (string.IsNullOrWhiteSpace(treeView.DefaultOrder)) { result = EntityService.GetList(filters, (pageNumber - 1) * pageSize, pageSize); } else { result = EntityService.GetList(filters, (pageNumber - 1) * pageSize, pageSize, treeView.DefaultOrder); } model.Model = result.Subset as IEnumerable <IEntity>; model.PagedListMetaData = new PagedListMetaDataModel(pageNumber, pageSize, result.TotalResultSetCount); } else { if (string.IsNullOrWhiteSpace(treeView.DefaultOrder)) { model.Model = EntityService.GetList(filters) as IEnumerable <IEntity>; } else { model.Model = EntityService.GetList(filters, treeView.DefaultOrder) as IEnumerable <IEntity>; } } //4. View Search if (ApplySearch) { var searchView = GetViewSearch(); //TODO: de la misma forma que formview, se puede generar metadatos.. //Ejemplo si el filtro es un entidad.. (Visualizar el listado de esa entidad) //Si el campo... enum. (Crear un combo con las opciones posibles) // //model.MetadataSearchView = GenerateMetadataView.Generate(searchView, view.ModelType); //var searchView = view.Layout as Search; //view.Name model.SearchView = searchView; } //5. Message model.Mensaje = new MensajeHelper(); if (TipoMensaje.HasValue) { model.Mensaje.Texto = msg; model.Mensaje.Tipo = TipoMensaje.Value; } // Order model.OrderBy = treeView.DefaultOrder; ////5. Pagination //if (ApplyPagination) //{ // model.PagedListMetaData = new PagedListMetaDataModel(); //} return(View(model)); }