/// <summary> /// Implementación del método de la interfaz. /// </summary> /// <param name="padre"> /// En éste caso el objeto padre del caso de uso es un Form. /// </param> /// <param name="valor"> /// Aqui se espera que venga: [0](Parametro) el tipo de gestión que se /// espera se ejecute ahora;[1](Cuenta)=la cuenta que debe gestionarse; /// [3](Gestión)=la gestion que debe utilizarse actualmente (puede no /// venir en cuyo caso se crea). /// </param> public bool iniciar(object padre, params object[] valor) { try { // Crea el panel para asignar el objeto a trabajar Padre = padre; // Verifica y acepta los parámetros aceptarParametros(valor); // Si viene una gestion verifica su estado y asignacion // y si no viene entonces crea una nueva para gestionar if (_gestion != null) { // Esto se hace en modo "SELECT ... FOR UPDATE" Persistencia.Controlador.getSsp().Refresh(_gestion, LockMode.Upgrade); // Controla que no este asignada o lo este al usuario actual if (_gestion.Usuario != null && !_gestion.Usuario.Equals(Sistema.Controlador.SecurityService.getUsuario())) throw new DataErrorException("ERROR-GESTION-YAASGINADA", _gestion.Usuario.ToString()); // ...si solo esta creada la coloca como asignada if (_gestion.Estado.Equals(_creada)) _gestion.Estado = _asignada; // ...luego se asigna el usuario que corresponde _gestion.Usuario = Sistema.Controlador.SecurityService.getUsuario(); // ...finalmente se graba liberando el registro _gestion.save(); } _ventana = new WinGestionCuenta(this) { StartPosition = FormStartPosition.CenterScreen, Text = string.Format("{0} - {1}", Mensaje.TextoMensaje("TITULO-SHOW"), getTitulo()) }; _ventana.ShowDialog(); return true; } catch (Exception e) { Persistencia.Controlador.cerrarSsp(); throw new AppErrorException("UCCALLER-NOINIT", e.ToString()); } }
/// <summary> /// Ver descripción en clase base. /// </summary> /// <param name="ventana"> /// El objeto cuyos datos se muestran en el panel. /// </param> public void setVentanaPadre(Form ventana) { _ventanaPadre = (WinGestionCuenta)ventana; }
/// <summary> /// Ver descripción en clase base. /// </summary> /// <param name="ventana"> /// El objeto cuyos datos se muestran en el panel. /// </param> public void setVentanaPadre(Form ventana) { try { _ventanaPadre = (WinGestionCuenta)ventana; } catch (Exception e) { throw new VistaErrorException("PANEL-NOK", e.ToString()); } }