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"); }
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(); }
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(); }