public void TestToAdditionalPointOfContact() { var email = "*****@*****.**"; var emailTypeId = EmailAddressType.Business.Id; var phoneNumber = "555"; var phoneNumberTypeId = PhoneNumberType.Business.Id; var newEmailAddress = new AdditionalEmailAddressBindingModel { Address = email, EmailAddressTypeId = emailTypeId, IsPrimary = true }; var newPhoneNumber = new AdditionalPhoneNumberBindingModel { Number = phoneNumber, PhoneNumberTypeId = phoneNumberTypeId, IsPrimary = true }; var model = new AdditionalPointOfContactBindingModel { EmailAddresses = new List <AdditionalEmailAddressBindingModel> { newEmailAddress }, PhoneNumbers = new List <AdditionalPhoneNumberBindingModel> { newPhoneNumber }, FullName = "full Name", Position = "position" }; var user = new User(1); var instance = model.ToAdditionalPointOfContact(user); Assert.AreEqual(user.Id, instance.Audit.User.Id); Assert.AreEqual(model.FullName, instance.FullName); Assert.AreEqual(model.Position, instance.Position); Assert.AreEqual(1, instance.EmailAddresses.Count()); Assert.AreEqual(1, instance.PhoneNumbers.Count()); var firstEmail = instance.EmailAddresses.First(); Assert.AreEqual(email, firstEmail.Address); Assert.AreEqual(emailTypeId, firstEmail.EmailAddressTypeId); Assert.AreEqual(user.Id, firstEmail.Audit.User.Id); Assert.AreEqual(newEmailAddress.IsPrimary, firstEmail.IsPrimary); var firstPhoneNumber = instance.PhoneNumbers.First(); Assert.AreEqual(phoneNumber, firstPhoneNumber.Number); Assert.AreEqual(phoneNumberTypeId, firstPhoneNumber.PhoneNumberTypeId); Assert.AreEqual(user.Id, firstPhoneNumber.Audit.User.Id); Assert.AreEqual(newPhoneNumber.IsPrimary, firstPhoneNumber.IsPrimary); }
/// <summary> /// Adds a new contact to the system. /// </summary> /// <param name="model"></param> /// <returns>The saved contact.</returns> public async Task <IHttpActionResult> PostCreateContactAsync(AdditionalPointOfContactBindingModel model) { if (ModelState.IsValid) { var currentUser = userProvider.GetCurrentUser(); var businessUser = userProvider.GetBusinessUser(currentUser); var instance = model.ToAdditionalPointOfContact(businessUser); var contact = await service.CreateAsync(instance); await service.SaveChangesAsync(); var dto = await service.GetContactByIdAsync(contact.ContactId); return(Ok(dto)); } else { return(BadRequest(ModelState)); } }