示例#1
0
 //TODO: See how we can avoid injecting EventBus into the Domain entities
 public Site(Guid id, int siteNumber, string siteName, SiteStatus status, SiteFacilityType siteFacitlityType, SiteType siteType,
             DateTimeRange contractDuration, PhoneNumber primaryPhoneNumber, Contact contactDetails, VO.Address address, string email,
             string countyCode, string countyServedCode, LicenceStatus licenceStatus, IEnumerable <SiteHoliday> holidays, IEnumerable <SiteRate> rates /*, IBus bus*/) : base(id /*, bus*/)
 {
     SiteNumber         = siteNumber;
     SiteName           = siteName;
     Status             = status;
     SiteFacitlityType  = siteFacitlityType;
     SiteType           = siteType;
     ContractDuration   = contractDuration;
     PrimaryPhoneNumber = primaryPhoneNumber;
     ContactDetails     = contactDetails;
     Address            = address;
     Email            = email;
     CountyCode       = countyCode;
     CountyServedCode = countyServedCode;
     LicencingStatus  = licenceStatus;
     InitializeDbState();
     holidays.ForEach(AddNewHoliday);
     rates.ForEach(AddNewSiteRate);
 }
示例#2
0
 //TODO: See how we can avoid injecting EventBus into the Domain entities
 public Site(Guid id, int siteNumber, string siteName, SiteStatus status, SiteFacilityType siteFacitlityType, SiteType siteType,
     DateTimeRange contractDuration, PhoneNumber primaryPhoneNumber, Contact contactDetails, VO.Address address, string email,
     string countyCode, string countyServedCode, LicenceStatus licenceStatus, IEnumerable<SiteHoliday> holidays, IEnumerable<SiteRate> rates/*, IBus bus*/)
     : base(id/*, bus*/)
 {
     SiteNumber = siteNumber;
     SiteName = siteName;
     Status = status;
     SiteFacitlityType = siteFacitlityType;
     SiteType = siteType;
     ContractDuration = contractDuration;
     PrimaryPhoneNumber = primaryPhoneNumber;
     ContactDetails = contactDetails;
     Address = address;
     Email = email;
     CountyCode = countyCode;
     CountyServedCode = countyServedCode;
     LicencingStatus = licenceStatus;
     InitializeDbState();
     holidays.ForEach(AddNewHoliday);
     rates.ForEach(AddNewSiteRate);
 }
示例#3
0
        public async Task Handle(AddNewSiteCommand message, IMessageHandlerContext messageContext)
        {
            var siteDto = message.Site;
            SiteFacilityType facitlType = siteDto.SiteFacitlityTypeCode;
            SiteType         siteType   = siteDto.SiteTypeCode;
            var contractDuration        = new DateTimeRange(siteDto.ContractStartDate, siteDto.ContractEndDate);
            var contact = new Contact(new Name(siteDto.ContactFirstName, siteDto.ContactLastName),
                                      siteDto.ContactPhoneNumber, null, siteDto.ContactEmailText);
            var address = new DDD.Domain.Common.ValueObjects.Address(siteDto.AddressLine1, siteDto.AddressLine2,
                                                                     siteDto.City, "DE", siteDto.ZipCode, siteDto.CountyCode);

            var holidays   = siteDto.SiteHolidays.Select(x => new SiteHoliday(x.HolidayDate, x.HolidayName)).ToList();
            var rates      = siteDto.SiteRates.Select(x => new SiteRate(x.MinAge, x.Rate, (x.Rate * 1.5m), DateTime.Now));
            var siteEntity = new Entities.Site(GuidHelper.NewSequentialGuid(), siteDto.SiteNumber, siteDto.SiteName,
                                               SiteStatus.Active, facitlType, siteType,
                                               contractDuration, siteDto.PhoneNumber, contact, address, siteDto.SiteEmailText, siteDto.CountyCode,
                                               siteDto.CountyServed
                                               , LicenceStatus.Licenced, holidays, rates);

            _siteRepository.Add(siteEntity);
            await _siteRepository.SaveAsync();

            await messageContext.Publish(new NewSiteAdded(siteEntity.Id, siteEntity.SiteNumber));
        }
示例#4
0
 public Site(int siteId, string siteName, SiteStatus status, SiteFacilityType siteFacitlityType, SiteType siteType,
             DateTimeRange contractDuration, PhoneNumber primaryPhoneNumber, Contact contactDetails, VO.Address address, string email,
             string county, string countyServed, LicenceStatus licenceStatus, IEnumerable <SiteHoliday> holidays, IEnumerable <SiteRate> rates /*, IBus eventBus*/)
     : this(GuidHelper.NewSequentialGuid(), siteId, siteName, status, siteFacitlityType, siteType, contractDuration, primaryPhoneNumber, contactDetails, address, email, county, countyServed, licenceStatus, holidays, rates /*, eventBus*/)
 {
 }
示例#5
0
 public Site(int siteId, string siteName, SiteStatus status, SiteFacilityType siteFacitlityType, SiteType siteType,
     DateTimeRange contractDuration, PhoneNumber primaryPhoneNumber, Contact contactDetails, VO.Address address, string email,
     string county, string countyServed, LicenceStatus licenceStatus, IEnumerable<SiteHoliday> holidays, IEnumerable<SiteRate> rates/*, IBus eventBus*/)
     : this(GuidHelper.NewSequentialGuid(), siteId, siteName, status, siteFacitlityType, siteType, contractDuration, primaryPhoneNumber, contactDetails, address, email, county, countyServed, licenceStatus, holidays, rates/*, eventBus*/)
 {
 }