public GetProyectosResponse GetProyectos()
        {
            var response = new GetProyectosResponse();

            try
            {
                response.ProyectoViewModel = ProyectoMapper.ConvertToProyectoViewModel(_proyectoRepository.GetByCriteria(x => x.IsActivo), null);
                response.IsValid           = true;
            }
            catch (Exception ex)
            {
                response.IsValid      = false;
                response.ErrorMessage = ex.Message;
            }

            return(response);
        }
        public GetProyectosResponse GetProyectos(DataTableRequest request)
        {
            var response = new GetProyectosResponse()
            {
                IsValid = true
            };

            try
            {
                //filtro por el centro del usuario
                if (HttpContext.Current.Session["Usuario"] != null)
                {
                    var permisosUsuario = (UsuarioRolPermisoViewModel)HttpContext.Current.Session["Usuario"];
                    if (permisosUsuario.CentroIdUsuario.HasValue)
                    {
                        if (request.CustomFilters.ContainsKey("CentroId"))
                        {
                            request.CustomFilters["CentroId"] = permisosUsuario.CentroIdUsuario.Value.ToString();
                        }
                        else
                        {
                            request.CustomFilters.Add("CentroId", permisosUsuario.CentroIdUsuario.Value.ToString());
                        }
                    }
                }

                //establecer los filtros
                var query    = Filter(request.CustomFilters);
                var filtered = query.ApplyColumnSettings(request, ProyectoMapper.GetPropertiePath);

                var clienteIds     = filtered.Select(x => x.ClienteId).ToList();
                var nombreClientes = _clienteRepository.GetByCriteria(x => clienteIds.Contains(x.ClienteId)).ToDictionary(x => x.ClienteId, x => x.Nombre);

                response.ProyectoViewModel = filtered.ConvertToProyectoViewModel(nombreClientes);
                response.TotalElementos    = query.Count();
            }
            catch (Exception ex)
            {
                response.IsValid      = false;
                response.ErrorMessage = ex.Message;
            }

            return(response);
        }