Example #1
0
 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
     });
 }
Example #2
0
        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()}");
            }
        }
Example #3
0
 public void SetOwnership(ClinicOwner owner)
 {
     RaiseChangeEvent(ClinicsDomain.Events.Clinic.OwnershipChanged.Create(Id, owner));
 }