private void Update(Concert aggregateRoot) { var snapshot = ConcertSnapshot.CreateFrom(aggregateRoot); var concertEntity = _db.Concerts.Find(aggregateRoot.Id.AsGuid()); concertEntity.ModifyWithConcertSnapshot(snapshot); _db.SaveChanges(); }
public void ModifyWithConcertSnapshot(ConcertSnapshot snapshot) { this.Date = snapshot.ConcertDate; this.Description = snapshot.Description; this.Organizer = snapshot.Organizer; this.TitleEng = snapshot.TitleEng; this.TitleGeo = snapshot.TitleGeo; }
public static ConcertEntity FromConcertSnapshot(ConcertSnapshot snapshot) { return(new ConcertEntity { Id = snapshot.Id.AsGuid(), Date = snapshot.ConcertDate, Description = snapshot.Description, Organizer = snapshot.Organizer, TitleEng = snapshot.TitleEng, TitleGeo = snapshot.TitleGeo }); }
public void Store(Concert aggregateRoot) { if ((aggregateRoot as IHasDomainEvents).NewlyCreated()) { var snapshot = ConcertSnapshot.CreateFrom(aggregateRoot); _db.Concerts.Add(ConcertEntity.FromConcertSnapshot(snapshot)); _db.SaveChanges(); } else { Update(aggregateRoot); } }
public void ChangeTitle_WhenNonEmptyTitles_ChangesConcertTitles() { var sut = AnonymousConcert(); string expectedGeo = "geo1"; string expectedEng = "eng1"; sut.ChangeConcertTitle(expectedGeo, expectedEng); ConcertSnapshot concertSnapshot = ConcertSnapshot(sut); Assert.Equal <string>(expectedGeo, concertSnapshot.TitleGeo); Assert.Equal <string>(expectedEng, concertSnapshot.TitleEng); }
public void Postpone_WhenFutureDate_ChangesConcertConcertDate() { DateTime concertDate = new DateTime(2017, 12, 05); DateTime today = new DateTime(2017, 12, 01); DateTime expectedDate = new DateTime(2017, 12, 20); var sut = ConcertWithCurrentDateAndConcertDate(today, concertDate); sut.Postpone(expectedDate); ConcertSnapshot concertSnapshot = ConcertSnapshot(sut); Assert.Equal <DateTime>(expectedDate, concertSnapshot.ConcertDate); }
public void Delete(Concert aggregateRoot) { _db.Concerts.Remove(ConcertEntity.FromConcertSnapshot(ConcertSnapshot.CreateFrom(aggregateRoot))); _db.SaveChanges(); }