public void CreateNewOffice(OfficeDTO officeDTO)
        {
            Expression <Func <Office, bool> > expressionPredicate = o => o.Id == officeDTO.Id;
            var office = this._uoW.OfficeRepository.Find(expressionPredicate).FirstOrDefault();

            if (office != null)
            {
                throw new Exception("Office with this ID already exists");
            }

            var postalCode = new PostalCode(officeDTO.Address.PostalCode.FirstPart, officeDTO.Address.PostalCode.SecondPart);
            var dialCode   = new DialCode(officeDTO.PhoneNumber.AreaCode.Prefix, officeDTO.PhoneNumber.AreaCode.Country, officeDTO.PhoneNumber.AreaCode.Code);

            var address = new Address(officeDTO.Address.Locality, officeDTO.Address.Province, officeDTO.Address.Parish, officeDTO.Address.County, postalCode, officeDTO.Address.Country, officeDTO.Address.Street,
                                      officeDTO.Address.BuildingNumber, officeDTO.Address.LocalNumber);
            var phoneNumber = new PhoneNumber(officeDTO.PhoneNumber.Number, dialCode);

            office = new Office(
                officeDTO.Id,
                officeDTO.Director,
                address,
                officeDTO.OpenFrom,
                officeDTO.OpenTo,
                (OpenClose)officeDTO.IsOpen,
                phoneNumber,
                _domainEventPublisher
                );

            _uoW.OfficeRepository.Insert(office);
            _uoW.Commit();
        }
Exemple #2
0
 public DialCodeDTO Map(DialCode dialCode)
 {
     return(new DialCodeDTO
     {
         Code = dialCode.Code,
         Prefix = dialCode.Prefix,
         Country = dialCode.Country
     });
 }