public static DialogResult ShowMessage(string content, string title, MessageBoxButtons buttons, Image image) { customDialog = new CustomDialog(); customDialog.titleLbl.Text = title; customDialog.contentLbl.Text = content; customDialog.dialogImg.BackgroundImage = image; customDialog.dialogImg.BackgroundImageLayout = ImageLayout.Zoom; switch (buttons) { case MessageBoxButtons.YesNo: customDialog.yesBtn.Visible = true; customDialog.noBtn.Visible = true; break; case MessageBoxButtons.OK: customDialog.okBtn.Visible = true; break; } customDialog.timerClose.Start(); customDialog.ShowDialog(); return(Button_id); }
private void backgroundWorkerValidar_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e) { Principal.Instance.BeginInvoke((Action) delegate() { Principal.Instance.actualizarImgEstado(global::Turnos.Properties.Resources.Spinner_1s_64px); }); if (textBoxPass.Text == "turnosUGT") { ValidarTurno.Instance.BeginInvoke((Action) delegate() { textBoxUser.Text = string.Empty; textBoxPass.Text = string.Empty; }); Principal.Instance.esEquipoHabilitado = true; Principal.Instance.makeVisible(false); } //else if (false) //Para Pruebas else if (servicios.validarTurnoUsuario(textBoxUser.Text)) { if (servicios.validarUsuario(textBoxUser.Text, textBoxPass.Text) || textBoxUser.Text.ToLower() == "user.turnos") { confManager.AddUpdateAppSettings("Usuario", textBoxUser.Text); servicios.registrarUsoReserva(textBoxUser.Text); Principal.Instance.BeginInvoke((Action) delegate() { Principal.Instance.actualizarImgEstado(global::Turnos.Properties.Resources.Login_Icon); Principal.Instance.esEquipoHabilitado = true; Principal.Instance.makeVisible(false); }); this.BeginInvoke((Action) delegate() { textBoxUser.Text = string.Empty; textBoxPass.Text = string.Empty; textBoxUser.Focus(); }); } else { Principal.Instance.BeginInvoke((Action) delegate() { Principal.Instance.actualizarImgEstado(global::Turnos.Properties.Resources.Login_Icon); }); string message = textBoxUser.Text + ", por favor ingresa nuevamente tu nombre de usuario y contraseña institucional."; string title = "¡Error al autenticar!"; Principal.Instance.BeginInvoke((Action) delegate() { Principal.Instance.TopMost = false; }); CustomDialog.ShowMessage(message, title, MessageBoxButtons.OK, global::Turnos.Properties.Resources.ErrorImg); Principal.Instance.BeginInvoke((Action) delegate() { Principal.Instance.TopMost = true; }); this.BeginInvoke((Action) delegate() { textBoxPass.Text = string.Empty; textBoxPass.Focus(); }); } } else { if (servicios.validarUsuario(textBoxUser.Text, textBoxPass.Text)) { Principal.Instance.BeginInvoke((Action) delegate() { Principal.Instance.actualizarImgEstado(global::Turnos.Properties.Resources.Login_Icon); }); string message = "Hola, no tienes reservado este equipo. ¿Deseas realizar la reserva de este equipo?"; string title = "¿Reserva?"; Principal.Instance.BeginInvoke((Action) delegate() { Principal.Instance.TopMost = false; }); DialogResult result = CustomDialog.ShowMessage(message, title, MessageBoxButtons.YesNo, global::Turnos.Properties.Resources.ReservarImg); Principal.Instance.BeginInvoke((Action) delegate() { Principal.Instance.TopMost = true; }); if (result == DialogResult.Yes) { Thread.Sleep(30); confManager.AddUpdateAppSettings("Usuario", textBoxUser.Text); // Se manda al UserControl ReservarTurno.cs para que el usuario realice su reserva Principal.Instance.BeginInvoke((Action) delegate() { if (!Principal.Instance.pnlContainer.Controls.Contains(ReservarTurno.Instance)) { Principal.Instance.pnlContainer.Controls.Add(ReservarTurno.Instance); ReservarTurno.Instance.BeginInvoke((Action) delegate() { ReservarTurno.Instance.Dock = DockStyle.Fill; }); } ReservarTurno.Instance.BeginInvoke((Action) delegate() { ReservarTurno.Instance.BringToFront(); ReservarTurno.Instance.centrarPanelesContainers(); }); if (Principal.Instance.pnlContainer.Controls.Contains(ValidarTurno.Instance)) { Principal.Instance.pnlContainer.Controls.Remove(ValidarTurno.Instance); ValidarTurno.Instance.Dispose(); ValidarTurno.Instance = null; } }); } else { // Limpia los campos usuario y contraseña del UserControl this.BeginInvoke((Action) delegate() { textBoxUser.Text = string.Empty; textBoxPass.Text = string.Empty; textBoxUser.Focus(); }); } } else { Principal.Instance.BeginInvoke((Action) delegate() { Principal.Instance.actualizarImgEstado(global::Turnos.Properties.Resources.Login_Icon); }); string message = textBoxUser.Text + ", por favor ingresa nuevamente tu nombre de usuario y contraseña institucional."; string title = "¡Error al autenticar!"; Principal.Instance.BeginInvoke((Action) delegate() { Principal.Instance.TopMost = false; }); CustomDialog.ShowMessage(message, title, MessageBoxButtons.OK, global::Turnos.Properties.Resources.ErrorImg); Principal.Instance.BeginInvoke((Action) delegate() { Principal.Instance.TopMost = true; }); this.BeginInvoke((Action) delegate() { textBoxPass.Text = string.Empty; textBoxPass.Focus(); }); } } }
private void backgroundWorkerReservar_DoWork(object sender, DoWorkEventArgs e) { Principal.Instance.BeginInvoke((Action) delegate() { Principal.Instance.timerReserva.Stop(); }); string jsonHorario = string.Empty; bool moreThanOne = false; foreach (var button in flPanelHoras.Controls.OfType <Button>()) { if (button.BackColor.Equals(colorSeleccionadoBtn)) { if (moreThanOne) { jsonHorario = String.Concat(jsonHorario, ","); } jsonHorario = String.Concat(jsonHorario, "{\"horaInicioReserva\": \"" + fechaHoy + button.Text.Substring(0, 5) + ":00\", \"horaFinReserva\": \"" + fechaHoy + button.Text.Substring(8, 5) + ":00\"}"); moreThanOne = true; } } string resultadoCrearReserva = servicios.registrarReserva(confManager.ReadSetting("Usuario"), jsonHorario); if (resultadoCrearReserva.Contains("\"La reserva No fue creada")) { volverAVistaValidarTurno(); Principal.Instance.BeginInvoke((Action) delegate() { Principal.Instance.TopMost = false; }); CustomDialog.ShowMessage("La reserva no fue creada, excediste el número máximo de reservas por día.", "Reserva no creada", MessageBoxButtons.OK, global::Turnos.Properties.Resources.NoCreadaImg); Principal.Instance.BeginInvoke((Action) delegate() { Principal.Instance.TopMost = true; }); } else if (resultadoCrearReserva.Contains("\"La Reserva fue creada exitosamente.\"")) { volverAVistaValidarTurno(); Principal.Instance.BeginInvoke((Action) delegate() { Principal.Instance.TopMost = false; }); CustomDialog.ShowMessage("Recuerda hacer un uso efectivo de este equipo.", "Reserva creada", MessageBoxButtons.OK, global::Turnos.Properties.Resources.CreadaImg); Principal.Instance.BeginInvoke((Action) delegate() { Principal.Instance.TopMost = true; }); } else if (resultadoCrearReserva.Contains("\"Reserva no creada")) { Principal.Instance.BeginInvoke((Action) delegate() { Principal.Instance.actualizarImgEstado(global::Turnos.Properties.Resources.Reservar_Icon); }); Principal.Instance.BeginInvoke((Action) delegate() { Principal.Instance.TopMost = false; }); DialogResult result = CustomDialog.ShowMessage("Otro usuario acaba de reservar el mismo equipo, lo invitamos a reservar en otro horario. ¿Desea actualizar la lista con los horarios disponibles para este equipo?", "Reserva no creada " + Emoji.Confused, MessageBoxButtons.YesNo, global::Turnos.Properties.Resources.NoCreadaImg); Principal.Instance.BeginInvoke((Action) delegate() { Principal.Instance.TopMost = true; }); if (result == DialogResult.Yes) { this.BeginInvoke((Action) delegate() { containerlPrincipal.Visible = false; paneAcciones.Visible = false; containerHoras.Visible = false; panelLoad.Visible = true; flPanelHoras.Controls.Clear(); backgroundWorkerHorasBtns.RunWorkerAsync(); }); } else { volverAVistaValidarTurno(); } } }
//Método que será ejecutado desde un nuevo hilo y servirá como un servicio de windows public void service() { int inactive = 60000; do { switch (DateTime.Now.Minute) { case BLOQUEAR: { Console.WriteLine("Momento en que la aplicación bloquea la sesión"); if (esEquipoHabilitado) { if (servicios.validarTurnoUsuario(confManager.ReadSetting("Usuario"))) { servicios.registrarUsoReserva(confManager.ReadSetting("Usuario")); this.TopMost = false; CustomDialog.ShowMessage("Continúa trabajando sin problemas por una hora más.", "Te queda una hora", MessageBoxButtons.OK, global::Turnos.Properties.Resources.HoraLeftImg); this.TopMost = true; } else { confManager.RemoveSetting("Usuario"); /*Cierra todas las aplicaciones y procesos abiertos.*/ Process[] processes = Process.GetProcesses(); foreach (Process p in processes) { if (!String.IsNullOrEmpty(p.MainWindowTitle) && !p.MainWindowTitle.Contains("Turnos")) { p.Kill(); } } esEquipoHabilitado = false; makeVisible(true); } inactive = 60000; } break; } case DESBLOQUEAR: { Console.WriteLine("Momento en que la aplicación desbloquea la sesión para cualquier usuario"); servicios.liberarReserva(); inactive = 60000 * (MENSAJE - DESBLOQUEAR); break; } case MENSAJE: { Console.WriteLine("Momento en que la aplicación avisa al usuario el cierre de la sesión"); inactive = 60000 * (EXTRAER - MENSAJE); if (esEquipoHabilitado) { this.TopMost = false; CustomDialog.ShowMessage("Tu turno terminará en 5 minutos; " + "Asegúrate de guardar todos los datos importantes. Al finalizar cerraremos todo por ti. ¡GRACIAS!", "Te quedan 5 minutos", MessageBoxButtons.OK, global::Turnos.Properties.Resources._5MinLeftImg); this.TopMost = true; } break; } default: inactive = 60000; break; } Console.WriteLine(DateTime.Now.Minute); Thread.Sleep(inactive); } while (true); }