bool SaveAs()
        {
            if (ProgramProvider.Program == null)
            {
                return(true);
            }
            var filename = FilenameProvider.GetSaveFileName(Resources.Strings.TitleBarViewModel_SaveProgramAs);

            if (!string.IsNullOrEmpty(filename))
            {
                return(false);
            }

            Mouse.OverrideCursor = Cursors.Wait;
            var result = ProgramAccessor.Save(filename, ProgramProvider.Program);

            Mouse.OverrideCursor = null;

            if (result)
            {
                StatusUpdateProvider.Publish(string.Format(Resources.Strings.TitleBarViewModel_SavedProgramAs, ProgramProvider.Program.FileName));
                return(true);
            }
            StatusUpdateProvider.Publish(string.Format(Resources.Strings.TitleBarViewModel_CouldNotSaveProgram, ProgramProvider.Program.FileName));
            return(false);
        }
        public void GivenFileWithoutExtension_FilePrefixIsAdded()
        {
            var provider = new FilenameProvider();

            var outputFilename = provider.GetOutputFilename("input");

            Assert.AreEqual("input-sorted.txt", outputFilename);
        }
        bool Load()
        {
            var filename = FilenameProvider.GetLoadFileName();

            if (string.IsNullOrEmpty(filename))
            {
                return(false);
            }

            Mouse.OverrideCursor    = Cursors.Wait;
            ProgramProvider.Program = ProgramAccessor.Load(filename);
            Mouse.OverrideCursor    = null;

            StatusUpdateProvider.Publish(string.Format(Resources.Strings.TitleBarViewModel_LoadedProgram, filename));
            return(true);
        }
        bool EnsureSaved()
        {
            if (ProgramProvider.Program == null || ProgramProvider.Program.IsModified == false)
            {
                return(true);
            }

            var fileName = "Untitled";

            if (ProgramProvider.Program != null && !string.IsNullOrEmpty(ProgramProvider.Program.FileName))
            {
                fileName = Path.GetFileName(ProgramProvider.Program.FileName);
            }
            var title    = string.Format(Resources.Strings.TitleBarViewModel_DoYouWantToSave, fileName);
            var filename = FilenameProvider.GetSaveFileName(title, fileName);

            return(!string.IsNullOrEmpty(filename) && Save());
        }
 public void Path_with_subdirectory() {
     var result = new FilenameProvider().GetFilenames("testdata");
     Assert.That(result, Is.EquivalentTo(new[] { "testdata\\A.cs", "testdata\\folder\\B.cs" }));
 }