//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); }
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); }
public static bool Crear(Tarea tarea, string sesionId) { Usuario usuario = Sesion.VerificarSesion(sesionId, true); if (usuario != null) { return(ModeloFactory.Crear(tarea)); } return(false); }
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); }
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); }
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); }
//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); }
public static Tarea Obtener(int id) { return(ModeloFactory.Obtener <Tarea>(new KeyValuePair <String, String>("id", id.ToString()))); }
public static List <Tarea> Listar() { return(ModeloFactory.Listar <Tarea>()); }