예제 #1
0
 /// <summary>
 /// Valida si es el administrador de consola
 /// </summary>
 /// <param name="oper"></param>
 private bool isConsoleAdmin(Entidades.Operador oper)
 {
     if (consoleAdmin.UserName == oper.UserName && consoleAdmin.Password == oper.Password)
     {
         return(true);
     }
     return(false);
 }
예제 #2
0
 /// <summary>
 /// Sent to proxy service a request for distribute a batch of asuntos
 /// </summary>
 /// <param name="prmBackofficeSender"></param>
 /// <param name="prmListOfAsunto"></param>
 public async Task SentBatchAsuntoToOperators(Entidades.Operador prmBackofficeSender, List<Entidades.Asunto> prmListOfAsunto)
 {
     try {
         await HandleProxy();
         proxy.SentBatchOfAsuntosToOperator(prmBackofficeSender, prmListOfAsunto.ToArray());
     } catch (Exception ex) {
         throw ex;
     }
 }
예제 #3
0
 private async Task sentDisconnectToCurrentBackoffice(Client prevClient, Entidades.Operador paramNewBackoffice)
 {
     Log.Info("MainService", string.Format("backoffice {0} has been forcedly disconnected by {1}", connectedBackoffice.Operator, paramNewBackoffice.UserName));
     await Task.Run(() =>
     {
         // Sent to previous backoffice a message and force disconnection
         prevClient.Callback.Mensaje(string.Format("the operator {0} has been connected to the service. Your connection has been forcedly terminated.", paramNewBackoffice.UserName));
         prevClient.Callback.ForceDisconnect();
     }).TimeoutAfter(Config.BACKOFFICE_TIMEOUT);
 }
예제 #4
0
 /// <summary>
 /// Sent to the service an asunto to deliver
 /// </summary>
 /// <param name="prmBackofficeSender">Backoffice who sends asunto</param>
 /// <param name="prmAsuntoToSent">Asunto to send</param>
 public async Task SentAsuntoToOperator(Entidades.Operador prmBackofficeSender, Entidades.Asunto prmAsuntoToSent)
 {
     try {
         // Manage status of the proxy
         await HandleProxy();
         proxy.SentAsuntoToOperator(prmBackofficeSender, prmAsuntoToSent);
     }
     catch (Exception ex) {
         Except.Throw(ex);
     }
 }
예제 #5
0
 /// <summary>
 /// Sent a request to service for changing current status on the service
 /// </summary>
 /// <param name="pOperator"></param>
 /// <param name="newStatus"></param>
 /// <returns></returns>
 public async Task ChangeCurrentStatus(Entidades.Operador prmOper, AvailabiltyStatus newStatus)
 {
     try {
         // Checks if the proxy is ready
         await prepareProxy();
         // Sent to the service petition to change te current status
         proxy.SetStatus(prmOper, newStatus);
     }
     catch (Exception ex) {
         throw ex;
     }
 }
예제 #6
0
        /// <summary>
        /// Sents a disconnect petition to service
        /// </summary>
        /// <param name="paramOperatorToDisconnect">Operator to disconnect</param>
        public async Task DisconnectOperator(Entidades.Operador paramOperatorToDisconnect)
        {
            // Stop checking service
            stopCheckStatusOfConnectionWithService();
            try {
                await prepareProxy();
                // Run disconnection on the service
                await Task.Run(() => { proxy.Disconnect(paramOperatorToDisconnect); }).TimeoutAfter(5000);

            }
            catch (Exception ex) {
                throw ex;
            }
        }
예제 #7
0
 /// <summary>
 /// Conexión hacia el servicio
 /// </summary>
 /// <returns></returns>
 public async Task<Entidades.Operador> ConnectBackoffice(Entidades.Operador pOperator, Entidades.Service.Interface.IServicioCallback paramCallback)
 {
     // Aguardamos que el proxy este disponible
     await prepareProxy();
     // Almacenamos la respuesta del servicio en una variable que deberia venir completa
     Entidades.Operador backofficeOper = proxy.ConnectBackoffice(pOperator);
     if (backofficeOper != null) {
         // Sets callback for the client
         callbackInteraction = paramCallback;
         // Starts task to check for service activity status
         startCheckStatusOfConnectionWithService();
         // Set up local variables
         operatorLogged = pOperator;
         isBackoffice = true;
         // Devolvemos el operador con todos sus datos cargados                
         return backofficeOper;
     }
     else {
         throw new Exception("El usuario o contraseña no son validos, o no se disponen de permisos de backoffice.");
     }
 }
예제 #8
0
 /// <summary>
 /// Sent a request petition to the service for connection
 /// </summary>
 /// <param name="paramOperator"></param>
 /// <param name="paramCallback"></param>
 /// <returns></returns>
 public async Task<bool> ConnectOperator(Entidades.Operador paramOperator, Entidades.Service.Interface.IServicioCallback paramCallback)
 {
     try {
         await prepareProxy();
         // When connection is established we need check if the operator credentials are valid
         if (proxy.Conectar(paramOperator)) {
             // when connection has been acepted, the callback is saved to memory
             callbackInteraction = paramCallback;
             // Setup variable for operator logged
             operatorLogged = paramOperator;
             // Starts service checking activity
             startCheckStatusOfConnectionWithService();
             return true;
         }
         throw new Exception("Las credenciales locales no se condicen con las credenciales de servicio. Consulte al administrador.");
     }
     catch (TimeoutException) {
         throw new Exception("El servicio no responde. Se ha agotado el tiempo de espera para la conexión. Contacte al administrador.");
     }
     catch (Exception ex) {
         throw ex;
     }
 }
예제 #9
0
 /// <summary>
 /// Procesa una desconexión forzada del servicio de un cliente especifico
 /// </summary>
 /// <param name="operToDisconnect"></param>
 public void ForceToDisconnectFromService(Entidades.Operador operToDisconnect)
 {
     // Forzamos la desconexión del cliente mandando una operación de Callback
     getCallback(operToDisconnect).ForceDisconnect();
 }
예제 #10
0
 private void EstablecerNombreUser()
 {
     Entidades.Operador entOperLogged = App.Current.Properties["user"] as Entidades.Operador;
     txtUsuarioLogueado.Text = entOperLogged.Nombre + " " + entOperLogged.Apellido;
 }
예제 #11
0
 public bool Equals(Operador operatorToCompare)
 {
     return(UserName.ToLower() == operatorToCompare.UserName.ToLower());
 }
 public OperBackoffice(Entidades.Operador paramOperator)
 {
     Operator = paramOperator;
 }