Example #1
0
        public static async Task ConnectDrive(IAccesoUPVService service, ConnectionEventArgs e)
        {
            NetworkDrive networkDrive = e.Connectable as NetworkDrive;

            try
            {
                await e.ConnectionFunc();
            }
            catch (NotAvailableDriveException ex) when(ex.Letter == default)
            {
                MessageBox.Show(ex.Message, "Ninguna unidad disponible", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            catch (NotAvailableDriveException ex)
            {
                string WARNING_W =
                    ex.Message + "\n" +
                    "(Continúe si prefiere que se elija la primera unidad disponible solo durante esta conexión).\n ";

                MessageBoxResult result = MessageBox.Show(WARNING_W, $"Unidad {ex.Letter} contiene disco",
                                                          MessageBoxButton.OKCancel, MessageBoxImage.Warning);

                if (result == MessageBoxResult.OK)
                {
                    networkDrive.Letter = default;
                    await e.ConnectionFunc().ContinueWith((t) => networkDrive.Letter = ex.Letter);
                }
            }
            catch (ArgumentNullException ex) when(ex.ParamName.Equals(nameof(networkDrive.Username)))
            {
                MessageBox.Show("No ha indicado ningún nombre de usuario. Indique uno en los ajustes.", "Falta usuario",
                                MessageBoxButton.OK, MessageBoxImage.Warning);
                OpenPreferences(service);
            }
            catch (ArgumentNullException ex) when(ex.ParamName.Equals(nameof(networkDrive.Password)))
            {
                MessageBox.Show("No ha indicado ninguna contraseña. Indíquela en los ajustes.", "Falta contraseña",
                                MessageBoxButton.OK, MessageBoxImage.Warning);
                OpenPreferences(service);
            }
            catch (ArgumentOutOfRangeException ex) when(ex.ParamName.Equals(nameof(networkDrive.Address)))
            {
                /**
                 * We dont ask the user for the address, but the address depends on the username
                 * (which is, in fact, asked to the user). So we assume the error is because of the username.
                 */
                MessageBox.Show("Nombre de usuario incorrecto.", "Usuario incorrecto",
                                MessageBoxButton.OK, MessageBoxImage.Error);
                OpenPreferences(service);
            }
            catch (ArgumentException ex) when(ex.ParamName.Equals(nameof(networkDrive.Password)))
            {
                MessageBox.Show("Contraseña incorrecta.", "Contraseña incorrecta",
                                MessageBoxButton.OK, MessageBoxImage.Error);
                OpenPreferences(service);
            }
        }
Example #2
0
        public static async Task ConnectPortalDSIC(IAccesoUPVService service, ConnectionEventArgs e)
        {
            try
            {
                #region Conflicto con Disco W
                if (service.Disco_W.IsConnected)
                {
                    MessageBoxResult result = MessageBox.Show("No se puede acceder a la VPN del DSIC teniendo el Disco W conectado.\n"
                                                              + "Si continúa, este será desconectado automáticamente.\n\n"
                                                              + "¿Desea continuar?", "Conflicto entre conexiones", MessageBoxButton.OKCancel, MessageBoxImage.Warning);

                    if (result == MessageBoxResult.OK)
                    {
                        await service.Disco_W.DisconnectAsync();
                    }
                    else
                    {
                        throw new OperationCanceledException();
                    }
                }
                #endregion

                await e.ConnectionFunc();
            }
            catch (ArgumentNullException)
            {
                MessageBox.Show("No ha indicado ningún nombre para la VPN del DSIC. Indique uno en los ajustes.",
                                "Falta nombre",
                                MessageBoxButton.OK, MessageBoxImage.Warning);
                OpenPreferences(service);
            }
        }
Example #3
0
        private async Task ConnectPortalDSIC(object sender, ConnectionEventArgs e)
        {
            try
            {
                await e.ConnectionFunc();

                #region Portal DSIC Dialog
                Window portalWindow = CreatePortalDSICDialog();
                portalWindow.Closed += async(s, ce) => await e.Connectable.DisconnectAsync();

                portalWindow.Show();
                #endregion
            }
            catch (ArgumentNullException)
            {
                MessageBox.Show("No ha indicado ningún nombre para la VPN del DSIC. Indique uno en los ajustes.",
                                "Falta nombre",
                                MessageBoxButton.OK, MessageBoxImage.Warning);
                new Preferences(Service).ShowDialog();
            }
            catch (OperationCanceledException)
            {
                // El usuario canceló algo, así que no importa
            }
        }
Example #4
0
 public static async Task DisconnectDrive(ConnectionEventArgs e)
 {
     try
     {
         await e.ConnectionFunc();
     }
     catch (OpenedFilesException ex)
     {
         await Drive_OpenedFiles(ex);
     }
 }
Example #5
0
 private async Task DisconnectDrive(object sender, ConnectionEventArgs e)
 {
     try
     {
         await e.ConnectionFunc();
     }
     catch (OpenedFilesException ex)
     {
         await Drive_OpenedFiles(ex);
     }
 }
Example #6
0
 private async Task ConnectWDrive(object sender, ConnectionEventArgs e)
 {
     try
     {
         await e.ConnectionFunc();
     }
     catch (ArgumentNullException ex) when(ex.ParamName.Equals(nameof(Service.Disco_W.Username)))
     {
         Drive_UsernameWasNull();
     }
 }
Example #7
0
 private async Task ConnectDSICDrive(object sender, ConnectionEventArgs e)
 {
     try
     {
         await e.ConnectionFunc();
     }
     catch (ArgumentNullException ex) when(ex.ParamName.Equals(nameof(Service.Disco_DSIC.Username)))
     {
         Drive_UsernameWasNull();
     }
     catch (ArgumentNullException ex) when(ex.ParamName.Equals(nameof(Service.Disco_DSIC.Password)))
     {
         MessageBox.Show("No ha indicado ninguna contraseña. Indíquela en los ajustes.", "Falta contraseña", MessageBoxButton.OK, MessageBoxImage.Warning);
         new Preferences(Service).ShowDialog();
     }
 }