Beispiel #1
0
 /// <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);
     }
 }
Beispiel #2
0
 private void newAsuntoFromService(List <Asunto> lstOfNewAsuntos)
 {
     try {
         // Get current user properties and save in a temporary variable
         Operador operatorCurrentlyLogeed = App.Current.Properties["user"] as Operador;
         // Compare all asuntos with operator to confirm if all are the same
         if (!lstOfNewAsuntos.TrueForAll(asunto => asunto.Oper.UserName == operatorCurrentlyLogeed.UserName))
         {
             string[] lstOfAsuntosCorrupted = lstOfNewAsuntos.FindAll(asunto => asunto.Oper.UserName != asunto.Oper.UserName).Select(asunto => asunto.Numero).ToArray();
             throw new Exception("Se ha encontrado que los siguientes asuntos no estaban destinados a vos: " + string.Join(", ", lstOfAsuntosCorrupted) + ". Informe al administrador");
         }
         // On all asuntos generate starting status
         lstOfNewAsuntos.ForEach(asunto => generateInitialStatusOfAsunto(asunto));
         // Generate new logic asunto object
         Logica.Asunto logAsunto = new Logica.Asunto();
         // Save list of non duplicated asuntos in a new list
         List <Asunto> lstNonDuplicatedAsuntos = logAsunto.GetNonDuplicatedAsuntosFromList(lstOfNewAsuntos);
         // Select from the list only the asuntos non duplicated
         if (lstNonDuplicatedAsuntos.Count > 0)
         {
             // Procedd with add al filtered asuntos
             logAsunto.Add(lstNonDuplicatedAsuntos);
             // Show on UI layer reporting new asunto count
             NotifyUIOfNewAsunto(lstNonDuplicatedAsuntos.Count.ToString(), true);
         }
     } catch (Exception ex) {
         Except.Throw(ex);
     }
 }
Beispiel #3
0
 /// <summary>
 /// Carga un asunto en el listado de asuntos
 /// </summary>
 /// <param name="pEntAsunto"></param>
 public void CargarAsunto(Entidades.Asunto pEntAsunto)
 {
     try
     {
         // Generamos un objeto de logica asunto
         Logica.Asunto logAsunto = new Logica.Asunto();
         // Procesamos el pedido de alta
         logAsunto.Add(pEntAsunto);
         // Mostramos un mensaje de exito en solicitud
         Util.MsgBox.Error("Se ha cargado el asunto de manera correcta");
         // Actualizamos el listado de asuntos cargados
         VentanaPadre.pagListadogeneral.ActualizarListado();
         // Actualizamos el listado de asuntos diarios
         VentanaPadre.CargarAsuntosDiarios();
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }