public Commands(BuilderViewModel viewModel)
        {
            m_viewModel = viewModel;

            OnSelectSolution      = new DelegateCommand <object>(_ => OpenSolution());
            OnSelectBuildSolution = new DelegateCommand <MainWindow>(BuildSolution);
            OnSelectCreateTimelineFromEventsFile = new DelegateCommand <object>(_ => CreateTimeline());
        }
        public MainWindow()
        {
            InitializeComponent();

            m_viewModel = new BuilderViewModel();
            m_viewModel.BuildMessages.CollectionChanged += ScrollBuildMessageToBottom;

            DataContext = m_viewModel;
        }
        private string BuildEventsFileName(BuilderViewModel viewModel)
        {
            StringBuilder builder = new StringBuilder();

            builder.Append("Events - ");
            builder.Append($"{Path.GetFileNameWithoutExtension(viewModel.Solution.Path)} - ");

            if (viewModel.CurrentBuildConfiguration.Project != SolutionCompiler.s_CompileFullSolution)
            {
                builder.Append($"{viewModel.CurrentBuildConfiguration.Project} - ");
            }

            builder.Append($"{viewModel.CurrentBuildConfiguration.Target} - ");
            builder.Append($"{viewModel.CurrentBuildConfiguration.ConfigurationPlatform.Configuration} - ");
            builder.Append($"{viewModel.CurrentBuildConfiguration.ConfigurationPlatform.Platform}");

            return(builder.ToString());
        }