Beispiel #1
0
        public async Task Handle_RemoveCalendarEvent_WhenItExists()
        {
            var calendarEvent = new CalendarEvent(
                "Music fetival",
                DateTimeOffset.Now.ToUnixTimeSeconds(),
                "Oosterpark, Amsterdam ",
                "Rafael Caviquioli"
                );

            calendarEvent.AddMember("Aleida");
            _context.Add(calendarEvent);
            await _context.SaveChangesAsync();

            _context.DetachAllEntities();

            var command = new RemoveCalendarEventCommand(calendarEvent.Id);
            var handler = new RemoveCalendarEventCommandHandler(_calendarEventRepository);
            await handler.Handle(command, CancellationToken.None);

            var calendarEventExpected = await _context.CalendarEvents
                                        .FirstOrDefaultAsync(ce => ce.Id == calendarEvent.Id);

            calendarEventExpected
            .Should().BeNull("Because calendar event was removed from database");
        }
Beispiel #2
0
        public async Task <IActionResult> Create([Bind("Id,Title,StartDate,EndDate")] Calendar calendar)
        {
            if (ModelState.IsValid)
            {
                _context.Add(calendar);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(calendar));
        }
        public async Task Handle_ShouldEditCalendarEventDataInDatabase()
        {
            var calendarEvent = new CalendarEvent(
                "Music fetival",
                DateTimeOffset.Now.ToUnixTimeSeconds(),
                "Oosterpark, Amsterdam ",
                "Rafael Caviquioli"
                );

            calendarEvent.AddMember("Aleida");
            calendarEvent.AddMember("Vans Martin");
            _context.Add(calendarEvent);
            await _context.SaveChangesAsync();

            _context.DetachAllEntities();

            var command = new EditCalendarEventCommand()
            {
                Id             = calendarEvent.Id,
                Name           = "Football Challenge",
                Time           = DateTimeOffset.Now.AddDays(10).ToUnixTimeSeconds(),
                Location       = "Brussels, Belgian",
                EventOrganizer = "Elisabeth",
                Members        = new string[] { "Gabriel", "Anna", "Aleida", "Felipe" }
            };
            var handler = new EditCalendarEventCommandHandler(_calendarEventRepository);
            await handler.Handle(command, CancellationToken.None);

            var updatedCalendarEvent = await _context.CalendarEvents
                                       .Include(ce => ce.Members)
                                       .FirstOrDefaultAsync(ce => ce.Id == calendarEvent.Id);

            updatedCalendarEvent.Name.Should().Be(command.Name);
            updatedCalendarEvent.Location.Should().Be(command.Location);
            updatedCalendarEvent.Time.Should().Be(command.Time);
            updatedCalendarEvent.Organizer.Should().Be(command.EventOrganizer);
            updatedCalendarEvent.Members.Should().HaveCount(4);

            var members = updatedCalendarEvent.Members
                          .Select(m => m.Name)
                          .ToList();

            members.Should().Contain("Gabriel");
            members.Should().Contain("Anna");
            members.Should().Contain("Aleida");
            members.Should().Contain("Felipe");
            members.Should().NotContain("Vans Martin");
        }
        public async Task CreateRequestForCommandAsync <T>(Guid id)
        {
            var exists = await ExistAsync(id);

            var request = exists ?
                          throw new CalendarDomainException($"Request with {id} already exists") :
                                new ClientRequest()
                                {
                                    Id   = id,
                                    Name = typeof(T).Name,
                                    Time = DateTime.UtcNow
                                };

            _context.Add(request);

            await _context.SaveChangesAsync();
        }
Beispiel #5
0
        public async Task Save(CalendarEvent calendarEvent)
        {
            var entity = await _context.CalendarEvents
                         .AsNoTracking()
                         .FirstOrDefaultAsync(u => u.Id == calendarEvent.Id);

            var entityAlreadyExists = entity != null;

            if (entityAlreadyExists)
            {
                _context.Update(calendarEvent);
            }
            else
            {
                _context.Add(calendarEvent);
            }

            await _context.SaveChangesAsync();
        }