Esempio n. 1
0
        public async Task <ImmutableList <Guid> > Handle(CreateTimeEntries request, CancellationToken cancellationToken)
        {
            var user = _authProvider.GetUser();

            var timeEntries = request.Entries.Select(model => Domain.TimeEntry.Create(model.ToEventDto(user)))
                              .ToArray();

            var events = await _writeRepository.Save(WriteRepository.DefaultKeyTaker, timeEntries);

            foreach (var evt in events)
            {
                await _mediator.Publish(evt, cancellationToken);
            }

            return(timeEntries.Select(te => te.Id).ToImmutableList());
        }
Esempio n. 2
0
        public async Task should_not_allow_to_track_with_invalid_type()
        {
            // GIVEN
            var command =
                new CreateTimeEntries(new TimeEntryModel(DateTimeOffset.UtcNow,
                                                         0,
                                                         Guid.NewGuid(),
                                                         Guid.NewGuid()));

            // WHEN
            Func <Task> action = async() => await _sandbox.Mediator !.Send(command);

            // THEN
            await action.Should().ThrowAsync <ValidationException>();

            _sandbox.Should !.Mediator !.Be("CreateTimeEntry");
        }
Esempio n. 3
0
        public async Task should_create_time_entry()
        {
            // GIVEN
            var command = new CreateTimeEntries(new TimeEntryModel(DateTimeOffset.UtcNow,
                                                                   (int)TimeEntryType.In,
                                                                   UserProfileScenarioBuilder.Job1));

            // WHEN
            var ids = await _sandbox.Mediator !.Send(command);

            // THEN
            _sandbox.Should !.Mediator !.Be("CreateTimeEntry -> TimeEntryAdded");

            // TODO: check if event store has event
//            await _sandbox.Should!.Cassandra.Exists(id);
            await _sandbox.Should !.Redis !.Exists.Set("time-entry", ids.First());
            await _sandbox.Should !.Redis !.Exists.SortedSet("time-entry", "by-when", 1);
        }