public JsonResult getById(int idProyecto)
        {
            string token     = Request.Headers["X-AUTH-TOKEN"];
            string resultado = "";

            if (Request.HttpMethod == "GET")
            {
                if (token != null)
                {
                    Sesion sesionActual = getSesionByToken(token);

                    if (sesionActual != null)
                    {
                        string   error    = "";
                        Proyecto proyecto = serviceProyecto.getById(idProyecto, ref error);

                        if (proyecto.usuario_creador.id_usuario != sesionActual.usuario_logueado.id_usuario)
                        {
                            List <Rol> rolesUsuarioLogueado = serviceRol.getByIdUser(sesionActual.usuario_logueado.id_usuario, ref resultado);
                            bool       esAdministrador      = false;
                            foreach (var rol in rolesUsuarioLogueado)
                            {
                                if (rol.id_rol == 1)
                                {
                                    esAdministrador = true;
                                    break;
                                }
                            }
                            if (!esAdministrador)
                            {
                                error = "Usted no tiene permiso sobre este proyecto.";
                            }
                        }

                        if (!string.IsNullOrEmpty(error))
                        {
                            return(Json(new { Error = true, Mensaje = error }, JsonRequestBehavior.AllowGet));
                        }

                        return(Json(proyecto, JsonRequestBehavior.AllowGet));
                    }
                    else
                    {
                        resultado = "No se encontró una sesión activa";
                    }
                }
                else
                {
                    resultado = "token no válido";
                }
            }

            return(Json(new { Error = true, Mensaje = resultado }, JsonRequestBehavior.AllowGet));
        }
        public JsonResult updateRoles()
        {
            string resultado = "";

            if (Request.HttpMethod == "POST")
            {
                try
                {
                    string token = Request.Headers["X-AUTH-TOKEN"];

                    if (!string.IsNullOrEmpty(token))
                    {
                        SesionService sesionService = new SesionService();

                        Sesion sesionActual = sesionService.getByToken(token, ref resultado);

                        if (sesionActual != null)
                        {
                            List <Rol> rolesUsuario = serviceRol.getByIdUser(sesionActual.usuario_logueado.id_usuario, ref resultado);

                            foreach (var rol in rolesUsuario)
                            {
                                if (rol.id_rol == 1)
                                {
                                    Request.InputStream.Seek(0, SeekOrigin.Begin);
                                    string  jsonData   = new StreamReader(Request.InputStream).ReadToEnd();
                                    dynamic objUsuario = JsonConvert.DeserializeObject(jsonData, typeof(object));

                                    int idUserActualizable = objUsuario.roles.idUser;

                                    Entidades.Usuario user = serviceUsuario.getById(idUserActualizable, ref resultado);
                                    if (user.id_usuario > 0)
                                    {
                                        List <Rol> rolesAAsignar = new List <Rol>();
                                        bool       administrador = objUsuario.roles.administrador;
                                        bool       creador       = objUsuario.roles.creador;
                                        bool       analista      = objUsuario.roles.analista;
                                        bool       desarrollador = objUsuario.roles.desarrollador;
                                        bool       evaluador     = objUsuario.roles.evaluador;
                                        bool       implementador = objUsuario.roles.implementador;

                                        if (administrador)
                                        {
                                            rolesAAsignar.Add(new Rol {
                                                id_rol = 1
                                            });
                                        }
                                        if (creador)
                                        {
                                            rolesAAsignar.Add(new Rol {
                                                id_rol = 2
                                            });
                                        }
                                        if (analista)
                                        {
                                            rolesAAsignar.Add(new Rol {
                                                id_rol = 3
                                            });
                                        }
                                        if (desarrollador)
                                        {
                                            rolesAAsignar.Add(new Rol {
                                                id_rol = 4
                                            });
                                        }
                                        if (evaluador)
                                        {
                                            rolesAAsignar.Add(new Rol {
                                                id_rol = 5
                                            });
                                        }
                                        if (implementador)
                                        {
                                            rolesAAsignar.Add(new Rol {
                                                id_rol = 6
                                            });
                                        }

                                        user.roles = new List <Rol>();

                                        user.roles.AddRange(rolesAAsignar);

                                        serviceUsuario.updateRoles(user, ref resultado);
                                    }
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    resultado = ex.Message;
                }
            }

            return(Json(new { Error = true, Mensaje = resultado }, JsonRequestBehavior.AllowGet));
        }