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 Result <InteractionEvents.CollectionDocumentsCreated> CreateItem(CollectionReference collection) { if (collection is FileCollectionReference) { return(AddFileToDatabase(collection.Database)); } var newDoc = new BsonDocument { ["_id"] = ObjectId.NewObjectId() }; var documentReference = collection.AddItem(newDoc); var documentsCreated = new InteractionEvents.CollectionDocumentsCreated(collection, new [] { documentReference }); return(Result.Ok(documentsCreated)); }
public Result <InteractionEvents.CollectionDocumentsCreated> ImportDataFromText(CollectionReference collection, string textData) { try { if (string.IsNullOrWhiteSpace(textData)) { return(Result.Ok(new InteractionEvents.CollectionDocumentsCreated(collection, null))); } var newValue = JsonSerializer.Deserialize(textData); var newDocs = new List <DocumentReference>(); if (newValue.IsArray) { foreach (var value in newValue.AsArray) { var doc = value.AsDocument; var documentReference = collection.AddItem(doc); newDocs.Add(documentReference); } } else { var doc = newValue.AsDocument; var documentReference = collection.AddItem(doc); newDocs.Add(documentReference); } var documentsUpdate = new InteractionEvents.CollectionDocumentsCreated(collection, newDocs); return(Result.Ok(documentsUpdate)); } catch (Exception e) { var message = "Failed to import document from text content: " + e.Message; Logger.Warn(e, "Cannot process clipboard data."); ErrorInteraction(message, "Import Error"); return(Result.Fail <InteractionEvents.CollectionDocumentsCreated>(message)); } }