public static OwnershipChanged Create(Identifier id, ClinicOwner owner) { return(new OwnershipChanged { EntityId = id, Owner = owner.OwnerId, Managers = new List <string> { owner.OwnerId }, ModifiedUtc = DateTime.UtcNow }); }
protected override void OnStateChanged(IChangeEvent @event) { switch (@event) { case Events.Clinic.Created _: break; case Events.Clinic.LocationChanged changed: Location = new Location(changed.Country, changed.City, changed.Street); Logger.LogDebug("Clinic {Id} changed location to {Country}, {City}, {Street}", Id, changed.Country, changed.City, changed.Street); break; case Events.Clinic.OwnershipChanged changed: Owner = new ClinicOwner(changed.Owner); Managers.Add(changed.Owner.ToIdentifier()); Logger.LogDebug("Clinic {Id} changed ownership to {Owner}", Id, Owner); break; case Events.Clinic.RegistrationChanged changed: License = new ClinicLicense(changed.Jurisdiction, changed.Number); Logger.LogDebug("Clinic {Id} registration changed to {Jurisdiction}, {CertificateNumber}", Id, changed.Jurisdiction, changed.Number); break; case Events.Clinic.DoctorUnavailabilitySlotAdded added: var unavailability = new UnavailabilityEntity(Logger, IdFactory); added.EntityId = unavailability.Id; unavailability.SetAggregateEventHandler(RaiseChangeEvent); RaiseToEntity(unavailability, @event); Unavailabilities.Add(unavailability); Logger.LogDebug("Doctor {Id} had been made unavailable from {From} until {To}", Id, added.From, added.To); break; case Events.Clinic.DoctorRegisteredToClinic added: Doctors.Add(added.DoctorId.ToIdentifier()); Logger.LogDebug("Doctor {Id} had been registered to clinic {Clinic}", added.DoctorId, Id); break; default: throw new InvalidOperationException($"Unknown event {@event.GetType()}"); } }
public void SetOwnership(ClinicOwner owner) { RaiseChangeEvent(ClinicsDomain.Events.Clinic.OwnershipChanged.Create(Id, owner)); }