public Respuesta Login([FromBody] Usuario usuario_login) { int login_type = 2; Respuesta respuesta = new Respuesta(); respuesta.resultado = 0; try { using (MacEntities db = new MacEntities()) { var usuario = (from u in db.tbl_usuarios where u.usuario == usuario_login.nombre_usuario select u).FirstOrDefault(); if (usuario == null) { respuesta.mensaje = "Usuario no encontrado."; return(respuesta); } if (!(bool)usuario.activo) { respuesta.mensaje = "Usuario inactivo."; return(respuesta); } Token api_token = new Token() { login_clave = false }; //var clave2 = Tools.GetSHA256(usuario_login.clave); var clave2 = usuario_login.clave; if (usuario.clave != clave2) { if (usuario.clave == usuario_login.clave && usuario.clave2 == null) { api_token.login_clave = false; } else { respuesta.mensaje = "Contraseña incorrecta."; return(respuesta); } } var token = (from t in db.tbl_api_tokens where t.id_usuario == usuario.id && t.estatus == 1 select t).FirstOrDefault(); if (token != null) { token.estatus = 0; db.Entry(token).State = System.Data.Entity.EntityState.Modified; if (db.SaveChanges() < 1) { respuesta.mensaje = "Su sesión previa no pudo ser cerrada."; return(respuesta); } }//if token !=null string token_string = Guid.NewGuid().ToString(); tbl_api_tokens new_token = new tbl_api_tokens() { id_usuario = usuario.id, estatus = 1, nombre = usuario.nombre.ToString(), apellido = usuario.apellido.ToString(), fecha_registro = DateTime.Now, id_centro = usuario.id_centro, token = Tools.GetSHA256(token_string) }; db.tbl_api_tokens.Add(new_token); if (db.SaveChanges() < 1) { respuesta.mensaje = "No se pudo iniciar una nueva sesión."; return(respuesta); } api_token.rol = (int)usuario.id_rol; api_token.usuario = usuario.usuario; api_token.id_usuario = (int)new_token.id_usuario; api_token.nombre = usuario.nombre; api_token.apellido = usuario.apellido; api_token.token = token_string; api_token.id_centro = (int)usuario.id_centro; respuesta.mensaje = "Inicio de sesión exitoso."; respuesta.resultado = 1; respuesta.data = api_token; } //using } //try catch (DbEntityValidationException ex) { respuesta.mensaje = "Errores econtrados."; List <Error> error_list = new List <Error>(); foreach (var errors in ex.EntityValidationErrors) { foreach (var error in errors.ValidationErrors) { // get the error message error_list.Add(new Error(error.ErrorMessage)); } //inner foreach } //foreach respuesta.data = error_list; } //DbEntityValidationException ex catch (Exception e) { respuesta.mensaje = "Error, intente mas tarde."; respuesta.data = e; } try { using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["APIDB"].ConnectionString)) { connection.Open(); SqlTransaction transaction = connection.BeginTransaction(); SqlCommand cmd = new SqlCommand($"select * from tbl_usuarios where nombre={usuario_login.nombre };", connection, transaction); cmd.CommandType = CommandType.Text; //List<Template> templates = new List<Template>(); Template templateData = new Template(); using (var rdr = cmd.ExecuteReader()) { rdr.Read(); //templateData = new Template //{ // id = GetNullable<int>(rdr, nameof(templateData.id)), // name = rdr[nameof(templateData.name)].ToString(), // description = rdr[nameof(templateData.description)].ToString(), // date_reg = GetNullable<DateTime>(rdr, nameof(templateData.date_reg)), // user_reg = rdr[nameof(templateData.user_reg)].ToString(), // status = GetNullable<int>(rdr, nameof(templateData.status)), // url = rdr[nameof(templateData.url)].ToString(), //}; //templates.Add(templateData); rdr.Close(); respuesta.resultado = 1; respuesta.mensaje = "Operación exitosa"; respuesta.data = templateData; } } } catch (Exception ex) { respuesta.resultado = 0; respuesta.mensaje = ex.Message; respuesta.data = ex; } return(respuesta); }//login
public Respuesta login([FromBody] Usuario usuario_login) { int login_type = 2; Respuesta respuesta = new Respuesta(); respuesta.resultado = 0; try { using (MacEntities db = new MacEntities()) { var usuario = (from u in db.tbl_usuarios where u.usuario == usuario_login.nombre_usuario select u).FirstOrDefault(); if (usuario == null) { respuesta.mensaje = "Usuario no encontrado."; return(respuesta); } if (!(bool)usuario.activo) { respuesta.mensaje = "Usuario inactivo."; return(respuesta); } Token api_token = new Token() { login_clave = false }; //var clave2 = Tools.GetSHA256(usuario_login.clave); var clave2 = usuario_login.clave; if (usuario.clave != clave2) { if (usuario.clave == usuario_login.clave && usuario.clave2 == null) { api_token.login_clave = false; } else { respuesta.mensaje = "Contraseña incorrecta."; return(respuesta); } } var token = (from t in db.tbl_api_tokens where t.id_usuario == usuario.id && t.estatus == 1 select t).FirstOrDefault(); if (token != null) { token.estatus = 0; db.Entry(token).State = System.Data.Entity.EntityState.Modified; if (db.SaveChanges() < 1) { respuesta.mensaje = "Su sesión previa no pudo ser cerrada."; return(respuesta); } }//if token !=null string token_string = Guid.NewGuid().ToString(); tbl_api_tokens new_token = new tbl_api_tokens() { id_usuario = usuario.id, estatus = 1, nombre = usuario.nombre.ToString(), apellido = usuario.apellido.ToString(), fecha_registro = DateTime.Now, id_centro = usuario.id_centro, token = Tools.GetSHA256(token_string) }; db.tbl_api_tokens.Add(new_token); if (db.SaveChanges() < 1) { respuesta.mensaje = "No se pudo iniciar una nueva sesión."; return(respuesta); } api_token.rol = (int)usuario.id_rol; api_token.usuario = usuario.usuario; api_token.id_usuario = (int)new_token.id_usuario; api_token.nombre = usuario.nombre; api_token.apellido = usuario.apellido; api_token.token = token_string; api_token.id_centro = (int)usuario.id_centro; var calendario = (from ca in db.tbl_usuarios_calendarios where ca.id_usuario == usuario.id select ca).FirstOrDefault(); if (calendario.url_calendario == null || calendario.url_calendario == "" || calendario == null) { api_token.calendar = false; } else { api_token.calendar = true; } respuesta.mensaje = "Inicio de sesión exitoso."; respuesta.resultado = 1; respuesta.data = api_token; } //using } //try catch (DbEntityValidationException ex) { respuesta.mensaje = "Errores econtrados."; List <Error> error_list = new List <Error>(); foreach (var errors in ex.EntityValidationErrors) { foreach (var error in errors.ValidationErrors) { // get the error message error_list.Add(new Error(error.ErrorMessage)); } //inner foreach } //foreach respuesta.data = error_list; } //DbEntityValidationException ex catch (Exception e) { respuesta.mensaje = "Error, intente mas tarde."; respuesta.data = e; } return(respuesta); }//login