public static Task<IFile> RequestAsync( this InteractionRequest<SaveFileInteraction> interactionRequest, string title, string acceptButtonText, string cancelButtonText, IEnumerable<FileType> fileTypeChoices ) { Arg.NotNull( interactionRequest, nameof( interactionRequest ) ); Arg.NotNull( fileTypeChoices, nameof( fileTypeChoices ) ); if ( string.IsNullOrEmpty( title ) ) title = SR.SaveFileTitle; if ( string.IsNullOrEmpty( acceptButtonText ) ) acceptButtonText = SR.Save; if ( string.IsNullOrEmpty( cancelButtonText ) ) cancelButtonText = SR.Cancel; var source = new TaskCompletionSource<IFile>(); SaveFileInteraction interaction = null; interaction = new SaveFileInteraction() { Title = title, DefaultCommandIndex = 0, CancelCommandIndex = 1, Commands = { new NamedCommand<object>( "Save", acceptButtonText, p => source.TrySetResult( interaction.SavedFile ) ), new NamedCommand<object>( "Cancel", cancelButtonText, p => source.TrySetResult( null ) ) } }; var defaultExt = ( from choice in fileTypeChoices from ext in choice.Extensions where !string.IsNullOrEmpty( ext ) select ext ).FirstOrDefault(); // set the default file extension to the first entry with a non-null, non-empty value if ( !string.IsNullOrEmpty( defaultExt ) ) interaction.DefaultFileExtension = defaultExt; interaction.FileTypeChoices.AddRange( fileTypeChoices ); interactionRequest.Request( interaction ); return source.Task; }
public void FileNameShouldWriteExpectedValue() { // arrange var expected = "test"; var interaction = new SaveFileInteraction(); // act Assert.PropertyChanged( interaction, "FileName", () => interaction.FileName = expected ); var actual = interaction.FileName; // assert Assert.Equal( expected, actual ); }
public void DefaultFileExtensionShouldWriteExpectedValue() { // arrange var expected = "*.txt"; var interaction = new SaveFileInteraction(); // act Assert.PropertyChanged( interaction, "DefaultFileExtension", () => interaction.DefaultFileExtension = expected ); var actual = interaction.DefaultFileExtension; // assert Assert.Equal( expected, actual ); }
public void FileNameShouldNotAllowNull() { // arrange string value = null; var interaction = new SaveFileInteraction(); // act var ex = Assert.Throws<ArgumentNullException>( () => interaction.FileName = value ); // assert Assert.Equal( "value", ex.ParamName ); }
public void ConstructorShouldSetSuggestedFileName() { // arrange var expected = "test"; // act var interaction = new SaveFileInteraction( "", "", expected ); var actual = interaction.FileName; // assert Assert.Equal( expected, actual ); }