Пример #1
0
        //un usuario solo puede modificar sus propias tareas a menos que sea un SuperUsuario

        public static bool Modificar(JsonElement objetoJson, string sesionId)
        {
            Dictionary <String, String> campos = ModeloFactory.ValidarNulos <Tarea>(objetoJson, "Id");

            if (campos.Count > 0)
            {
                Usuario usuario = Sesion.VerificarSesion(sesionId);


                if (usuario != null && ((campos.ContainsKey("Usuario") && usuario.Id.ToString() == campos["Usuario"]) || usuario.GetRol().SuperUsuario))
                {
                    if (usuario.GetRol().SuperUsuario)
                    {
                        return(ModeloFactory.Modificar <Tarea>(campos, new KeyValuePair <string, string>("Id", objetoJson.GetProperty("id").ToString())));
                    }
                    else
                    {
                        //solo puede modificar el Estado
                        if (objetoJson.TryGetProperty("estado", out JsonElement estado))
                        {
                            return(ModeloFactory.Modificar <Tarea>(new Dictionary <string, string> {
                                { "Estado", estado.ToString() }
                            }, new KeyValuePair <string, string>("Id", objetoJson.GetProperty("id").ToString())));
                        }
                    }
                }
            }
            return(false);
        }
Пример #2
0
        public static Dictionary <String, String> ValidarNulos <T>(JsonElement jsonObjeto, String identificador)
        {
            Dictionary <String, String> campos = new Dictionary <string, string>();

            PropertyInfo[] propiedades = typeof(T).GetProperties();
            try
            {
                JsonElement jsonId = jsonObjeto.GetProperty(Utilidades.firstLower(identificador));
                T           objeto = ModeloFactory.Obtener <T>(new KeyValuePair <string, string>(identificador, jsonId.ToString()));

                foreach (PropertyInfo propiedad in propiedades)
                {
                    if (jsonObjeto.TryGetProperty(Utilidades.firstLower(propiedad.Name), out JsonElement jsonCampo))
                    {
                        MethodInfo metodo     = jsonCampo.GetType().GetMethod("Get" + propiedad.PropertyType.Name);
                        Object     valorCampo = metodo.Invoke(jsonCampo, null);
                        campos.Add(propiedad.Name, valorCampo.ToString());
                    }
                    else
                    {
                        campos.Add(propiedad.Name, propiedad.GetValue(objeto).ToString());
                    }
                }
            }
            catch (Exception ex) {
                Console.WriteLine(ex.Message);
            }

            return(campos);
        }
Пример #3
0
        public static bool Crear(Tarea tarea, string sesionId)
        {
            Usuario usuario = Sesion.VerificarSesion(sesionId, true);

            if (usuario != null)
            {
                return(ModeloFactory.Crear(tarea));
            }
            return(false);
        }
Пример #4
0
        public static KeyValuePair <Usuario, String>?Autenticar(String usuario, String contrasena)
        {
            contrasena = Utilidades.encriptarContrasena(usuario, contrasena);
            Usuario _usuario = ModeloFactory.Obtener <Usuario>(new KeyValuePair <string, string>("nombre", usuario));

            if (_usuario != null && _usuario.Contrasena.Equals(contrasena))
            {
                return(new KeyValuePair <Usuario, string>(_usuario, Sesion.CrearSesion(_usuario)));
            }
            return(null);
        }
Пример #5
0
 public static Tarea Eliminar(int id, string sesionId)
 {
     if (Sesion.VerificarSesion(sesionId, true) != null)
     {
         Tarea tarea = ModeloFactory.Obtener <Tarea>(new KeyValuePair <string, string>("Id", id.ToString()));
         if (tarea != null)
         {
             if (ModeloFactory.Eliminar <Tarea>(new KeyValuePair <string, string>("Id", id.ToString())))
             {
                 return(tarea);
             }
         }
     }
     return(null);
 }
Пример #6
0
 public static KeyValuePair <Usuario, DateTime>?DecriptaSesion(String sesionId)
 {
     if (sesionId != null && !sesionId.Equals(""))
     {
         String[] texto = Utilidades.DeBase64(sesionId).Split(",");
         if (texto.Length > 1)
         {
             Usuario usuario = ModeloFactory.Obtener <Usuario>(new KeyValuePair <string, string>("contrasena", texto[0]));
             if (usuario != null)
             {
                 return(new KeyValuePair <Usuario, DateTime>(usuario, DateTime.FromFileTime(Int64.Parse(texto[1]))));
             }
         }
     }
     return(null);
 }
Пример #7
0
        //un usuario solo puede modificar sus propias tareas a menos que sea un SuperUsuario
        public static bool Modificar(Tarea tarea, string sesionId)
        {
            Usuario usuario = Sesion.VerificarSesion(sesionId);

            tarea = ModeloFactory.ValidarNulos <Tarea>(tarea, "Id");
            if (usuario != null && tarea != null && tarea.GetUsuario() != null && (usuario.Id == tarea.GetUsuario().Id || usuario.GetRol().SuperUsuario))
            {
                if (usuario.GetRol().SuperUsuario)
                {
                    return(ModeloFactory.Modificar(tarea, "Id"));
                }
                else
                {
                    //solo puede modificar el Estado
                    return(ModeloFactory.Modificar <Tarea>(new Dictionary <string, string> {
                        { "Estado", tarea.Estado }
                    }, new KeyValuePair <string, string>("Id", tarea.Id.ToString())));
                }
            }
            return(false);
        }
Пример #8
0
 public static Tarea Obtener(int id)
 {
     return(ModeloFactory.Obtener <Tarea>(new KeyValuePair <String, String>("id", id.ToString())));
 }
Пример #9
0
 public static List <Tarea> Listar()
 {
     return(ModeloFactory.Listar <Tarea>());
 }