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")));
        }
Ejemplo n.º 2
0
        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"));
        }
Ejemplo n.º 3
0
        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"));
        }
Ejemplo n.º 4
0
        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"));
        }
Ejemplo n.º 5
0
        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"));
        }