Inheritance: IVersionChecker
        [PrincipalPermission(SecurityAction.Demand)]  // Principal must be authenticated
        protected override void OnStartup(StartupEventArgs e)
        {
            Tracker.StartStudio();
            bool createdNew;

            Task.Factory.StartNew(() =>
                {
                    var path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Warewolf", "Feedback");
                    DirectoryHelper.CleanUp(path);
                    DirectoryHelper.CleanUp(Path.Combine(Path.GetTempPath(), "Warewolf", "Debug"));
                });

            // ReSharper disable once UnusedVariable
            var localprocessGuard = e.Args.Length > 0
                                        ? new Mutex(true, e.Args[0], out createdNew)
                                        : new Mutex(true, "Warewolf Studio", out createdNew);

            if (createdNew)
            {
                _processGuard = localprocessGuard;
            }
            else
            {
                Environment.Exit(Environment.ExitCode);
            }

            Browser.Startup();

            new Bootstrapper().Start();

            base.OnStartup(e);
            var settingsConfigFile = HelperUtils.GetStudioLogSettingsConfigFile();
            if (!File.Exists(settingsConfigFile))
            {
                File.WriteAllText(settingsConfigFile, GlobalConstants.DefaultStudioLogFileConfig);
            }
            XmlConfigurator.ConfigureAndWatch(new FileInfo(settingsConfigFile));
            _mainViewModel = MainWindow.DataContext as MainViewModel;
            //2013.07.01: Ashley Lewis for bug 9817 - setup exception handler on 'this', with main window data context as the popup dialog controller
            _appExceptionHandler = new AppExceptionHandler(this, _mainViewModel);

#if ! (DEBUG)
            var versionChecker = new VersionChecker();
            if(versionChecker.GetNewerVersion())
            {
                WebLatestVersionDialog dialog = new WebLatestVersionDialog();
                dialog.ShowDialog();
            }
#endif
        }
        public void VersionChecker_LatestVersionCheckSum_CallsCorrectDownloadString()
        {
            //------------Setup for test--------------------------
            var webClient = new Mock<IDev2WebClient>();
            webClient.Setup(a => a.DownloadString(It.IsAny<string>())).Returns("1.2.1.1");
            var versionChecker = new VersionChecker(webClient.Object, () => new Version(0, 0, 0, 1));


            var ax = versionChecker.LatestVersionCheckSum;
            //------------Execute Test---------------------------

            Assert.AreEqual("1.2.1.1", ax);
            //------------Assert Results-------------------------
        }
        public void GivenTheVersionOfTheSoftwareOnTheServerIs(string p0)
        {

            VersionChecker checker = new VersionChecker(new Dev2WebClient(new WebClient()),new FileWrapper(), (a=>new Version(p0)));
        }