internal bool RemoveDuplicatesCheckAlreadySubscribedAndGetChannelsCommon(PNOperationType type, List <string> channelsOrChannelGroups, bool isChannelGroup, bool unsubscribeCheck, ref List <ChannelEntity> channelEntities)
        {
            bool bReturn = false;

            if (channelsOrChannelGroups.Count > 0)
            {
                channelsOrChannelGroups = channelsOrChannelGroups.Where(x => !string.IsNullOrEmpty(x)).ToList();

                if (channelsOrChannelGroups.Count != channelsOrChannelGroups.Distinct().Count())
                {
                    channelsOrChannelGroups = channelsOrChannelGroups.Distinct().ToList();
                    #if (ENABLE_PUBNUB_LOGGING)
                    this.PubNubInstance.PNLog.WriteToLog(string.Format("RemoveDuplicatesCheckAlreadySubscribedAndGetChannelsCommon: distinct channelsOrChannelGroups len={0}, channelsOrChannelGroups = {1}", channelsOrChannelGroups.Count, string.Join(",", channelsOrChannelGroups.ToArray())), PNLoggingMethod.LevelInfo);

                    string channel = string.Join(",", Helpers.GetDuplicates(channelsOrChannelGroups).Distinct <string> ().ToArray <string> ());

                    this.PubNubInstance.PNLog.WriteToLog(string.Format("RemoveDuplicatesCheckAlreadySubscribedAndGetChannelsCommon: duplicates channelsOrChannelGroups {0}", channel), PNLoggingMethod.LevelInfo);
                    #endif
                }
                #if (ENABLE_PUBNUB_LOGGING)
                this.PubNubInstance.PNLog.WriteToLog(string.Format("RemoveDuplicatesCheckAlreadySubscribedAndGetChannelsCommon: channelsOrChannelGroups len={0}, channelsOrChannelGroups = {1}", channelsOrChannelGroups.Count, string.Join(",", channelsOrChannelGroups.ToArray())), PNLoggingMethod.LevelInfo);
                #endif

                bReturn = CreateChannelEntityAndAddToSubscribe(type, channelsOrChannelGroups, isChannelGroup, unsubscribeCheck, ref channelEntities, PubNubInstance);
            }
            #if (ENABLE_PUBNUB_LOGGING)
            else
            {
                this.PubNubInstance.PNLog.WriteToLog(string.Format("RemoveDuplicatesCheckAlreadySubscribedAndGetChannelsCommon: channelsOrChannelGroups len <=0"), PNLoggingMethod.LevelInfo);
            }
            #endif
            return(bReturn);
        }