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(); }
public DialCodeDTO Map(DialCode dialCode) { return(new DialCodeDTO { Code = dialCode.Code, Prefix = dialCode.Prefix, Country = dialCode.Country }); }