public async Task <IActionResult> Index(int?currentPage, string?searchTerms)
        {
            var model = new DiveLocationListModel();

            try
            {
                model.CurrentPage = currentPage.GetValueOrDefault(1);
                CommandResult <StaticPaginatedList <DiveLocationDto> > cmd = new CommandResult <StaticPaginatedList <DiveLocationDto> >();
                if (searchTerms == null)
                {
                    cmd = await _diveService.GetAllDiveLocationsAsync(model.CurrentPage, PresentationDefaults.PagedDataSize);
                }
                else
                {
                    cmd = await _diveService.SearchDiveLocationsAsync(searchTerms, model.CurrentPage, PresentationDefaults.PagedDataSize);
                }

                model.PagedData = cmd.DataResult;

                return(View(model));
            }
            catch (FriendlyApplicationException ex) // Expected
            {
                _exceptionManager.HandleException(ex, DefaultExceptionPolicies.PresentationReplacePolicy);
            }
            catch (ApplicationException ex) // Unexpected
            {
                _exceptionManager.HandleException(ex, DefaultExceptionPolicies.ApplicationWrapPolicy);
                throw ex;
            }
            return(View(model));
        }
Ejemplo n.º 2
0
        public void ConfigureForLoading(IEnumerable <SessionDto> currentSessions)
        {
            dataGridView1.DataSource = currentSessions;

            dataGridView1.MultiSelect = false;
            labelHeader.Text          = "Select the session to load";
            buttonOk.Text             = "&Load";
            panelGrid.Dock            = DockStyle.Fill;

            buttonOk.Click += (sender, e) =>
            {
                try
                {
                    if (dataGridView1.CurrentRow != null)
                    {
                        SessionDto s = dataGridView1.CurrentRow.DataBoundItem as SessionDto;
                        if (!_settings.DsmSettings.AskConfirmationOnLoad || AskForConfirmation("Session '{0}' will be loaded, do you want to continue?", s.Name))
                        {
                            _result.Add(s);
                            Close();
                        }
                    }
                }
                catch (Exception ex)
                {
                    _exceptionManager.HandleException(ex);
                }
            };
        }
