/// <summary> /// Process a request from the service for new asunto /// </summary> /// <param name="a"></param> private void newAsuntoFromService(Asunto a) { try { // Generamos un objeto de logica para procesar el agregado de los asuntos Logica.Asunto logAsunto = new Logica.Asunto(); // Gestionamos una variable operador disponible para el método Operador operLogged = App.Current.Properties["user"] as Operador; // Si el operador al que era destino de este asunto no es el logueado, se lanza una excepción if (a.Oper.UserName != operLogged.UserName) { throw new Exception("Se ha recibido un asunto de un operador erroneo. Informar al administrador. Asunto: " + a.Numero + ". Operador: " + a.Oper.UserName); } // TODO : A modo de prueba inicial, el primer estado lo generamos en la capa de presentación. Esto debería ser generado en el servicio, para mantener fidelidad con el horario de entrada del asunto en bandeja generateInitialStatusOfAsunto(a); // Consultamos si el asunto en cuestion existe en la base de datos del operador if (!logAsunto.Exist(a)) { // Si no existe, se agrega a la base de datos logAsunto.Add(a); // Actualizamos la capa de presentación y los casos diarios NotifyUIOfNewAsunto(a.Numero, false); } } catch (Exception ex) { Except.Throw(ex); } }
private void txtNumAsunto_TextChanged(object sender, TextChangedEventArgs e) { // Si se comprueba que el número de asunto tiene el largo maximo del textbox (indica que esta completo) if (txtNumAsunto.Text.Length == txtNumAsunto.MaxLength && txtNumAsunto.IsEnabled) { // Comprobamos que ls validaciones sean correctas para poder avanzar con la consulta a la base de datos if (Validador.EsValido(txtNumAsunto)) { try { // Generamos un objeto de logica asunto para averiguar si el asunto está cargado Logica.Asunto logAsunto = new Logica.Asunto(); // Generamos un asunto que contenga solo este número cargado Entidades.Asunto entAsunto = new Entidades.Asunto() { Numero = txtNumAsunto.Text, Oper = App.Current.Properties["user"] as Entidades.Operador }; // Ejecutamos la consulta a la base de datos con el valor del campo cargado if (logAsunto.Exist(entAsunto)) { if (Util.MsgBox.Consulta("El asunto " + txtNumAsunto.Text + " se encuentra cargado. ¿Deseas traer el asunto guardado?") == true) { // Traemos el asunto y todos sus campos en la página de asuntos. GestionarModificacionAsunto(txtNumAsunto.Text); } } } catch (Exception ex) { Util.MsgBox.Error("Ha ocurrido un error al traer la información de la base de datos: " + ex.Message); } } } }