public Task <Result <CollectionDocumentChangeEventArgs> > AddFileToDatabase(DatabaseReference database) { var dialog = new OpenFileDialog { Filter = "All files|*.*", Multiselect = false }; if (dialog.ShowDialog() != true) { return(Task.FromResult(Result.Fail <CollectionDocumentChangeEventArgs>("FILE_OPEN_CANCELED"))); } try { if (InputBoxWindow.ShowDialog("New file id:", "Enter new file id", Path.GetFileName(dialog.FileName), out string id) == true) { var file = database.AddFile(id, dialog.FileName); var documentsCreated = new CollectionDocumentChangeEventArgs(ReferenceNodeChangeAction.Add, new [] { file }, file.Collection); _eventAggregator.PublishOnUIThread(documentsCreated); return(Task.FromResult(Result.Ok(documentsCreated))); } } catch (Exception exc) { _applicationInteraction.ShowError(exc, "Failed to upload file:" + Environment.NewLine + exc.Message, "Database error"); } return(Task.FromResult(Result.Fail <CollectionDocumentChangeEventArgs>("FILE_OPEN_FAIL"))); }
public Result <InteractionEvents.CollectionDocumentsCreated> AddFileToDatabase(DatabaseReference database) { var dialog = new OpenFileDialog { Filter = "All files|*.*", Multiselect = false }; if (dialog.ShowDialog() != true) { return(Result.Fail <InteractionEvents.CollectionDocumentsCreated>("FILE_OPEN_CANCELED")); } try { if (InputBoxWindow.ShowDialog("New file id:", "Enter new file id", Path.GetFileName(dialog.FileName), out string id) == true) { var file = database.AddFile(id, dialog.FileName); var documentsCreated = new InteractionEvents.CollectionDocumentsCreated(file.Collection, new [] { file }); return(Result.Ok(documentsCreated)); } } catch (Exception exc) { ErrorInteraction("Failed to upload file:" + Environment.NewLine + exc.Message); } return(Result.Fail <InteractionEvents.CollectionDocumentsCreated>("FILE_OPEN_FAIL")); }
public async Task <Result <CollectionDocumentChangeEventArgs> > AddFileToDatabase(DatabaseReference database) { var maybeFileName = await _applicationInteraction.ShowOpenFileDialog("Add file to database"); if (maybeFileName.HasNoValue) { return(Result.Fail <CollectionDocumentChangeEventArgs>("FILE_OPEN_CANCELED")); } try { var maybeId = await _applicationInteraction.ShowInputDialog("New file id:", "Enter new file id", Path.GetFileName(maybeFileName.Value)); if (maybeId.HasValue) { var file = database.AddFile(maybeId.Value, maybeFileName.Value); var documentsCreated = new CollectionDocumentChangeEventArgs(ReferenceNodeChangeAction.Add, new [] { file }, file.Collection); return(Result.Ok(documentsCreated)); } } catch (Exception exc) { _applicationInteraction.ShowError(exc, "Failed to upload file:" + Environment.NewLine + exc.Message, "Database error"); } return(Result.Fail <CollectionDocumentChangeEventArgs>("FILE_OPEN_FAIL")); }
public Result AddFileToDatabase(DatabaseReference database) { var dialog = new OpenFileDialog { Filter = "All files|*.*", Multiselect = false }; if (dialog.ShowDialog() != true) { return(Result.Fail("FILE_OPEN_CANCELED")); } try { if (InputBoxWindow.ShowDialog("New file id:", "Enter new file id", Path.GetFileName(dialog.FileName), out string id) == true) { var file = database.AddFile(id, dialog.FileName); Store.Current.SelectCollection(database.Collections.First(a => a.Name == "_files")); Store.Current.SelectDocument(file); return(Result.Ok()); } } catch (Exception exc) { ErrorInteraction("Failed to upload file:" + Environment.NewLine + exc.Message); } return(Result.Fail("FILE_OPEN_FAIL")); }
public async Task <Result <CollectionDocumentChangeEventArgs> > AddFileToDatabase(IScreen context, DatabaseReference database, string filePath = null) { Maybe <string> maybeFileName = filePath; if (string.IsNullOrEmpty(filePath)) { maybeFileName = await _applicationInteraction.ShowOpenFileDialog("Add file to database"); if (maybeFileName.HasNoValue) { return(Result.Failure <CollectionDocumentChangeEventArgs>(Fails.Canceled)); } } var exportOptions = new AddFileOptions(database, Path.GetFileName(maybeFileName.Value)); var optionsResult = await ShowHostDialog(context).For(exportOptions); if (optionsResult.Action is "cancel") { return(Result.Failure <CollectionDocumentChangeEventArgs>(Fails.Canceled)); } try { var fileId = optionsResult.Model.NewFileId; if (!string.IsNullOrEmpty(fileId)) { var file = database.AddFile(fileId, maybeFileName.Value); var documentsCreated = new CollectionDocumentChangeEventArgs(ReferenceNodeChangeAction.Add, new [] { file }, file.Collection); return(Result.Ok(documentsCreated)); } } catch (Exception exc) { _applicationInteraction.ShowError(exc, "Failed to upload file:" + Environment.NewLine + exc.Message, "Database error"); } return(Result.Failure <CollectionDocumentChangeEventArgs>("FILE_OPEN_FAIL")); }