Ejemplo n.º 3
0
        /// <summary>Implements the OnDisconnection method of the IDTExtensibility2 interface. Receives notification that the Add-in is being unloaded.</summary>
        /// <param term='disconnectMode'>Describes how the Add-in is being unloaded.</param>
        /// <param term='custom'>Array of parameters that are host application specific.</param>
        /// <seealso class='IDTExtensibility2' />
        public void OnDisconnection(ext_DisconnectMode disconnectMode, ref Array custom)
        {
            try
            {
                if ((disconnectMode == ext_DisconnectMode.ext_dm_HostShutdown) || (disconnectMode == ext_DisconnectMode.ext_dm_UserClosed))
                {
                    if (_debugHook != null)
                    {
                        _debugHook.UnHook();
                    }

                    AddinController.NotifyPluginUnloaded();

                    foreach (var control in _controlsCreated)
                    {
                        try
                        {
                            control.Delete(true);
                        }
                        catch
                        {
                        }
                    }

                    if (managerToolbar != null)
                    {
                        try
                        {
                            if (managerToolbar.Position != null)
                            {
                                _settingsManager.DsmSettings.ToolBarPosition = managerToolbar.Position.ToString();
                            }
                            _settingsManager.DsmSettings.ToolBarRowIndex = managerToolbar.RowIndex;
                            _settingsManager.DsmSettings.ToolBarVisible  = managerToolbar.Visible;
                            _settingsManager.DsmSettings.ToolBarTop      = managerToolbar.Top;
                            _settingsManager.DsmSettings.ToolBarLeft     = managerToolbar.Left;
                            //_settingsManager.DsmSettings.ToolBarWidth = managerToolbar.Width;
                            //_settingsManager.DsmSettings.ToolBarHeight = managerToolbar.Height;

                            _settingsManager.SaveSettings();
                        }
                        finally
                        {
                            managerToolbar.Delete();
                            managerToolbar = null;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                _exceptionManager.HandleException(ex);
            }
        }
Ejemplo n.º 4
0
        public void HandleException_When_CriticalException_Increments_CriticalExceptionCount()
        {
            var exception = new NullReferenceException();

            SetupCriticalException(exception);
            var expectedCount = 1;

            _exceptionManager.HandleException(exception);
            var actualCount = _exceptionManager.CriticalExceptionCount;

            Assert.AreEqual(expectedCount, actualCount);
        }
        public OperationResult Commit()
        {
            bool    result = false;
            Message mainMessage;
            IEnumerable <Message> associatedMessages = Enumerable.Empty <Message>();

            try
            {
                int changeCount = Context.SaveChanges();
                if (changeCount > 0)
                {
                    result      = true;
                    mainMessage = new Message(string.Empty, "Data saved successfully.");
                }
                else
                {
                    mainMessage = new Message(string.Empty, "Database changes not saved !");
                }
            }
            catch (ValidationExceptions exception)
            {
                mainMessage = new Message(string.Empty, "Data not saved due to an error!");
                Exception exceptionToThrow;
                _exceptionManager.HandleException(exception, new DataExceptionHandler(), out exceptionToThrow);
                if (exceptionToThrow.GetType() == typeof(DataValidationException))
                {
                    associatedMessages = ((DataValidationException)exceptionToThrow).ValidationErrors;
                }

                _exceptionManager.HandleException(exception, mainMessage.Text);
            }
            //catch (ValidationException exception)
            //{
            //    mainMessage = new Message(string.Empty, "Data not saved due to an error!");
            //    Exception exceptionToThrow;
            //    _exceptionManager.HandleException(exception, new DataExceptionHandler(), out exceptionToThrow);
            //    if (exceptionToThrow.GetType() == typeof(DataValidationException))
            //    {
            //        associatedMessages = ((DataValidationException)exceptionToThrow).ValidationErrors;
            //    }

            //    _exceptionManager.HandleException(exception, mainMessage.Text);
            //}
            catch (Exception exception)
            {
                mainMessage = new Message(string.Empty, "Data not saved due to an error!");
                _exceptionManager.HandleException(exception, mainMessage.Text);
            }


            return(new OperationResult(result, mainMessage, associatedMessages));
        }
Ejemplo n.º 6
0
 public void ShowRecentlyClosedDocuments(IEnumerable <SessionDocumentDto> recentlyClosedDocuments)
 {
     using (FrmSessions frm = CreateForm())
     {
         try
         {
             frm.ConfigureForRecentlyClosedDocuments(recentlyClosedDocuments);
             frm.ShowDialog();
         }
         catch (Exception ex)
         {
             _exceptionManager.HandleException(ex);
         }
     }
 }
Ejemplo n.º 7
0
        public virtual ExitCode BeginExecution()
        {
            try
            {
                if (String.IsNullOrEmpty(_viewModel.ParsableFormat))
                {
                    _viewModel.ParsableFormat = ConfigurationManager.AppSettings.Get("ParsableFormat");
                }
                if (String.IsNullOrEmpty(_viewModel.ExportableFormat))
                {
                    _viewModel.ExportableFormat = ConfigurationManager.AppSettings.Get("ExportableFormat");
                }

                bool isIncludeOuput = Convert.ToBoolean(
                    ConfigurationManager.AppSettings.Get("IncludeOutputInReport").ToString());

                var parsableFactory = MEFServiceLocator.Instance.GetInstance <IParsableFromatFactory>();
                var trx             = parsableFactory.GetProvider(_viewModel.ParsableFormat, _viewModel.ParsedFilePath);

                var exportableFormatFactory = MEFServiceLocator.Instance.GetInstance <IExportableFormatFactory>();
                var export = exportableFormatFactory.GetProvider(_viewModel.ExportableFormat);

                var isExported = export.ExportData(trx.TestSummary, trx.UnitTestCollection, _viewModel.OutputFilePath, isIncludeOuput);
                if (!isExported)
                {
                    throw new Exception("Above trx could not be exported to excel");
                }
                return(ExitCode.Success);
            }
            catch (Exception ex)
            {
                _exceptionManager.HandleException(ex);
                return(ExitCode.Failure);
            }
        }
Ejemplo n.º 8
0
        public void Run()
        {
            var exceptions = new Exception[]
            {
                new IndexOutOfRangeException("Index was out of range"),
                new InvalidOperationException("This operation is not permitted"),
                new NullReferenceException("Data was null"),
                new InvalidCastException("Cannot cast TypeA to TypeB"),
                new AccessViolationException("Program is not permitted to do this action"),
                new ApplicationException("Business logic validation failure")
            };

            foreach (var exception in exceptions)
            {
                try
                {
                    throw exception;
                }
                catch (Exception e)
                {
                    _exceptionManager.HandleException(e);
                }
            }

            Console.WriteLine($"Exception count: {_exceptionManager.ExceptionCount}");
            Console.WriteLine($"Critical exception count: {_exceptionManager.CriticalExceptionCount}");

            Console.ReadKey();
        }
Ejemplo n.º 9
0
        public override void BeginExecution()
        {
            try
            {
                base.BeginExecution();
                var parsableFactory = MEFServiceLocator.Instance.GetInstance <IParsableFromatFactory>();
                var trx             = parsableFactory.GetProvider("MSTest2010Trx", _trxPath);

                var exportableFormatFactory = MEFServiceLocator.Instance.GetInstance <IExportableFormatFactory>();
                var export = exportableFormatFactory.GetProvider("excel2007");

                var isExported = export.ExportData(trx.TestSummary, trx.UnitTestCollection, _outputFile);
                if (!isExported)
                {
                    throw new Exception("Above trx could not be exported to excel");
                }
            }
            catch (Exception ex)
            {
                _exceptionManager.HandleException(ex);
            }
        }
Ejemplo n.º 10
0
        /// <summary>Implements the OnConnection method of the IDTExtensibility2 interface. Receives notification that the Add-in is being loaded.</summary>
        /// <param term='application'>Root object of the host application.</param>
        /// <param term='connectMode'>Describes how the Add-in is being loaded.</param>
        /// <param term='addInInst'>Object representing this Add-in.</param>
        /// <seealso class='IDTExtensibility2' />
        public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
        {
            try
            {
                _applicationObject = (DTE2)application;

                _addInInstance = (AddIn)addInInst;

                var container = new Container();

                _exceptionManager = container.GetIExceptionManager();

                _controller = container.GetAddinController(_applicationObject);

                _debugHook = container.GetDebugHook(_applicationObject);
                _debugHook.Hook();

                _settingsManager = container.GetIDsmSettingsManager();

                if ((connectMode == ext_ConnectMode.ext_cm_Startup) || (connectMode == ext_ConnectMode.ext_cm_AfterStartup))
                {
                    //_settings = Settings.Default;
                    //_settings.Reload();

                    CommandBars commandBars = (CommandBars)_applicationObject.CommandBars;

                    // Create a toolbar for this app
                    string managerToolbarName = "Document Session Manager";
                    managerToolbar = null;
                    //try
                    //{
                    //  managerToolbar = ((Microsoft.VisualStudio.CommandBars.CommandBars)this._applicationObject.CommandBars)[managerToolbarName];
                    //}
                    //catch (ArgumentException)
                    //{
                    //}

                    if (managerToolbar == null)
                    {
                        managerToolbar = (CommandBar)commandBars.Add(managerToolbarName, MsoBarPosition.msoBarTop, System.Type.Missing, true);

                        _settingsManager.LoadSettings();
                        managerToolbar.Position = (MsoBarPosition)Enum.Parse(typeof(MsoBarPosition),
                                                                             _settingsManager.DsmSettings.ToolBarPosition ?? MsoBarPosition.msoBarTop.ToString());
                        managerToolbar.RowIndex = _settingsManager.DsmSettings.ToolBarRowIndex;
                        managerToolbar.Visible  = _settingsManager.DsmSettings.ToolBarVisible;

                        if (_settingsManager.DsmSettings.ToolBarTop != -1)
                        {
                            managerToolbar.Top = _settingsManager.DsmSettings.ToolBarTop;
                        }
                        if (_settingsManager.DsmSettings.ToolBarLeft != -1)
                        {
                            managerToolbar.Left = _settingsManager.DsmSettings.ToolBarLeft;
                        }
                        //if (_settingsManager.DsmSettings.ToolBarWidth != -1)
                        //  managerToolbar.Width = _settingsManager.DsmSettings.ToolBarWidth;
                        //if (_settingsManager.DsmSettings.ToolBarHeight != -1)
                        //  managerToolbar.Height = _settingsManager.DsmSettings.ToolBarHeight;
                    }

                    object controlCreated;

                    _controlsCreated.Clear();

                    //PictureManager.CommandButtons.Clear();

                    AddCommand(managerToolbar, "DsmSessionList", "DsmSessionList",
                               "Sessions", vsCommandControlType.vsCommandControlTypeDropDownCombo, 1,
                               vsCommandStyle.vsCommandStyleComboCaseSensitive, 0, out controlCreated);

                    CommandBarComboBox combo = controlCreated as CommandBarComboBox;
                    if (combo != null)
                    {
                        combo.Width = 200;
                    }

                    AddCommand(managerToolbar, "DsmLoadSession", "DsmLoadSession",
                               "Load session", vsCommandControlType.vsCommandControlTypeButton, 1,
                               vsCommandStyle.vsCommandStylePict, 2, out controlCreated);

                    AddCommand(managerToolbar, "DsmSaveSessionAs", "DsmSaveSessionAs",
                               "Save session as", vsCommandControlType.vsCommandControlTypeButton, 2,
                               vsCommandStyle.vsCommandStylePict, 6, out controlCreated);

                    AddCommand(managerToolbar, "DsmSaveSession", "DsmSaveSession",
                               "Save session", vsCommandControlType.vsCommandControlTypeButton, 3,
                               vsCommandStyle.vsCommandStylePict, 5, out controlCreated);

                    AddCommand(managerToolbar, "DsmDeleteSessions", "DsmDeleteSessions",
                               "Delete sessions", vsCommandControlType.vsCommandControlTypeButton, 4,
                               vsCommandStyle.vsCommandStylePict, 1, out controlCreated);

                    AddCommand(managerToolbar, "DsmReloadSession", "DsmReloadSession",
                               "Reload session", vsCommandControlType.vsCommandControlTypeButton, 5,
                               vsCommandStyle.vsCommandStylePict, 4, out controlCreated);

                    AddCommand(managerToolbar, "DsmRecentlyClosed", "DsmRecentlyClosed",
                               "Recently closed documents", vsCommandControlType.vsCommandControlTypeButton, 6,
                               vsCommandStyle.vsCommandStylePict, 3, out controlCreated);
                }
            }
            catch (Exception ex)
            {
                _exceptionManager.HandleException(ex);
            }
        }
Ejemplo n.º 11
0
        public void LoadDocumentsFromSession(Session session)
        {
            try
            {
                bool cancelled = false;

                var localClosedDocs = new List <SessionDocument>();

                var documents = new List <SessionDocument>(session.GetDocuments());

                foreach (var window in _dteAdapter.GetWindowsForValidDocuments())
                {
                    int index = -1;
                    for (int i = 0; i < documents.Count; i++)
                    {
                        if (window.DocumentMatches(documents[i]))
                        {
                            index = i;
                            break;
                        }
                    }

                    if (index < 0)
                    {
                        string       fullPath     = window.FullPath;
                        DocumentType documentType = window.DocumentType;

                        if (!window.Close(SaveChanges.Prompt))
                        {
                            cancelled = true;
                            break;
                        }
                        else
                        {
                            localClosedDocs.Insert(0, new SessionDocument(fullPath, documentType));
                        }
                    }
                    else
                    {
                        documents.RemoveAt(index);
                    }
                }

                if (localClosedDocs.Count > 0)
                {
                    AddDocumentsToRecentlyClosedList(_recentlyClosedDocs, localClosedDocs);
                }

                if (!cancelled)
                {
                    StringBuilder errors = new StringBuilder();
                    foreach (SessionDocument document in documents)
                    {
                        if (!_dteAdapter.FileExists(document.Path))
                        {
                            errors.AppendLine(document.Path);
                        }
                        else
                        {
                            _dteAdapter.OpenFile(document.Path, document.Type);
                        }
                    }

                    if (errors.Length > 0)
                    {
                        _viewAdapter.ShowLongMessage("Warning", "The following documents could not be found", errors.ToString());
                    }
                }
            }
            catch (Exception ex)
            {
                _exceptionManager.HandleException(ex);
            }
        }
Ejemplo n.º 12
0
        /// <summary>Implements the OnConnection method of the IDTExtensibility2 interface. Receives notification that the Add-in is being loaded.</summary>
        /// <param term='application'>Root object of the host application.</param>
        /// <param term='connectMode'>Describes how the Add-in is being loaded.</param>
        /// <param term='addInInst'>Object representing this Add-in.</param>
        /// <seealso class='IDTExtensibility2' />
        public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
        {
            try
              {
            _applicationObject = (DTE2)application;

            _addInInstance = (AddIn)addInInst;

            var container = new Container();

            _exceptionManager = container.GetIExceptionManager();

            _controller = container.GetAddinController(_applicationObject);

            _debugHook = container.GetDebugHook(_applicationObject);
            _debugHook.Hook();

            _settingsManager = container.GetIDsmSettingsManager();

            if ((connectMode == ext_ConnectMode.ext_cm_Startup) || (connectMode == ext_ConnectMode.ext_cm_AfterStartup))
            {
              //_settings = Settings.Default;
              //_settings.Reload();

              CommandBars commandBars = (CommandBars)_applicationObject.CommandBars;

              // Create a toolbar for this app
              string managerToolbarName = "Document Session Manager";
              managerToolbar = null;
              //try
              //{
              //  managerToolbar = ((Microsoft.VisualStudio.CommandBars.CommandBars)this._applicationObject.CommandBars)[managerToolbarName];
              //}
              //catch (ArgumentException)
              //{
              //}

              if (managerToolbar == null)
              {
            managerToolbar = (CommandBar)commandBars.Add(managerToolbarName, MsoBarPosition.msoBarTop, System.Type.Missing, true);

            _settingsManager.LoadSettings();
            managerToolbar.Position = (MsoBarPosition)Enum.Parse(typeof(MsoBarPosition),
              _settingsManager.DsmSettings.ToolBarPosition ?? MsoBarPosition.msoBarTop.ToString());
            managerToolbar.RowIndex = _settingsManager.DsmSettings.ToolBarRowIndex;
            managerToolbar.Visible = _settingsManager.DsmSettings.ToolBarVisible;

            if (_settingsManager.DsmSettings.ToolBarTop != -1)
              managerToolbar.Top = _settingsManager.DsmSettings.ToolBarTop;
            if (_settingsManager.DsmSettings.ToolBarLeft != -1)
              managerToolbar.Left = _settingsManager.DsmSettings.ToolBarLeft;
            //if (_settingsManager.DsmSettings.ToolBarWidth != -1)
            //  managerToolbar.Width = _settingsManager.DsmSettings.ToolBarWidth;
            //if (_settingsManager.DsmSettings.ToolBarHeight != -1)
            //  managerToolbar.Height = _settingsManager.DsmSettings.ToolBarHeight;

              }

              object controlCreated;

              _controlsCreated.Clear();

              //PictureManager.CommandButtons.Clear();

              AddCommand(managerToolbar, "DsmSessionList", "DsmSessionList",
            "Sessions", vsCommandControlType.vsCommandControlTypeDropDownCombo, 1,
            vsCommandStyle.vsCommandStyleComboCaseSensitive, 0, out controlCreated);

              CommandBarComboBox combo = controlCreated as CommandBarComboBox;
              if (combo != null)
            combo.Width = 200;

              AddCommand(managerToolbar, "DsmLoadSession", "DsmLoadSession",
            "Load session", vsCommandControlType.vsCommandControlTypeButton, 1,
            vsCommandStyle.vsCommandStylePict, 2, out controlCreated);

              AddCommand(managerToolbar, "DsmSaveSessionAs", "DsmSaveSessionAs",
            "Save session as", vsCommandControlType.vsCommandControlTypeButton, 2,
            vsCommandStyle.vsCommandStylePict, 6, out controlCreated);

              AddCommand(managerToolbar, "DsmSaveSession", "DsmSaveSession",
            "Save session", vsCommandControlType.vsCommandControlTypeButton, 3,
            vsCommandStyle.vsCommandStylePict, 5, out controlCreated);

              AddCommand(managerToolbar, "DsmDeleteSessions", "DsmDeleteSessions",
            "Delete sessions", vsCommandControlType.vsCommandControlTypeButton, 4,
            vsCommandStyle.vsCommandStylePict, 1, out controlCreated);

              AddCommand(managerToolbar, "DsmReloadSession", "DsmReloadSession",
            "Reload session", vsCommandControlType.vsCommandControlTypeButton, 5,
            vsCommandStyle.vsCommandStylePict, 4, out controlCreated);

              AddCommand(managerToolbar, "DsmRecentlyClosed", "DsmRecentlyClosed",
            "Recently closed documents", vsCommandControlType.vsCommandControlTypeButton, 6,
            vsCommandStyle.vsCommandStylePict, 3, out controlCreated);

            }
              }
              catch (Exception ex)
              {
            _exceptionManager.HandleException(ex);
              }
        }