public void Handle(PersonPlacedEvent @event, DatabaseContext db)
        {
            var aggregate = @event.Person;

            var homePhoneNumber   = aggregate.PhoneNumbers?.FirstOrDefault(phone => phone.PhoneNumberType == PhoneNumberType.Home);
            var officePhoneNumber = aggregate.PhoneNumbers?.FirstOrDefault(phone => phone.PhoneNumberType == PhoneNumberType.Office);
            var mobilePhoneNumber = aggregate.PhoneNumbers?.FirstOrDefault(phone => phone.PhoneNumberType == PhoneNumberType.Mobile);

            var personReadModel = new PersonReadModel(aggregate.Id,
                                                      aggregate.FirstName,
                                                      aggregate.LastName,
                                                      aggregate.IdentificationNumber,
                                                      aggregate.BirthDate,
                                                      aggregate.CityId,
                                                      aggregate.Photo.FilePath,
                                                      aggregate.Photo.Height,
                                                      aggregate.Photo.Width,
                                                      aggregate.Gender.ToString(),
                                                      "",
                                                      homePhoneNumber?.Number,
                                                      officePhoneNumber?.Number,
                                                      mobilePhoneNumber?.Number);

            db.Set <PersonReadModel>().Add(personReadModel);
        }
Example #2
0
        public PersonModel(PersonReadModel readModel)
        {
            ReadModel = readModel;

            SpeedList = new SpeedListModel
            {
                SpeedList = readModel.AllVerifiedSpeeds
                            .Select(summary => new SpeedReadModel
                {
                    Id   = summary.SpeedId,
                    Date = summary.Date,
                    SpeedInMilesPerHour = summary.SpeedInMilesPerHour,
                    AircraftName        = summary.AircraftName,
                    PilotName           = readModel.UserName,
                    SiteName            = summary.SiteName,
                    SiteLocation        = summary.SiteLocation,
                    SiteCountryName     = summary.SiteCountryName,
                    IsVerified          = true
                }).ToList()
            };
        }