public async Task should_delete_time_entry() { // GIVEN await _sandbox.Scenario !.UserProfile.WithProfile(); var existingId = await _sandbox.Scenario.TimeEntry.With("2019/01/01", TimeEntryType.In); _sandbox.ClearMediator(); var command = new DeleteTimeEntries(new[] { existingId }); // WHEN await _sandbox.Mediator !.Send(command); // THEN _sandbox.Should !.Mediator !.Be("DeleteTimeEntry -> TimeEntryDeleted"); await _sandbox.Should !.Redis !.NotExists.Set("time-entry", existingId); await _sandbox.Should !.Redis !.NotExists.SortedSet("time-entry", "by-when"); }
public async Task <ImmutableList <Guid> > Handle(DeleteTimeEntries request, CancellationToken cancellationToken) { foreach (var id in request.Ids) { var toDeleteEntry = await _writeRepository.GetOrDefault <Domain.TimeEntry>(id.ToString()); if (toDeleteEntry == null) { throw new NotFoundItemException(); } toDeleteEntry.Delete(); var events = await _writeRepository.Save(WriteRepository.DefaultKeyTaker, toDeleteEntry); foreach (var evt in events) { await _mediator.Publish(evt, cancellationToken); } } return(request.Ids); }