Example #1
0
        public ArxOperationBase(ILog logger, WCFConnectorManager wcf)
        {
            _logger = logger;
            _wcf    = wcf;

            ExcuteDurationMsList = new List <double>();
        }
Example #2
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);
            }
        }
Example #3
0
        public ArxOperationBase(ILog logger, IO.Swagger.Client.Configuration configuration)
        {
            _logger        = logger;
            _configuration = configuration;
            _wcf           = null;


            ExcuteDurationMsList = new List <double>();
        }
        public FormDocumentiFascicolo(Dm_Fascicoli fascicolo, Arx_DataSource searchResult, WCFConnectorManager connectorManager)
        {
            _fascicolo        = fascicolo;
            _searchResult     = searchResult;
            _connectorManager = connectorManager;
            InitializeComponent();

            Binding();
        }
Example #5
0
        public FormApplication(WCFConnectorManager manager)
        {
            if (manager == null)
            {
                throw new ArgumentNullException("manager");
            }

            InitializeComponent();

            _manager = manager;
        }
Example #6
0
        private void TestProcedureWcf(WCFConnectorManager wcf, string threadName)
        {
            IArxOperationBase maskOperation      = new  LoadMaskOperationWcf(_logger, wcf);
            IArxOperationBase searchDocOperation = new SearchDocumentOperationWcf(_logger, wcf);
            IArxOperationBase storeOperation     = new ArxStoreOperationWcf(_logger, wcf);
            IArxOperationBase f2Operation        = new F2OperationWcf(_logger, wcf);

            for (int i = 0; i < RepeatCount; i++)
            {
                var dtStart = DateTime.Now;

                string msgLog = string.Format("<{2}> Execution {0} of {1}", (i + 1), RepeatCount, threadName);

                DispatcherHelper.UIDispatcher.BeginInvoke((Action)(() => { _logger.Info(msgLog); }));

                var mp = new MaskParameter {
                    MaskId = "84e5ea23a77f482883c663d6900546cf"
                };
                var maskResult = maskOperation.Execute(mp);

                var storeResult = (DocnumberResult)storeOperation.Execute(mp);

                var sdp = new DocnumberParameter {
                    Docnumber = storeResult.Docnumber
                };
                var searchDocResult = searchDocOperation.Execute(sdp);

                var f2p = new DocnumberParameter {
                    Docnumber = storeResult.Docnumber
                };
                var f2Result = f2Operation.Execute(f2p);

                _timeTestProcedure.Add((DateTime.Now - dtStart).TotalMilliseconds);
            }

            _timeMask.AddRange(maskOperation.ExcuteDurationMsList);
            _timeSearch.AddRange(searchDocOperation.ExcuteDurationMsList);
            _timeStore.AddRange(storeOperation.ExcuteDurationMsList);
            _timeF2.AddRange(f2Operation.ExcuteDurationMsList);

            DispatcherHelper.UIDispatcher.BeginInvoke((Action)(() =>
            {
                _logger.Info(string.Format("REPORT <{0}>\r\nMASK\r\n{1}\r\nSTORE\r\n{2}\r\nSEARCH\r\n{3}\r\nF2\r\n{4}",
                                           threadName,
                                           TimeCalculator.EvaluateTime(maskOperation.ExcuteDurationMsList.ToArray()).ToString(),
                                           TimeCalculator.EvaluateTime(storeOperation.ExcuteDurationMsList.ToArray()).ToString(),
                                           TimeCalculator.EvaluateTime(searchDocOperation.ExcuteDurationMsList.ToArray()).ToString(),
                                           TimeCalculator.EvaluateTime(f2Operation.ExcuteDurationMsList.ToArray()).ToString()
                                           ));
            }));
        }
Example #7
0
        public FormApplication(WCFConnectorManager manager)
        {
            if (manager == null)
            {
                throw new ArgumentNullException("manager");
            }

            InitializeComponent();

            _manager = manager;

            //Disabilitiamo il primo tabPage (quello dedicato delle AOO)
            ((Control)this.tabPageAoo).Enabled = false;
        }
        public FormApplication(WCFConnectorManager manager)
        {
            if (manager == null)
            {
                throw new ArgumentNullException("manager");
            }

            InitializeComponent();

            _manager = manager;

            ((Control)this.tabPageAoo).Enabled     = false;
            ((Control)this.tabPageClasses).Enabled = false;
        }
Example #9
0
        private WCFConnectorManager GetWcf()
        {
            var logonRequest = new ArxLogonRequest
            {
                ClientId          = _app_id,
                ClientSecret      = _app_secret,
                EnablePushEvents  = true,
                Username          = _username,
                Password          = _password,
                ImpersonateUserId = _impersonate_user_id.HasValue ? System.Convert.ToInt32(_impersonate_user_id) : default(int?)
            };
            var manager = new WCFConnectorManager(_wcf_url, logonRequest)
            {
                AutoChunk     = true,  //default a true
                AutoReconnect = true,  //default a true
                Lang          = "IT"
            };

            manager.ChannelOpening += _manager_ChannelOpening;
            manager.ChannelOpened  += _manager_ChannelOpened;
            return(manager);
        }
 public SearchDocumentOperationWcf(ILog logger, WCFConnectorManager wcf) : base(logger, wcf)
 {
 }
