/// <summary> /// Drops and recreates the channel - business account relationships /// </summary> /// <param name="businessAccount">EcomBusinessAccount</param> /// <returns>EcomBusinessInfo object</returns> private EcomBusinessInfo UpdateChannels(EcomBusinessAccount businessAccount) { var ecomBusinessInfo = new EcomBusinessInfo(); if (businessAccount.Channels == null || !businessAccount.Channels.Any()) { return ecomBusinessInfo; } //Get list of Ecomm opt ins for the Business var ecommOptIns = GetEcommOptInsForBusiness(businessAccount.ShortName); //Handle all the Opt Ins First foreach (var channel in businessAccount.Channels) { var channelId = GetChannelId(channel.ChannelName); if (channelId != null) { ecomBusinessInfo.AddedChannels.Add(channel.ChannelName); //If opt in doesnt exist in ECOMM then create it if (!ecommOptIns.Any(c => c.ChannelName.Equals(channel.ChannelName, StringComparison.InvariantCultureIgnoreCase))) { CreateOptIn(businessAccount, channel.ChannelName, channel.IntegrationTypeCode); } else if (ecommOptIns.Any(c => c.ChannelName.Equals(channel.ChannelName, StringComparison.InvariantCultureIgnoreCase))) { UpdateOptIn(businessAccount, channel.ChannelName, channel.IntegrationTypeCode, ECOMM_OPTEDIN_STATUS); } } else { ecomBusinessInfo.MissingChannels.Add(channel.ChannelName); } } foreach (var channel in ecommOptIns) { if (!businessAccount.DoesChannelExist(channel.ChannelName)) { ecomBusinessInfo.AddedChannels.Add(channel.ChannelName); UpdateOptIn(businessAccount, channel.ChannelName, channel.IntegrationTypeCode, ECOMM_OPTEDOUT_STATUS); } } return ecomBusinessInfo; }
/// <summary> /// Relates channels with a business account /// </summary> /// <param name="businessAccount">EcomBusinessAccount</param> /// <returns>EcomBusinessInfo object</returns> private EcomBusinessInfo CreateChannels(EcomBusinessAccount businessAccount) { var ecomBusinessInfo = new EcomBusinessInfo(); if (businessAccount.Channels == null || !businessAccount.Channels.Any()) { return ecomBusinessInfo; } foreach (var channel in businessAccount.Channels) { var channelId = GetChannelId(channel.ChannelName); if (channelId != null) { ecomBusinessInfo.AddedChannels.Add(channel.ChannelName); CreateOptIn(businessAccount, channel.ChannelName, channel.IntegrationTypeCode); } else { ecomBusinessInfo.MissingChannels.Add(channel.ChannelName); } } return ecomBusinessInfo; }