コード例 #1
0
ファイル: SaveCommand.cs プロジェクト: dotMorten/AnyStatus
            public async Task <bool> Handle(Request request, CancellationToken cancellationToken)
            {
                if (request.ShowDialog || string.IsNullOrEmpty(_context.Session.FileName))
                {
                    var dialog = new SaveFileDialog("JSON|*.json");

                    if (_dialogService.ShowDialog(dialog) == DialogResult.OK)
                    {
                        _context.Session.FileName = dialog.FileName;
                    }
                    else
                    {
                        return(false);
                    }
                }

                var save = new SaveWidget.Request
                {
                    Widget   = _context.Session.Widget,
                    FileName = _context.Session.FileName,
                };

                if (await _mediator.Send(save, cancellationToken).ConfigureAwait(false))
                {
                    _context.Session.IsDirty = false;

                    return(true);
                }
                else
                {
                    return(false);
                }
            }
コード例 #2
0
        public async Task SaveAndLoadWidgetTest()
        {
            var widget = new DemoHealthCheckWidget
            {
                Name = "Health Check"
            };

            var writeRequest = new SaveWidget.Request
            {
                FileName = _tempFileName,
                Widget   = widget
            };

            var writeResponse = await _mediator.Send(writeRequest, CancellationToken.None);

            Assert.True(writeResponse);

            Assert.True(File.Exists(_tempFileName));

            var readResponse = await _mediator.Send(new GetWidget.Request(_tempFileName), CancellationToken.None);

            Assert.NotNull(readResponse);
            Assert.Equal(widget.Id, readResponse.Id);
            Assert.Equal(widget.Name, readResponse.Name);
        }