Example #11
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);
            }
        }
Example #12
0
 public LoadMaskOperationWcf(
     ILog logger,
     WCFConnectorManager wcf) :
     base(logger, wcf)
 {
 }
 public ArxStoreOperationWcf(ILog logger, WCFConnectorManager wcf) : base(logger, wcf)
 {
 }
Example #14
0
 public PluginWorkflowEsempioCorso_Link(string codice, WCFConnectorManager manager)
     : base(codice, manager)
 {
 }
Example #15
0
        private Task TaskWcf()
        {
            var task = new Task(() =>
            {
                DispatcherHelper.UIDispatcher.Invoke(() => IsBusy = true);

                var wcfConnectorList = new List <WCFConnectorManager>();
                var listTaskTest     = new List <Task>();
                try
                {
                    DispatcherHelper.UIDispatcher.BeginInvoke((Action)(() => { _logger.Info("Execute login test"); }));

                    var arxLogonRequest = new ArxLogonRequest
                    {
                        Username        = Username,
                        Password        = Password,
                        LogonProviderId = DEFAULTLOGINPROVIDER, // Default ARXivar
                        ClientId        = CLIENTID,             // Configured in AUTH service
                        ClientSecret    = CLIENTSECRET          // Configured in AUTH service
                    };

                    using (var wcfConn = new WCFConnectorManager(Url, new ArxAccessTokenLogonRequest()))
                    {
                        var logon = wcfConn.Logon(Url, arxLogonRequest);
                        if (logon.LogOnError != ArxLogOnErrorType.None)
                        {
                            throw new Exception("Test login error: " + logon.LogOnError);
                        }

                        DispatcherHelper.UIDispatcher.BeginInvoke((Action)(() =>
                        {
                            _logger.Info("Create wcf connections..");
                        }));

                        for (int i = 0; i < ThreadCount; i++)
                        {
                            DispatcherHelper.UIDispatcher.BeginInvoke((Action)(() =>
                            {
                                _logger.Info(string.Format(" - Create wcf connection {0} of {1}", (i + 1), ThreadCount));
                            }));

                            var wcfConnThread = new WCFConnectorManager(Url, new ArxAccessTokenLogonRequest());
                            var logonThread   = wcfConnThread.Logon(Url, arxLogonRequest);
                            if (logonThread.LogOnError != ArxLogOnErrorType.None)
                            {
                                throw new Exception("Test login error: " + logon.LogOnError);
                            }

                            wcfConnectorList.Add(wcfConnThread);
                        }

                        DispatcherHelper.UIDispatcher.BeginInvoke((Action)(() =>
                        {
                            _logger.Info("Create procedure test");
                        }));

                        for (int i = 0; i < ThreadCount; i++)
                        {
                            DispatcherHelper.UIDispatcher.BeginInvoke((Action)(() =>
                            {
                                _logger.Info(string.Format(" - Create procedure connection {0} of {1}", (i + 1), ThreadCount));
                            }));

                            var taskClient = new Task(() => TestProcedureWcf(wcfConnectorList[i], string.Format("Thread{0}", i + 1)),
                                                      TaskCreationOptions.LongRunning);

                            taskClient.Start();
                            listTaskTest.Add(taskClient);

                            Thread.Sleep(1000);
                        }

                        listTaskTest.ForEach(x => x.Wait());

                        DispatcherHelper.UIDispatcher.BeginInvoke((Action)(() => {
                            _logger.Info(string.Format("REPORT\r\nMASK\r\n{0}\r\nSTORE\r\n{1}\r\nSEARCH\r\n{2}\r\nF2\r\n{3}\r\nCycle\r\n{4}",
                                                       TimeCalculator.EvaluateTime(_timeMask.ToArray()).ToString(),
                                                       TimeCalculator.EvaluateTime(_timeStore.ToArray()).ToString(),
                                                       TimeCalculator.EvaluateTime(_timeSearch.ToArray()).ToString(),
                                                       TimeCalculator.EvaluateTime(_timeF2.ToArray()).ToString(),
                                                       TimeCalculator.EvaluateTime(_timeTestProcedure.ToArray()).ToString()
                                                       ));
                        }));

                        MessageBox.Show("Test procedure completed", "Execute completed", MessageBoxButton.OK, MessageBoxImage.Information);
                    }
                }
                catch (Exception exception)
                {
                    DispatcherHelper.UIDispatcher.BeginInvoke((Action)(() =>
                    {
                        _logger.Error(exception.Message);
                    }));

                    MessageBox.Show(exception.Message, "Execute error", MessageBoxButton.OK, MessageBoxImage.Error);
                }
                finally
                {
                    foreach (var item in wcfConnectorList)
                    {
                        item.Dispose();
                    }
                    DispatcherHelper.UIDispatcher.Invoke(() => IsBusy = false);
                }
            });

            return(task);
        }
Example #16
0
 public F2OperationWebApi(ILog logger, WCFConnectorManager wcf) : base(logger, wcf)
 {
 }