private void When(object @event) { switch (@event) { case Events.CityCreated e: Id = new CityId(e.Id); Name = e.Name; break; case Events.CityNameChanged e: Name = e.Name; break; case Events.CityDeleted e: Id = new CityId(e.Id); Name = e.Name; break; } }
public static City Create(CityId id, string name) { if (id is null) { throw new ArgumentNullException(nameof(id), "City without unique identifier cannot be created."); } if (string.IsNullOrWhiteSpace(name)) { throw new ArgumentNullException(nameof(name), "City without name cannot be created."); } var city = new City(); city.Apply(new Events.CityCreated { Id = id, Name = name }); return(city); }