public void chiusoSnapshotPubblicoWindow(object sender, EventArgs e)
        {
            _snapshotPubblicoWindow.Closed -= chiusoSnapshotPubblicoWindow;
            _snapshotPubblicoWindow         = null;

            // Se ho aperto lo ss, lo riporto in primo piano.
            if (_slideShowWindow != null)
            {
                _slideShowWindow.Topmost = true;
            }

            FormuleMagiche.attendiGcFinalizers();
        }
Beispiel #2
0
        public void Execute(object parameter)
        {
            try {
                _giornale.Debug("Eseguo RelayCommad: " + _execute.Method.ToString() + " parametro=" + parameter);

                esegui(parameter);

                if (_afterExecute != null)
                {
                    _giornale.Debug("RelayCommad invoco after execute");

                    _afterExecute.Invoke(parameter);
                }

                _giornale.Debug("Esecuzione RelayCommad completata: " + _execute.Method.ToString() + " parametro=" + parameter);
            } catch (OutOfMemoryException ofm) {
                long memoryPrima = Process.GetCurrentProcess().WorkingSet64;

                FormuleMagiche.attendiGcFinalizers();

                long memoryDopo = Process.GetCurrentProcess().WorkingSet64;

                _giornale.Error("finita la memoria: prima=" + memoryPrima + " dopo=" + memoryDopo);

                if (_execute.Target is ViewModelBase)
                {
                    ViewModelBase viewModel = _execute.Target as ViewModelBase;
                    if (viewModel.dialogProvider != null)
                    {
                        viewModel.dialogProvider.ShowError(ofm.GetType().Name + "\n" + ErroriUtil.estraiMessage(ofm), "Errore imprevisto.", null);
                    }
                }
            } catch (Exception ee) {
                _giornale.Error(_execute.Method.ToString(), ee);

                if (_execute.Target is ViewModelBase)
                {
                    ViewModelBase viewModel = _execute.Target as ViewModelBase;
                    if (viewModel.dialogProvider != null)
                    {
                        viewModel.dialogProvider.ShowError(ee.GetType().Name + "\n" + ErroriUtil.estraiMessage(ee), "Errore imprevisto. Consultare il Log", null);
                    }
                }

                // per ora non voglio far spaccare il programma altrimenti perdo il lavoro in corso.
                // anche se concettualmente sarebbe più corretto rilanciare l'errore.
                // L'unico problema è che non c'è modo di fare un try-catch di un Command.
                // throw ee;
            }
        }
        public void chiusoPubblicoWindow(object sender, EventArgs e)
        {
            if (_pubblicoWindow != null)
            {
                _pubblicoWindow.Closed -= chiusoPubblicoWindow;
                _pubblicoWindow         = null;
            }
            if (!azioneInCorso)
            {
                stavaGirandoPubblico = false;
            }

            FormuleMagiche.attendiGcFinalizers();
        }