public async Task <IActionResult> Add([FromBody][Required] AddEventRequest request) { var input = new AddEventInput(request.Name, request.Description, request.StartDate, request.Duration); await _useCase.Execute(input); return(_presenter.ViewModel); }
public async Task Execute(AddEventInput input) { if (input is null) { throw new Exception(); } var newEvent = _entityFactory.NewCalendarEvent(input.Name, input.Description, input.StartDate, input.Duration); await _repository.Add(newEvent); _output.Default(new AddEventOutput(newEvent)); }
public async Task ValidEvent_ShouldBeAdded() { var input = new AddEventInput("Name", "Description", new DateTime(2020, 1, 1), TimeSpan.FromMinutes(20)); await _useCase.Execute(input); Assert.NotNull(_output); Assert.NotEqual(Guid.Empty, _output.EventId); Assert.Equal("Name", _output.EventName); Assert.Equal("Description", _output.EventDescription); Assert.Equal(new DateTime(2020, 1, 1), _output.EventStartDate); Assert.Equal(TimeSpan.FromMinutes(20), _output.EventDuration); Assert.Single(_context.CalendarEvents); Assert.Equal(_context.CalendarEvents.First().Id, _output.EventId); Assert.Equal(_context.CalendarEvents.First().Name, _output.EventName); Assert.Equal(_context.CalendarEvents.First().Description, _output.EventDescription); Assert.Equal(_context.CalendarEvents.First().StartDate, _output.EventStartDate); Assert.Equal(_context.CalendarEvents.First().Duration, _output.EventDuration); }