/// <summary> /// Comprueba si existe una conexión elegida correcta y cambia a ventana Operaciones /// </summary> private void Conectar() { // Si existe una conexión elegida correcta, o se está en modo invitado // y los inputs tienen los datos de una conexion correcta, cambiar ventana if (!modoInvitado) { if (conexionActual != null) { if (Test()) { VentanaOperaciones vo = new VentanaOperaciones(conexionActual); Manejador.CambiarVentana(this, vo); } } else { Msj.Aviso("No existe una conexión válida guardada"); } } else { if (modoInvitado && (conexionActual = ComprobarCampos()) != null) { if (Test()) { VentanaOperaciones vo = new VentanaOperaciones(conexionActual); Manejador.CambiarVentana(this, vo); } } } }
/// <summary> /// Realiza un test de conexión que informa al usuario de manera visual /// si los campos introducidos tienen una conexión válida. /// </summary> /// <returns>True si la conexión es válida.</returns> private bool Test() { conexionActual = ComprobarCampos(); if (conexionActual != null) { // Muestra la conexión actual ActualizarConexionActual(conexionActual); // Obtiene el resultado bool retorno = Operacion.ExecuteTest(conexionActual); if (retorno) { Msj.Info("Conexión correcta."); } else { Msj.Error("Conexión fallida"); } return(retorno); } else { Msj.Aviso("No existe conexión actual guardada correcta."); return(false); } }
private void btn_Click(object sender, RoutedEventArgs e) { // Comprobación WHERE if (!comandoEnviar.CommandText.Contains("WHERE")) { MessageBoxResult opcionElegida = MessageBox.Show("No se han elegido condiciones. \r\n" + "Se realizará un borrado TOTAL de TODAS las filas. ¿Continuar?", "Peligro", MessageBoxButton.YesNo, MessageBoxImage.Stop); if (opcionElegida.Equals(MessageBoxResult.No)) { return; } } int resultado = Operacion.ExecuteNonQuery(conexionActual, comandoEnviar); if (resultado > 0) { Msj.Info( resultado + " filas de la tabla \"" + Comprueba.EliminarResto(cmbTablas.SelectedItem.ToString()) + "\" en base de datos " + "\"" + conexionActual.BaseDatos + "\" eliminadas con éxito."); } else { Msj.Aviso("Ninguna fila afectada."); } }
/// <summary> /// Cambia a la ventana Conexion en modo Invitado. /// </summary> private void btnInvitado_Click(object sender, RoutedEventArgs e) { Msj.Aviso("Aviso: funcionalidades de guardado de conexiones no están disponibles en modo invitado."); VentanaConexion vc = new VentanaConexion(null); Manejador.CambiarVentana(this, vc); }
/// <summary> /// Implementa para una conexión MySQL el método ExecuteScalar como se especifica en Operacion.cs /// </summary> public static object ExecuteScalar(string cadenaConexion, MySqlCommand comando) { using (MySqlConnection sqlCon = new MySqlConnection(cadenaConexion)) { try { // 1. Abre the la conexión sqlCon.Open(); comando.Connection = sqlCon; // 2. Ejecuta y devuelve un objeto resultado return(comando.ExecuteScalar()); } catch (MySqlException s) { Msj.Error(s.Message); return(Operacion.ERROR); } catch (Exception s) { Msj.Error(MSJ_ERROR); Console.WriteLine(s.Message); return(Operacion.ERROR); } } }
public async Task <ActionResult <Turno> > DeleteTurno(int id) { try { var turno = await _context.Turnos.FindAsync(id); Msj mensaje = new Msj(); if (turno == null) { return(BadRequest()); } _context.Turnos.Remove(turno); await _context.SaveChangesAsync(); mensaje.Mensaje = "Turno cancelado!"; return(Ok(mensaje)); } catch (Exception ex) { return(BadRequest(ex)); } }
public async Task <ActionResult <Turno> > PostTurno(Turno2 turno2) { try { Turno turno = new Turno(); Msj msj = new Msj(); var usuario = await _context.Usuarios.FirstOrDefaultAsync(x => x.Email == User.Identity.Name); turno.Fecha = turno2.Fecha; turno.Hora = DateTime.Parse(turno2.Hora.hour + ":" + turno2.Hora.minute); turno.HorarioId = turno2.HorarioId; turno.UsuarioId = usuario.Id; _context.Turnos.Add(turno); await _context.SaveChangesAsync(); msj.Mensaje = "Datos guardados correctamente!"; return(Ok(msj)); } catch (Exception ex) { return(BadRequest(ex)); } }
/// <summary> /// Implementa para una conexión MySQL el método ExecuteNonQuery como se especifica en Operacion.cs /// </summary> public static int ExecuteNonQuery(string cadenaConexion, MySqlCommand comando) { using (MySqlConnection sqlCon = new MySqlConnection(cadenaConexion)) { try { // 1. Abre the la conexión sqlCon.Open(); comando.Connection = sqlCon; // 2. Ejecuta y devuelve el número de filas afectadas return(comando.ExecuteNonQuery()); } catch (MySqlException s) { Msj.Error(s.Message); return(Operacion.ERROR); } catch (Exception s) { Msj.Error(MSJ_ERROR); Console.WriteLine(s.Message); return(Operacion.ERROR); } } }
private void btnEjecutar_Click(object sender, RoutedEventArgs e) { int resultado = Operacion.ExecuteNonQuery(conexionActual, comandoEnviar); if (resultado != Operacion.ERROR) { Msj.Info("Tabla \"" + Comprueba.EliminarResto(txtTabla.Text) + "\" en base de datos " + "\"" + conexionActual.BaseDatos + "\" creada con éxito."); } }
private void btn_Click(object sender, RoutedEventArgs e) { int resultado = Operacion.ExecuteNonQuery(conexionActual, comandoEnviar); if (resultado != Operacion.ERROR) { Msj.Info("Tabla \"" + Comprueba.EliminarResto(cmbTablas.SelectedItem.ToString()) + "\" en base de datos " + "\"" + conexionActual.BaseDatos + "\" modificada con éxito."); // Reestableciendo tipo operación a por defecto cmbTipoOperacion.SelectedIndex = 0; } }
/// <summary> /// Ordena numéricamente según "ID" la lista de conexiones. /// En caso de no existir conexiones, lanza un aviso. /// </summary> private void ListaOrdenarID() { if (listViewConexiones.Items.Count > 0) { listaConexiones = new ObservableCollection <Conexion>(listaConexiones.OrderBy(c => c.ID)); RefrescarConexionesListview(); } else { Msj.Aviso("No existen conexiones a ordenar"); } }
/// <summary> /// Comprueba si hay una BBDD seleccionada. /// Si no la hay, pide al usuario seleccionar una. /// Luego abre una ventana ALTER TABLE de manera modal, /// pasando la conexión actual como parámetro. /// </summary> private void AlterTable() { if (HayBBDDSeleccionada()) { VAlterTable vat = new VAlterTable(conexionActual); vat.ShowDialog(); } else { Msj.Aviso(MSJ_ELEGIR_BBDD); } }
/// <summary> /// Comprueba si hay una BBDD seleccionada. /// Si no la hay, pide al usuario seleccionar una. /// Luego abre una ventana CREATE TABLE de manera modal, /// pasando la conexión actual como parámetro. /// </summary> private void CreateTable() { if (HayBBDDSeleccionada()) { VCreateTable vct = new VCreateTable(conexionActual); vct.ShowDialog(); } else { Msj.Aviso(MSJ_ELEGIR_BBDD); } }
/// <summary> /// Comprueba si hay una BBDD seleccionada. /// Si no la hay, pide al usuario seleccionar una. /// Luego abre una ventana DELETE de manera modal, /// pasando la conexión actual como parámetro. /// </summary> private void Delete() { // Antes comprobar si existe una BBDD seleccionada if (HayBBDDSeleccionada()) { VDeleteFrom vdf = new VDeleteFrom(conexionActual); vdf.ShowDialog(); } else { Msj.Aviso(MSJ_ELEGIR_BBDD); } }
/// <summary> /// Comprueba si hay una BBDD seleccionada. /// Si no la hay, pide al usuario seleccionar una. /// Luego abre una ventana UPDATE de manera modal, /// pasando la conexión actual como parámetro. /// </summary> private void Update() { // Antes comprobar si existe una BBDD seleccionada if (HayBBDDSeleccionada()) { VUpdate vu = new VUpdate(conexionActual); vu.ShowDialog(); } else { Msj.Aviso(MSJ_ELEGIR_BBDD); } }
private void ShowTables() { // Antes comprobar si existe una BBDD seleccionada if (HayBBDDSeleccionada()) { VShowTables vst = new VShowTables(conexionActual); vst.ShowDialog(); } else { Msj.Aviso(MSJ_ELEGIR_BBDD); } }
/// <summary> /// Comprueba si hay una BBDD seleccionada. /// Si no la hay, pide al usuario seleccionar una. /// Luego abre una ventana INSERT de manera modal, /// pasando la conexión actual como parámetro. /// </summary> private void Insert() { // Antes comprobar si existe una BBDD seleccionada if (HayBBDDSeleccionada()) { VInsert vi = new VInsert(conexionActual); vi.ShowDialog(); } else { Msj.Aviso(MSJ_ELEGIR_BBDD); } }
public async Task <IActionResult> PutHorario([FromBody] Horario2 entidad) { try { Horario horario = null; Msj mensaje = new Msj(); DateTime dateTime = new DateTime(1987, 1, 18, 7, 7, 7); if (ModelState.IsValid && _context.Horarios.AsNoTracking().SingleOrDefault(e => e.Id == entidad.Id) != null) { horario = _context.Horarios.SingleOrDefault(x => x.Id == entidad.Id); horario.Frecuencia = entidad.Frecuencia; horario.DiaSemana = entidad.DiaSemana; if (entidad.HoraDesdeManiana != null) { horario.HoraDesdeManiana = DateTime.Parse(entidad.HoraDesdeManiana.hour + ":" + entidad.HoraDesdeManiana.minute); horario.HoraHastaManiana = DateTime.Parse(entidad.HoraHastaManiana.hour + ":" + entidad.HoraHastaManiana.minute); } else { horario.HoraDesdeManiana = dateTime; horario.HoraHastaManiana = dateTime; } if (entidad.HoraDesdeTarde != null) { horario.HoraDesdeTarde = DateTime.Parse(entidad.HoraDesdeTarde.hour + ":" + entidad.HoraDesdeTarde.minute); horario.HoraHastaTarde = DateTime.Parse(entidad.HoraHastaTarde.hour + ":" + entidad.HoraHastaTarde.minute); } else { horario.HoraDesdeTarde = dateTime; horario.HoraHastaTarde = dateTime; } _context.Horarios.Update(horario); _context.SaveChanges(); mensaje.Mensaje = "Datos actualizados correctamente!"; return(Ok(mensaje)); } return(BadRequest()); } catch (Exception ex) { return(BadRequest(ex)); } }
/// <summary> /// Comprueba si hay una BBDD seleccionada. /// Si no la hay, pide al usuario seleccionar una. /// Luego abre una ventana DROP TABLE de manera modal, /// pasando la conexión actual como parámetro. /// </summary> private void DropTable() { if (HayBBDDSeleccionada()) { DbCommand comando = Comando.DropTable(conexionActual); VGenericaDrop vod = new VGenericaDrop(conexionActual, VGenericaDrop.Modo.TABLE); vod.ShowDialog(); } else { Msj.Aviso(MSJ_ELEGIR_BBDD); } }
/// <summary> /// Guarda la conexión resultante de los datos actualmente introducidos en base de datos, /// o en modo local si se está en modo invitado. /// </summary> /// <returns>True si la conexión se ha podido guardar.</returns> private bool Guardar() { Conexion guardar = ComprobarCampos(); if (guardar != null) { if (!modoInvitado) { // Si no está marcado el check de contraseñas, se borran los datos if (chkGuardarContrasenia.IsChecked.Value) { if (Comprueba.ContraseniaConexion(pwdBoxContrasenia.Password) ?? false) { // Todo correcto, se devuelve una conexion guardando contraseña guardar.ContraseniaConexion = pwdBoxContrasenia.Password; } else { Msj.Aviso("Se ha marcado 'guardar contraseña' pero está vacía o con valores nulos."); return(false); } } else { guardar.ContraseniaConexion = ""; } ResultadoConexion resultado = BBDDPrograma.RegistrarConexion(guardar); resultado.MostrarMensaje(); // Si se guarda, lo almacenamos temporalmente por si se desea acceder directamente if (resultado.ResultadoActual == ResultadoConexion.TipoResultado.ACEPTADO) { conexionActual = resultado.ConexionGuardar; listaConexiones.Add(conexionActual); } return(resultado.ResultadoActual == ResultadoConexion.TipoResultado.ACEPTADO); } else { conexionActual = guardar; return(true); } } else { return(false); } }
/// <summary> /// Comprueba si hay una BBDD seleccionada. Si la hay, la deselecciona. /// Abre una ventana DROP DATABASE de manera modal, /// pasando la conexión actual como parámetro. /// </summary> private void DropDB() { if (HayBBDDSeleccionada()) { // Quita la selección de la BBDD actual cmbBaseDatos.SelectedIndex = 0; SeleccionBBDDCambiada(); Msj.Aviso("Deseleccionada BBDD elegida"); } DbCommand comando = Comando.DropDatabase(conexionActual, false); VGenericaDrop vod = new VGenericaDrop(conexionActual, VGenericaDrop.Modo.DATABASE); vod.ShowDialog(); }
private void btn_Click(object sender, RoutedEventArgs e) { // Crear datos a guardar DatosConsulta datosGuardar = new DatosConsulta( paqueteDatos.Conexion, paqueteDatos.Datos, paqueteDatos.ComandoSQL); if (Serializador.Guardar(datosGuardar)) { Msj.Info("Datos almacenados correctamente."); } else { Msj.Aviso("Error al guardar. Datos no almacenados."); } }
private void btn_Click(object sender, RoutedEventArgs e) { int resultado = Operacion.ExecuteNonQuery(conexionActual, comandoEnviar); if (resultado > 0) { Msj.Info( "Fila en la tabla \"" + Comprueba.EliminarResto(cmbTablas.SelectedItem.ToString()) + "\" en base de datos " + "\"" + conexionActual.BaseDatos + "\" añadida con éxito."); } else { Msj.Error("Ninguna fila afectada."); } }
public async Task <ActionResult <Prestacion> > DeleteServicio(int id) { try { Msj mensaje = new Msj(); var prestacion = await _context.Prestaciones.FindAsync(id); var horarios = _context.Horarios.Include(x => x.Turnos).Where(x => x.PrestacionId == id); if (prestacion == null) { mensaje.Mensaje = "No se encontró la prestacion!"; return(Ok(mensaje)); } foreach (Horario h in horarios) { if (h.Turnos.Count != 0 && h.Turnos.Any(x => DateTime.Parse(x.Fecha) >= DateTime.Now.Date)) { mensaje.Mensaje = "Hay turnos asignados para esta prestacion!"; return(Ok(mensaje)); } } foreach (Horario h in horarios) { _context.Horarios.Remove(h); } string wwwPath = environment.WebRootPath; string fullPath = wwwPath + prestacion.Logo; System.IO.File.Delete(fullPath); mensaje.Mensaje = "Prestacion eliminada correctamente!"; _context.Prestaciones.Remove(prestacion); await _context.SaveChangesAsync(); return(Ok(mensaje)); } catch (Exception ex) { return(BadRequest(ex)); } }
public async Task <ActionResult <Horario> > PostHorario(Horario2 horario2) { try { Horario horario = new Horario(); Msj msj = new Msj(); DateTime dateTime = new DateTime(1987, 1, 18, 7, 7, 7); if (horario2.HoraDesdeManiana != null) { horario.HoraDesdeManiana = DateTime.Parse(horario2.HoraDesdeManiana.hour + ":" + horario2.HoraDesdeManiana.minute); horario.HoraHastaManiana = DateTime.Parse(horario2.HoraHastaManiana.hour + ":" + horario2.HoraHastaManiana.minute); } else { horario.HoraDesdeManiana = dateTime; horario.HoraHastaManiana = dateTime; } if (horario2.HoraDesdeTarde != null) { horario.HoraDesdeTarde = DateTime.Parse(horario2.HoraDesdeTarde.hour + ":" + horario2.HoraDesdeTarde.minute); horario.HoraHastaTarde = DateTime.Parse(horario2.HoraHastaTarde.hour + ":" + horario2.HoraHastaTarde.minute); } else { horario.HoraDesdeTarde = dateTime; horario.HoraHastaTarde = dateTime; } horario.Frecuencia = horario2.Frecuencia; horario.PrestacionId = horario2.PrestacionId; horario.DiaSemana = horario2.DiaSemana; _context.Horarios.Add(horario); await _context.SaveChangesAsync(); msj.Mensaje = "Datos guardados correctamente!"; return(Ok(msj)); } catch (Exception ex) { return(BadRequest(ex)); } }
public async Task <ActionResult> RecuperarPass([FromBody] string email) { try { var usuario = _context.Usuarios.FirstOrDefault(x => x.Email == email); Msj msj = new Msj(); if (usuario != null) { string pass = utilidades.GenerarCodigo(); string hashed = Convert.ToBase64String(KeyDerivation.Pbkdf2( password: pass, salt: System.Text.Encoding.ASCII.GetBytes("Salt"), prf: KeyDerivationPrf.HMACSHA1, iterationCount: 1000, numBytesRequested: 256 / 8)); usuario.Clave = hashed; _context.Usuarios.Update(usuario); await _context.SaveChangesAsync(); utilidades.EnciarCorreo(usuario.Email, "Club La Ribera - Blanqueo de clave", "<h2>Recuperación de clave para " + usuario.Apellido + " " + usuario.Nombre + "</h2>" + "<p>Recuerda modificar la contraseña cuando ingreses.</p>" + "<br />" + "<p>Tu contraseña es: " + pass + "</p>" + "<p>Este es un email generado automáticamente, no lo respondas."); msj.Mensaje = "Recibirá en su correo la contraseña para ingresar"; return(Ok(msj)); } else { return(BadRequest()); } } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public ActionResult SaveDoctos(HttpPostedFileBase file, Pagos item) { List <Msj> msj = new List <Msj>(); Msj param; int IdUser = int.Parse(Session["IdUser"].ToString()); item.Creado_por = IdUser; if (file == null) { param = new Msj(); param.Mnj = "Debe de adjuntar el comprobante de pago"; msj.Add(param); ViewBag.Listmsj = JsonConvert.SerializeObject(msj, Newtonsoft.Json.Formatting.None); ViewBag.ShowError = true; return(PartialView("~/Views/NURCP/LibPagosProgramados.cshtml", nurc.LisPagos())); } string archivo = file.FileName; string VirtualName = string.Empty; if (nurc.spInsDocumento_Pago(archivo, IdUser, item.Id_Pago, 4, out VirtualName) == 1) { if (nurc.spPupEstatusPagoCambio(item) == 1) { return(Redirect("LibPagosProgramados")); } else { param = new Msj(); param.Mnj = "Error al Adjuntar documento Codigo L66"; msj.Add(param); ViewBag.Listmsj = JsonConvert.SerializeObject(msj, Newtonsoft.Json.Formatting.None); ViewBag.ShowError = true; return(View("~/Views/NURCP/LibPagosProgramados.cshtml", nurc.LisPagos())); } } else { param = new Msj(); param.Mnj = "Error al Adjuntar documento Codigo L64"; msj.Add(param); ViewBag.Listmsj = JsonConvert.SerializeObject(msj, Newtonsoft.Json.Formatting.None); ViewBag.ShowError = true; return(View("~/Views/NURCP/LibPagosProgramados.cshtml", nurc.LisPagos())); } }
/// <summary> /// Abre una conexión Web a una reconocida página de información sobre comandos SQL, /// previa petición de permiso al usuario. /// </summary> private void Ayuda() { MessageBoxResult opcionElegir = MessageBox.Show("Se abrirá una conexión a la web W3SCHOOLS\r\n" + "¿Desea permitirlo?", "Información", MessageBoxButton.YesNo, MessageBoxImage.Information); if (opcionElegir.Equals(MessageBoxResult.Yes)) { try { Process.Start("https://www.w3schools.com/sql/default.asp"); } catch (Exception) { Msj.Aviso("Navegador por defecto no encontrado"); } } }
/// <summary> /// Comprueba los inputs y realiza una comprobación de los datos contra la base de datos. /// Si son correctos, se cambia ventana a ventana Conexión. /// </summary> private void btnAcceder_Click(object sender, RoutedEventArgs e) { if (ComprobarCampos()) { ResultadoLogin resultado = BBDDPrograma.LoginUsuario(txtBoxUsuario.Text, pwdBoxContrasenia.Password); resultado.MostrarMensaje(); // Si el login ha sido correcto, abrimos la ventana de conexión pasando el usuario logeado. if (resultado.ResultadoActual == ResultadoLogin.TipoResultado.ACEPTADO) { VentanaConexion vc = new VentanaConexion(resultado.UsuarioActual); Manejador.CambiarVentana(this, vc); } } else { Msj.Error("Uno o más campos contienen errores"); } }
/// <summary> /// Muestra un mensaje al usuario correspondiente al tipo de resultado /// que se haya producido. /// </summary>/// <summary> /// Muestra un mensaje al usuario correspondiente al tipo de resultado /// que se haya producido. /// </summary> public void MostrarMensaje() { switch (ResultadoActual) { case TipoResultado.ACEPTADO: Msj.Info(RESPUESTA_ACEPTADO); break; case TipoResultado.DENEGADO: Msj.Aviso(RESPUESTA_DENEGADO); break; case TipoResultado.ERROR: Msj.Error(RESPUESTA_ERROR); break; default: break; } }