Пример #1
0
        /// <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;
        }
Пример #2
0
        /// <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;
        }