예제 #1
0
        private void buttonLogin_Click(object sender, EventArgs e)
        {
            try
            {
                var wcfUrl = string.Format("net.tcp://{0}:{1}/Arxivar/Push", WcfHost, WcfPort);

                var logonRequest = new ArxLogonRequest
                {
                    ClientId         = AppName,
                    ClientSecret     = AppSecret,
                    EnablePushEvents = true,
                    Username         = textBoxUsername.Text,
                    Password         = textBoxPassword.Text,
                };
                _manager = new WCFConnectorManager(wcfUrl, logonRequest)
                {
                    AutoChunk     = true,
                    AutoReconnect = true,
                    Lang          = "EN"
                };

                _manager.ChannelOpening += _manager_ChannelOpening;
                _manager.ChannelOpened  += _manager_ChannelOpened;

                try
                {
                    Cursor = Cursors.WaitCursor;

                    ArxLogOnResult logonResult = _manager.Logon();

                    if (logonResult.LogOnError == ArxLogOnErrorType.None)
                    {
                        Hide();

                        using (var fApp = new FormApplication(_manager))
                        {
                            fApp.ShowDialog();
                        }

                        Close();
                    }
                    else
                    {
                        MessageBox.Show("Login error: " + logonResult.Message, "Login", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                }
                finally
                {
                    Cursor = Cursors.Default;

                    _manager.ChannelOpening -= _manager_ChannelOpening;
                    _manager.ChannelOpened  -= _manager_ChannelOpened;
                }
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.Message, "Login", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #2
0
        private void buttonLogin_Click(object sender, EventArgs e)
        {
            try
            {
                //1) Creazione dell'URI del WCF di Arxivar Next
                var wcfUrl = string.Format("net.tcp://{0}:{1}/Arxivar/Push", WcfHost, WcfPort);

                //2) Mi creo l'oggetto del logon al WCF di Arxivar Next
                var logonRequest = new ArxLogonRequest
                {
                    ClientId         = AppName,              //ci mettiamo il ClientID
                    ClientSecret     = AppSecret,            //ci mettiamo il ClientSecret
                    EnablePushEvents = ...,                  //con EnablePushEvent a true, resto in "ascolto" di eventi dal WCF
                    Username         = textBoxUsername.Text, //username dell'utente in Arxivar Next
                    Password         = textBoxPassword.Text  //password dell'utente in Arxivar Next
                };

                //3) Istanzio l'oggetto "_manager"
                _manager = new WCFConnectorManager(..., ...)
                {
                    AutoChunk     = ...,  //Vogliamo l'auto-chunck automatico? Se sì, impostiamo a true
                    AutoReconnect = ...,  //Vogliamo che il nosto connettore-custom verso Arxivar Next si riconnetta, in caso di problemi? Se sì, impostiamo a true
                    Lang          = ...
                };

                //4) Con "channelOpening" e "channelOpened", resto in ascolto degli eventi sul canale
                _manager.ChannelOpening += _manager_ChannelOpening;
                _manager.ChannelOpened  += _manager_ChannelOpened;

                try
                {
                    //5) Proviamo a fare logon ad Arxivar Next
                    ArxLogOnResult logonResult = _manager....();

                    //6) Il logon ad Arxivar Next, è andato bene senza errori?
                    if (logonResult.LogOnError == ArxLogOnErrorType.None)
                    {
                        //6A) OK, logon effettuato correttamente!
                        MessageBox.Show("Login Ok!", "Login", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        WriteTextSafe("Login ok al WCF di Arxivar Next");
                    }
                    else
                    {
                        //6B) KO, logon fallito per qualche motivo...
                        MessageBox.Show("Login fallito: " + logonResult.Message, "Login", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        WriteTextSafe("Login fallito al WCF di Arxivar Next");
                    }
                }
                finally
                {
                    //Restiamo in ascolto degli eventi...
                    _manager.ChannelOpening -= _manager_ChannelOpening;
                    _manager.ChannelOpened  -= _manager_ChannelOpened;
                }
            }
            catch (Exception exception)
            {
                //Qualcosa, prima di effettuare login è andato male
                MessageBox.Show(exception.Message, "Login", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }