private EmailAddress DoCreate <T>(NewEmailAddress <T> newEmailAddress, T emailAddressable, List <EmailAddress> existingEmailAddresses) where T : class, IEmailAddressable { throwIfEMailAddressableEntityNotFound(emailAddressable, newEmailAddress.GetEmailAddressableEntityId()); if (newEmailAddress.IsPrimary) { existingEmailAddresses.ForEach(x => x.IsPrimary = false); } return(newEmailAddress.AddEmailAddress(emailAddressable)); }
/// <summary> /// Creates a new email address in the ECA system. /// </summary> /// <typeparam name="T">The IEmailAddressable entity type.</typeparam> /// <param name="newEmailAddress">The email address.</param> /// <returns>The created email address entity.</returns> public EmailAddress Create <T>(NewEmailAddress <T> newEmailAddress) where T : class, IEmailAddressable { var addressable = this.Context.Set <T>().Find(newEmailAddress.GetEmailAddressableEntityId()); List <EmailAddress> existingEmailAddresses = new List <EmailAddress>(); if (newEmailAddress.IsPrimary) { existingEmailAddresses = newEmailAddress.CreateGetEmailAddressesQuery(this.Context).ToList(); } return(DoCreate(newEmailAddress, addressable, existingEmailAddresses)); }
/// <summary> /// Creates a new email addres in the ECA system. /// </summary> /// <typeparam name="T">The IEmailAddressable entity type.</typeparam> /// <param name="newEmailAddress">The email address.</param> /// <returns>The created semail address entity.</returns> public async Task <EmailAddress> CreateAsync <T>(NewEmailAddress <T> newEmailAddress) where T : class, IEmailAddressable { var addressable = await this.Context.Set <T>().FindAsync(newEmailAddress.GetEmailAddressableEntityId()); List <EmailAddress> existingEmailAddresses = new List <EmailAddress>(); if (newEmailAddress.IsPrimary) { existingEmailAddresses = await newEmailAddress.CreateGetEmailAddressesQuery(this.Context).ToListAsync(); } return(DoCreate(newEmailAddress, addressable, existingEmailAddresses)); }