private void OnSolutionOpened()
        {
            var messagesHelper = new MessagesHelper();

            failureMessages = new List <string>();
            IList <string>       successMessages = new List <string>();
            IEnumerable <string> summaryMessages = new List <string>();

            matchingSolutionOpened = false;

            var generalOptionsDto = GetGeneralOptionsDtoFromStorage();
            var rulesDtos         = RulesHelper.GetRulesDtos();

            if (rulesDtos != null && rulesDtos.Any())
            {
                var applyChangesMessages = ApplyChangesToSourceCode(rulesDtos, generalOptionsDto, dte.Solution.FullName);
                foreach (var applyChangesMessage in applyChangesMessages)
                {
                    successMessages.Add(applyChangesMessage);
                }

                bool showPopUpMessage = ShowPopUpMessage(generalOptionsDto);
                if (showPopUpMessage)
                {
                    summaryMessages = messagesHelper.GetSummaryMessages(rulesEnabledForThisSolutionCount, rulesProcesssedSuccessfullyCount, rulesProcesssedUnsuccessfullyCount, changesCount);
                    var userFriendlySuccessMessages = messagesHelper.GetUserFriendlySuccessMessages(successMessages);
                    var popUpMessage = messagesHelper.GetPopUpMessage(failureMessages, userFriendlySuccessMessages, summaryMessages);
                    DisplayPopUpMessage(Helpers.Constants.CategoryName + " Results", popUpMessage);
                }
            }

            PostOpenProcessing();
        }