예제 #1
0
        /// <summary>
        /// Creates a new contact and saves it to external store.
        /// </summary>
        /// <param name="contactDetails">Contact details value object.</param>
        /// <returns>New Contact created.</returns>
        public Contact CreateNewContact(IContactDetails contactDetails)
        {
            ContactDetailsValidator contactDetailsValidator = new ContactDetailsValidator();

            contactDetailsValidator.ValidateAndThrow(contactDetails);

            ContactAddress contactAddress = new ContactAddress(contactDetails.StreetAndNumber, contactDetails.City, contactDetails.PostalCode, contactDetails.Country);
            Contact        newContact     = new Contact(Guid.NewGuid(), contactDetails.FirstName, contactDetails.LastName, contactDetails.TelephoneNumber, contactAddress);

            _contactOrganizerRepository.CreateNewContact(newContact);
            return(newContact);
        }
예제 #2
0
        /// <summary>
        /// Updates contact details.
        /// </summary>
        /// <param name="contactId">Contact unique ID.</param>
        /// <param name="contactDetails">Contact details value object.</param>
        public Contact UpdateContactDetails(Guid contactId, IContactDetails contactDetails)
        {
            ContactDetailsValidator contactDetailsValidator = new ContactDetailsValidator();

            contactDetailsValidator.ValidateAndThrow(contactDetails);

            Contact        contact        = _contactOrganizerRepository.GetContactById(contactId);
            ContactAddress contactAddress = new ContactAddress(contactDetails.StreetAndNumber, contactDetails.City, contactDetails.PostalCode, contactDetails.Country);

            contact.UpdateDetails(contactDetails.FirstName, contactDetails.LastName, contactDetails.TelephoneNumber, contactAddress);
            _contactOrganizerRepository.UpdateContactDetails(contact);

            return(contact);
        }