public UsersRepository(IOptionsMonitor <ChatOptions> chatOptions)
        {
            this.chatOptions = chatOptions.CurrentValue;
            this.chatOptions.Users ??= new List <User>();

            chatOptions.OnChange(OnChatOptionsChange);
        }
 public ApplicationFrame()
 {
     socialBot   = new DefaultBot(Util.RandomID(8));
     chatHandler = new BasicChatHandler();
     chatOptions = new ChatOptions();
     InitializeComponent();
 }
 protected BaseChatControllerTests()
 {
     Logger = A.Fake <ILogger <ChatController> >();
     FakeSessionStateService = A.Fake <ISessionStateService <SessionDataModel> >();
     ChatOptions             = new ChatOptions {
         ChatUrl = new System.Uri("https://somewhere.com/webchat")
     };
     FakeMapper = A.Fake <AutoMapper.IMapper>();
     FakeConfigurationSetDocumentService = A.Fake <IDocumentService <ConfigurationSetModel> >();
 }
 private SFDCOpportunity()
 {
     this.logger = Log.GenInstance();
     this.opportunityVoiceOptions  = Settings.OpportunityVoiceOptions;
     this.opportunityChatOptions   = Settings.OpportunityChatOptions;
     this.OpportunityLogConfig     = (Settings.VoiceActivityLogCollection.ContainsKey("opportunity")) ? Settings.VoiceActivityLogCollection["opportunity"] : null;
     this.OpportunityChatLogConfig = (Settings.ChatActivityLogCollection.ContainsKey("opportunity")) ? Settings.ChatActivityLogCollection["opportunity"] : null;
     this.OpportunityRecordConfig  = Settings.OpportunityNewRecordConfigs;
     this.sfdcObject = SFDCUtility.GetInstance();
 }
Esempio n. 5
0
        private bool CanParticipantSendPrivateChatInChannel(ChatOptions options, Participant participant,
                                                            PrivateChatChannel privateChatChannel)
        {
            if (!options.IsPrivateChatEnabled)
            {
                return(false);
            }

            return(privateChatChannel.Participants.Contains(participant.Id));
        }
Esempio n. 6
0
 private SFDCLead()
 {
     this.logger            = Log.GenInstance();
     this.sfdcObject        = SFDCUtility.GetInstance();
     this.leadVoiceOptions  = Settings.LeadVoiceOptions;
     this.leadChatOptions   = Settings.LeadChatOptions;
     this.LeadLogConfig     = (Settings.VoiceActivityLogCollection.ContainsKey("lead")) ? Settings.VoiceActivityLogCollection["lead"] : null;
     this.LeadChatLogConfig = (Settings.ChatActivityLogCollection.ContainsKey("lead")) ? Settings.ChatActivityLogCollection["lead"] : null;
     this.LeadRecordConfig  = Settings.LeadNewRecordConfigs;
 }
Esempio n. 7
0
 /// <summary>
 /// Constructor
 /// </summary>
 private SFDCContact()
 {
     this.logger              = Log.GenInstance();
     this.sfdcObject          = SFDCUtility.GetInstance();
     this.contactVoiceOptions = Settings.ContactVoiceOptions;
     this.contactChatOptions  = Settings.ContactChatOptions;
     this.ContactLogConfig    = (Settings.VoiceActivityLogCollection.ContainsKey("contact")) ? Settings.VoiceActivityLogCollection["contact"] : null;
     ContactChatLogConfig     = (Settings.ChatActivityLogCollection.ContainsKey("contact")) ? Settings.ChatActivityLogCollection["contact"] : null;
     ContactRecordConfig      = Settings.ContactNewRecordConfigs;
 }
Esempio n. 8
0
 /// <summary>
 /// Constructor
 /// </summary>
 private SFDCAccount()
 {
     this.logger = Log.GenInstance();
     this.accountVoiceOptions = Settings.AccountVoiceOptions;
     this.accountChatOptions  = Settings.AccountChatOptions;
     AccountLogConfig         = (Settings.VoiceActivityLogCollection.ContainsKey("account")) ? Settings.VoiceActivityLogCollection["account"] : null;
     AccountChatLogConfig     = (Settings.ChatActivityLogCollection.ContainsKey("account")) ? Settings.ChatActivityLogCollection["account"] : null;
     AccountRecordConfig      = Settings.AccountNewRecordConfigs;
     this.sfdcObject          = SFDCUtility.GetInstance();
 }
Esempio n. 9
0
 /// <summary>
 /// Constructor
 /// </summary>
 private SFDCCase()
 {
     this.logger             = Log.GenInstance();
     this.CaseVoiceOptions   = Settings.CaseVoiceOptions;
     this.CaseChatOptions    = Settings.CaseChatOptions;
     this.CaseLogConfig      = (Settings.VoiceActivityLogCollection.ContainsKey("case")) ? Settings.VoiceActivityLogCollection["case"] : null;
     this.CaseChatLogOptions = (Settings.ChatActivityLogCollection.ContainsKey("case")) ? Settings.ChatActivityLogCollection["case"] : null;
     this.CaseRecordConfig   = Settings.CaseNewRecordConfigs;
     this.sfdcObject         = SFDCUtility.GetInstance();
 }
Esempio n. 10
0
        public Chat()
        {
            Options = new ChatOptions();

            Application.Current.DispatcherUnhandledException += new System.Windows.Threading.DispatcherUnhandledExceptionEventHandler(UnhandledException);
            AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(AppDomainUnhandledException);

            MainOutputWindow = new ChannelWindow(this);
            MainOutputWindow.UserInput += ParseUserInput;
            MainOutputWindow.Closed += new EventHandler(channelWindow_Closed);
            MainOutputWindow.IsMainWindow = true;
            MainOutputWindow.Show();

            LoadConfigurationFile();

            bool proceed = true;
            if (Options.FirstChannel == null || Options.InitialNickname == null || Options.Server == null)
            {
                if (Options.FirstChannel == null) Options.FirstChannel = FIRST_CHANNEL;
                if (Options.FirstChannelKey == null) Options.FirstChannelKey = FIRST_CHANNEL_KEY;
                if (Options.InitialNickname == null) Options.InitialNickname = Environment.UserName;
                if (Options.Server == null) Options.Server = SERVER_ADDRESS;
                if (Options.ServerPort == 0) Options.ServerPort = SERVER_PORT;

                proceed = ShowConnectionWindow(MainOutputWindow);
            }

            if (proceed)
            {
                SaveConfigurationFile();

                IRC.ActiveChannelSyncing = true;
                IRC.AutoNickHandling = true;
                IRC.SupportNonRfc = true;
                IRC.Encoding = System.Text.Encoding.UTF8;
                IRC.OnConnected += new EventHandler(IRC_OnConnected);
                IRC.OnQueryAction += new ActionEventHandler(IRC_OnQueryAction);
                IRC.OnQueryMessage += new IrcEventHandler(IRC_OnQueryMessage);
                IRC.OnQueryNotice += new IrcEventHandler(IRC_OnQueryNotice);
                IRC.OnNickChange += new NickChangeEventHandler(IRC_OnNickChange);
                IRC.OnJoin += new JoinEventHandler(IRC_OnJoin);
            #if DEBUG
                IRC.OnRawMessage += new IrcEventHandler(IRC_OnRawMessage);
                IRC.OnWriteLine += new WriteLineEventHandler(IRC_OnWriteLine);
            #endif
                MainOutputWindow.Channel = Options.FirstChannel;
                MainOutputWindow.ChannelKey = Options.FirstChannelKey;

                channelWindows.Add(MainOutputWindow);

                LoadScripts();

                IRC.Connect(Options.Server, Options.ServerPort);
            }
        }
        internal static bool GetCanCreateProfileActivity(SFDCCallType callType, ChatOptions chatOptions, bool IsNoRecord = false)
        {
            switch (callType)
            {
            case SFDCCallType.InboundChat:
                return(IsNoRecord ? chatOptions.InbCanCreateNorecordActivity : chatOptions.InbCanCreateMultimatchActivity);

            case SFDCCallType.ConsultChatReceived:
                return(IsNoRecord ? chatOptions.ConCanCreateNorecordActivity : chatOptions.ConCanCreateMultimatchActivity);
            }
            return(false);
        }
        internal static string GetNoRecordFoundAction(SFDCCallType calltype, ChatOptions options)
        {
            switch (calltype)
            {
            case SFDCCallType.InboundChat:
                return(options.InbNoMatchRecordAction);

            case SFDCCallType.ConsultChatReceived:
                return(options.ConNoMatchRecordAction);
            }
            return(null);
        }
        internal static string GetMultiMatchRecordAction(SFDCCallType calltype, ChatOptions chatOptions)
        {
            switch (calltype)
            {
            case SFDCCallType.InboundChat:
                return(chatOptions.InbMultiMatchRecordAction);

            case SFDCCallType.ConsultVoiceReceived:
                return(chatOptions.ConMultiMatchRecordAction);
            }
            return(null);
        }
        private static IMediator CreateMediatorWithFindConference(ChatOptions options)
        {
            var mockMediator = new Mock <IMediator>();

            mockMediator.Setup(x => x.Send(It.IsAny <FindConferenceByIdRequest>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(new Conference("123")
            {
                Configuration = new ConferenceConfiguration {
                    Chat = options
                }
            });

            return(mockMediator.Object);
        }
Esempio n. 15
0
        private async ValueTask <IEnumerable <ChatChannel> > FetchPrivateChannels(ChatOptions options,
                                                                                  Participant participant)
        {
            if (!options.IsPrivateChatEnabled)
            {
                return(Enumerable.Empty <ChatChannel>());
            }

            var allChannels = await _chatRepository.FetchAllChannels(participant.ConferenceId);

            return(allChannels.Select(SynchronizedObjectId.Parse).Select(ChannelSerializer.Decode)
                   .OfType <PrivateChatChannel>()
                   .Where(x => x.Participants.Any(participantId => participantId == participant.Id)));
        }
Esempio n. 16
0
 /// <summary>
 /// Creates an Instance of the Class
 /// </summary>
 public ChatEvents()
 {
     this.logger              = Log.GenInstance();
     this.leadOptions         = Settings.LeadChatOptions;
     this.contactOptions      = Settings.ContactChatOptions;
     this.accountOptions      = Settings.AccountChatOptions;
     this.caseOptions         = Settings.CaseChatOptions;
     this.opportunityOptions  = Settings.OpportunityChatOptions;
     this.userActivityLog     = (Settings.ChatActivityLogCollection.ContainsKey("useractivity")) ? Settings.ChatActivityLogCollection["useractivity"] : null;
     this.sfdcObject          = SFDCUtility.GetInstance();
     this.activityLogs        = Settings.ChatActivityLogCollection;
     this.customObjectOptions = Settings.CustomObjectChatOptions;
     this.userActivityOptions = Settings.UserActivityChatOptions;
     this.PopupPages          = Settings.SFDCOptions.SFDCPopupPages;
 }
Esempio n. 17
0
 /// <summary>
 /// Constructor
 /// </summary>
 private SFDCAccount()
 {
     this._logger = Log.GenInstance();
     this._accountVoiceOptions      = Settings.AccountVoiceOptions;
     this._accountChatOptions       = Settings.AccountChatOptions;
     _accountLogConfig              = (Settings.VoiceActivityLogCollection.ContainsKey("account")) ? Settings.VoiceActivityLogCollection["account"] : null;
     _accountChatLogConfig          = (Settings.ChatActivityLogCollection.ContainsKey("account")) ? Settings.ChatActivityLogCollection["account"] : null;
     this._accountEmailRecordConfig = (Settings.EmailNewRecordCollection.ContainsKey("account")) ? Settings.EmailNewRecordCollection["account"] : null;
     this._accountVoiceRecordConfig = (Settings.VoiceNewRecordCollection.ContainsKey("account")) ? Settings.VoiceNewRecordCollection["account"] : null;
     this._accountChatRecordConfig  = (Settings.ChatNewRecordCollection.ContainsKey("account")) ? Settings.ChatNewRecordCollection["account"] : null;
     this._sfdcUtility              = SFDCUtility.GetInstance();
     this._accountEmailOptions      = Settings.AccountEmailOptions;
     this._accountEmailLogConfig    = Settings.EmailActivityLogCollection.ContainsKey("account") ? Settings.EmailActivityLogCollection["account"] : null;
     this._sfdcUtilityHelper        = SFDCUtiltiyHelper.GetInstance();
 }
Esempio n. 18
0
 /// <summary>
 /// Constructor
 /// </summary>
 private SFDCContact()
 {
     this.logger                   = Log.GenInstance();
     this.sfdcUtility              = SFDCUtility.GetInstance();
     this.contactVoiceOptions      = Settings.ContactVoiceOptions;
     this.contactChatOptions       = Settings.ContactChatOptions;
     this.ContactLogConfig         = (Settings.VoiceActivityLogCollection.ContainsKey("contact")) ? Settings.VoiceActivityLogCollection["contact"] : null;
     ContactChatLogConfig          = (Settings.ChatActivityLogCollection.ContainsKey("contact")) ? Settings.ChatActivityLogCollection["contact"] : null;
     this.ContactEmailRecordConfig = (Settings.EmailNewRecordCollection.ContainsKey("contact")) ? Settings.EmailNewRecordCollection["contact"] : null;
     this.ContactVoiceRecordConfig = (Settings.VoiceNewRecordCollection.ContainsKey("contact")) ? Settings.VoiceNewRecordCollection["contact"] : null;
     this.ContactChatRecordConfig  = (Settings.ChatNewRecordCollection.ContainsKey("contact")) ? Settings.ChatNewRecordCollection["contact"] : null;
     this.ContactEmailLogConfig    = (Settings.EmailActivityLogCollection.ContainsKey("contact")) ? Settings.EmailActivityLogCollection["contact"] : null;
     this.contactEmailOptions      = Settings.ContactEmailOptions;
     this.sfdcUtilityHelper        = SFDCUtiltiyHelper.GetInstance();
 }
 private SFDCOpportunity()
 {
     this._logger = Log.GenInstance();
     this._opportunityVoiceOptions      = Settings.OpportunityVoiceOptions;
     this._opportunityChatOptions       = Settings.OpportunityChatOptions;
     this._opportunityLogConfig         = (Settings.VoiceActivityLogCollection.ContainsKey("opportunity")) ? Settings.VoiceActivityLogCollection["opportunity"] : null;
     this._opportunityChatLogConfig     = (Settings.ChatActivityLogCollection.ContainsKey("opportunity")) ? Settings.ChatActivityLogCollection["opportunity"] : null;
     this._opportunityEmailRecordConfig = (Settings.EmailNewRecordCollection.ContainsKey("opportunity")) ? Settings.EmailNewRecordCollection["opportunity"] : null;
     this._opportunityVoiceRecordConfig = (Settings.VoiceNewRecordCollection.ContainsKey("opportunity")) ? Settings.VoiceNewRecordCollection["opportunity"] : null;
     this._opportunityChatRecordConfig  = (Settings.ChatNewRecordCollection.ContainsKey("opportunity")) ? Settings.ChatNewRecordCollection["opportunity"] : null;
     this._sfdcUtility               = SFDCUtility.GetInstance();
     this._sfdcUtilityHelper         = SFDCUtiltiyHelper.GetInstance();
     this._opportunityEmailLogConfig = (Settings.EmailActivityLogCollection.ContainsKey("opportunity")) ? Settings.EmailActivityLogCollection["opportunity"] : null;
     this._opportunityEmailOptions   = Settings.OpportunityEmailOptions;
 }
Esempio n. 20
0
 /// <summary>
 /// Constructor
 /// </summary>
 private SFDCCase()
 {
     this._logger                = Log.GenInstance();
     this._caseVoiceOptions      = Settings.CaseVoiceOptions;
     this._caseChatOptions       = Settings.CaseChatOptions;
     this._caseLogConfig         = (Settings.VoiceActivityLogCollection.ContainsKey("case")) ? Settings.VoiceActivityLogCollection["case"] : null;
     this._caseChatLogOptions    = (Settings.ChatActivityLogCollection.ContainsKey("case")) ? Settings.ChatActivityLogCollection["case"] : null;
     this._caseEmailRecordConfig = (Settings.EmailNewRecordCollection.ContainsKey("case")) ? Settings.EmailNewRecordCollection["case"] : null;
     this._caseVoiceRecordConfig = (Settings.VoiceNewRecordCollection.ContainsKey("case")) ? Settings.VoiceNewRecordCollection["case"] : null;
     this._caseChatRecordConfig  = (Settings.ChatNewRecordCollection.ContainsKey("case")) ? Settings.ChatNewRecordCollection["case"] : null;
     this._sfdcUtility           = SFDCUtility.GetInstance();
     this._caseEmailOptions      = Settings.CaseEmailOptions;
     this._caseEmailLogOptions   = (Settings.EmailActivityLogCollection.ContainsKey("case")) ? Settings.EmailActivityLogCollection["case"] : null;
     this._sfdcUtilityHelper     = SFDCUtiltiyHelper.GetInstance();
 }
Esempio n. 21
0
 private SFDCLead()
 {
     this.logger                 = Log.GenInstance();
     this.sfdcUtility            = SFDCUtility.GetInstance();
     this.leadVoiceOptions       = Settings.LeadVoiceOptions;
     this.leadChatOptions        = Settings.LeadChatOptions;
     this.LeadLogConfig          = (Settings.VoiceActivityLogCollection.ContainsKey("lead")) ? Settings.VoiceActivityLogCollection["lead"] : null;
     this.LeadChatLogConfig      = (Settings.ChatActivityLogCollection.ContainsKey("lead")) ? Settings.ChatActivityLogCollection["lead"] : null;
     this.LeadEmailRecordConfig  = (Settings.EmailNewRecordCollection.ContainsKey("lead")) ? Settings.EmailNewRecordCollection["lead"] : null;
     this.LeadVoiceRecordConfig  = (Settings.VoiceNewRecordCollection.ContainsKey("lead")) ? Settings.VoiceNewRecordCollection["lead"] : null;
     this.LeadChatRecordConfig   = (Settings.ChatNewRecordCollection.ContainsKey("lead")) ? Settings.ChatNewRecordCollection["lead"] : null;
     this.LeadEmailLogConfig     = (Settings.EmailActivityLogCollection.ContainsKey("lead")) ? Settings.EmailActivityLogCollection["lead"] : null;
     this.LeadEmailWorkbinConfig = (Settings.EmailActivityLogCollection.ContainsKey("workbin")) ? Settings.EmailActivityLogCollection["workbin"] : null;
     this.leadEmailOptions       = Settings.LeadEmailOptions;
     this.sfdcUtilityHelper      = SFDCUtiltiyHelper.GetInstance();
 }
Esempio n. 22
0
        public Bot(IOptions <Tokens> tokens, IOptions <ChatOptions> chatOptions, ILogger <Bot> logger, TelegramUrlService urlService)
        {
            _tokens      = tokens.Value;
            _chatOptions = chatOptions.Value;
            _logger      = logger;
            _urlService  = urlService;

            _telegram = new TelegramBotClient(_tokens.Telegram);

            var discordConnected = new TaskCompletionSource <object>();

            EnsureDiscordConnected = () => discordConnected.Task;
            _discord.Ready        += async() => discordConnected.TrySetResult(null);

            _telegramConverter = new TelegramMessageConverter(DiscordMessageLengthLimit, GetFileUrl);
        }
Esempio n. 23
0
 /// <summary>
 /// Creates an Instance of the Class
 /// </summary>
 public ChatManager()
 {
     this._logger              = Log.GenInstance();
     this._leadOptions         = Settings.LeadChatOptions;
     this._contactOptions      = Settings.ContactChatOptions;
     this._accountOptions      = Settings.AccountChatOptions;
     this._caseOptions         = Settings.CaseChatOptions;
     this._opportunityOptions  = Settings.OpportunityChatOptions;
     this._userActivityLog     = (Settings.ChatActivityLogCollection.ContainsKey("useractivity")) ? Settings.ChatActivityLogCollection["useractivity"] : null;
     this._sFDCUtility         = SFDCUtility.GetInstance();
     this._activityLogs        = Settings.ChatActivityLogCollection;
     this._customObjectOptions = Settings.CustomObjectChatOptions;
     this._userActivityOptions = Settings.UserActivityChatOptions;
     this._popupPages          = Settings.SFDCOptions.SFDCPopupPages;
     this._generalOptions      = Settings.SFDCOptions;
     this._sfdcUtilityHelper   = SFDCUtiltiyHelper.GetInstance();
 }
Esempio n. 24
0
        private string GetNoRecordFoundAction(SFDCCallType calltype, ChatOptions options)
        {
            string NoMatchRecordAction = string.Empty;

            switch (calltype)
            {
            case SFDCCallType.InboundChat:
                NoMatchRecordAction = options.InbNoMatchRecordAction;
                break;

            case SFDCCallType.ConsultChatFailure:
            case SFDCCallType.ConsultChatReceived:
            case SFDCCallType.ConsultChatSuccess:
                NoMatchRecordAction = options.ConNoMatchRecordAction;
                break;
            }
            return(NoMatchRecordAction);
        }
Esempio n. 25
0
        public AutoMessage(WinterBot bot)
        {
            m_bot = bot;
            var options = bot.Options;
            m_msgOptions = options.AutoMessageOptions;
            m_chatOptions = options.ChatOptions;

            if (ShouldEnable)
                Enable();

            if (!string.IsNullOrEmpty(m_chatOptions.SubscribeMessage))
                bot.UserSubscribed += bot_UserSubscribed;

            if (!string.IsNullOrEmpty(m_chatOptions.FollowMessage))
                bot.UserFollowed += bot_UserFollowed;

            bot.StreamOnline += bot_StreamOnline;
            bot.StreamOffline += bot_StreamOffline;
        }
Esempio n. 26
0
        public AutoMessage(WinterBot bot)
        {
            var options = bot.Options;
            m_msgOptions = options.AutoMessageOptions;
            m_chatOptions = options.ChatOptions;

            // TODO: respond to property changed on these
            if (m_msgOptions.Enabled)
            {
                if (m_msgOptions.MessageDelay > 0)
                    bot.MessageReceived += bot_MessageReceived;

                bot.Tick += bot_Tick;
            }

            if (!string.IsNullOrEmpty(m_chatOptions.SubscribeMessage))
                bot.UserSubscribed += bot_UserSubscribed;

            if (!string.IsNullOrEmpty(m_chatOptions.FollowMessage))
                bot.UserFollowed += bot_UserFollowed;
        }
Esempio n. 27
0
        private async ValueTask <ChatChannel?> GetParticipantRoomChatChannel(ChatOptions options,
                                                                             Participant participant)
        {
            if (!options.IsRoomChatEnabled)
            {
                return(null);
            }

            var roomId = await _roomRepository.GetRoomOfParticipant(participant);

            if (roomId == null)
            {
                return(null);
            }

            if (options.IsDefaultRoomChatDisabled && roomId == RoomOptions.DEFAULT_ROOM_ID)
            {
                return(null);
            }

            return(new RoomChatChannel(roomId));
        }
Esempio n. 28
0
 private bool IsGlobalChatAvailable(ChatOptions options)
 {
     return(options.IsGlobalChatEnabled);
 }
Esempio n. 29
0
        private static void ReadCustomObjectConfigurations(string sfdcObjectName)
        {
            try
            {
                _logger.Info("Initialize: Reading CustomObject Configuration and Initializing Properties......");
                _logger.Info("Initialize: Object Name : " + sfdcObjectName);
                KeyValueCollection customConfig = ReadConfiguration.GetInstance().ReadSFDCUtilityConfig(AgentDetails.MyApplication, AgentDetails.AgentGroups, AgentDetails.Person, sfdcObjectName);
                if (customConfig != null)
                {
                    CustomObjectConfigs.Add(sfdcObjectName, customConfig);
                    if (IsVoiceEnabled)
                    {
                        _logger.Info("Reading Voice Options for the " + sfdcObjectName + " object");
                        VoiceNewRecordCollection.Add(sfdcObjectName, ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, AgentDetails.Person.Tenant.DBID, SFDCOptions.NewRecordDataBusinessAttribute, "voice." + sfdcObjectName));
                        VoiceOptions voiceOptions = ReadProperties.GetInstance().GetSFDCObjectVoiceProperties(customConfig, sfdcObjectName);
                        if (voiceOptions != null)
                        {
                            if (voiceOptions.ObjectName != null && !CustomObjectNames.ContainsKey(voiceOptions.ObjectName + ","))
                            {
                                CommonPopupObjects += voiceOptions.ObjectName + ",";
                                CustomObjectNames.Add(voiceOptions.ObjectName, sfdcObjectName);
                            }
                            CustomObjectVoiceOptions.Add(sfdcObjectName, voiceOptions);
                        }
                        ConfigData = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, AgentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "voice." + sfdcObjectName);
                        if (ConfigData != null)
                        {
                            VoiceActivityLogCollection.Add(sfdcObjectName, ConfigData);
                        }
                    }

                    if (IsChatEnabled)
                    {
                        _logger.Info("Reading Chat Options for the " + sfdcObjectName + " object");
                        ChatNewRecordCollection.Add(sfdcObjectName, ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, AgentDetails.Person.Tenant.DBID, SFDCOptions.NewRecordDataBusinessAttribute, "chat." + sfdcObjectName));
                        ChatOptions chatOptions = ReadProperties.GetInstance().GetSFDCObjectChatProperties(customConfig, sfdcObjectName);
                        if (chatOptions != null)
                        {
                            if (chatOptions.ObjectName != null && !CustomObjectNames.ContainsKey(chatOptions.ObjectName + ","))
                            {
                                CommonPopupObjects += chatOptions.ObjectName + ",";
                                CustomObjectNames.Add(chatOptions.ObjectName, sfdcObjectName);
                            }
                            CustomObjectChatOptions.Add(sfdcObjectName, chatOptions);
                        }
                        ConfigData = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, AgentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "chat." + sfdcObjectName);
                        if (ConfigData != null)
                        {
                            ChatActivityLogCollection.Add(sfdcObjectName, ConfigData);
                        }
                    }

                    if (IsEmailEnabled)
                    {
                        _logger.Info("Reading Email Options for the " + sfdcObjectName + " object");
                        EmailOptions emailOptions = ReadProperties.GetInstance().GetSFDCObjectEmailProperties(customConfig, sfdcObjectName);
                        if (emailOptions != null)
                        {
                            if (emailOptions.ObjectName != null && !CustomObjectNames.ContainsKey(emailOptions.ObjectName + ","))
                            {
                                CommonPopupObjects += emailOptions.ObjectName + ",";
                                CustomObjectNames.Add(emailOptions.ObjectName, sfdcObjectName);
                            }
                            CustomObjectEmailOptions.Add(sfdcObjectName, emailOptions);
                        }
                        EmailNewRecordCollection.Add(sfdcObjectName, ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, AgentDetails.Person.Tenant.DBID, SFDCOptions.NewRecordDataBusinessAttribute, "email." + sfdcObjectName));
                        ConfigData = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, AgentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "email." + sfdcObjectName);
                        if (ConfigData != null)
                        {
                            EmailActivityLogCollection.Add(sfdcObjectName, ConfigData);
                        }
                    }
                }
                else
                {
                    _logger.Info("Initialize: CustomObject Configuration Not Found.");
                }
            }
            catch (Exception generalException)
            {
                _logger.Error("Error occurred in CustomObjectConfigurations() method, Exception:" + generalException.ToString());
            }
        }
Esempio n. 30
0
        /// <summary>
        /// Gets Custom Object Chat Popup Data
        /// </summary>
        /// <param name="message"></param>
        /// <param name="callType"></param>
        /// <param name="objectName"></param>
        /// <returns></returns>
        public CustomObjectData GetCustomObjectChatPopupData(IXNCustomData chatData, SFDCCallType callType, string objectName)
        {
            try
            {
                IMessage message = chatData.InteractionEvent;
                this.logger.Info("GetCustomObjectChatPopupData :  Reading CustomObject Chat Popup Data.....");
                this.logger.Info("GetCustomObjectChatPopupData :  Event Name : " + message.Name);
                this.logger.Info("GetCustomObjectChatPopupData :  CallType Name : " + callType.ToString());
                dynamic popupEvent = Convert.ChangeType(message, message.GetType());

                if (popupEvent != null && customchatOptions.ContainsKey(objectName))
                {
                    CustomObjectData custom = new CustomObjectData();
                    ChatOptions      customObjectOptions = customchatOptions[objectName];

                    #region Collect CustomObject Popup data

                    custom.SearchData                             = this.sfdcUtilityHelper.GetChatSearchValue(customObjectOptions, chatData, callType);
                    custom.ObjectName                             = customObjectOptions.ObjectName;
                    custom.NoRecordFound                          = SFDCObjectHelper.GetNoRecordFoundAction(callType, customObjectOptions);
                    custom.MultipleMatchRecord                    = SFDCObjectHelper.GetMultiMatchRecordAction(callType, customObjectOptions);
                    custom.NewRecordFieldIds                      = customObjectOptions.NewrecordFieldIds;
                    custom.SearchCondition                        = customObjectOptions.SearchCondition;
                    custom.CreateLogForNewRecord                  = customObjectOptions.CanCreateLogForNewRecordCreate;
                    custom.MaxRecordOpenCount                     = customObjectOptions.MaxNosRecordOpen;
                    custom.SearchpageMode                         = customObjectOptions.SearchPageMode;
                    custom.CustomObjectURL                        = customObjectOptions.CustomObjectURL;
                    custom.PhoneNumberSearchFormat                = customObjectOptions.PhoneNumberSearchFormat;
                    custom.CanCreateNoRecordActivityLog           = SFDCObjectHelper.GetCanCreateProfileActivity(callType, customObjectOptions, true);
                    custom.CanPopupNoRecordActivityLog            = SFDCObjectHelper.GetCanPopupProfileActivity(callType, customObjectOptions, true);
                    custom.CanCreateMultiMatchActivityLog         = SFDCObjectHelper.GetCanCreateProfileActivity(callType, customObjectOptions);
                    custom.CanPopupMultiMatchActivityLog          = SFDCObjectHelper.GetCanPopupProfileActivity(callType, customObjectOptions);
                    custom.CanCreateProfileActivityforInbNoRecord = customObjectOptions.CanCreateProfileActivityforInbNoRecord;
                    if (CustomChatRecordConfigs != null && CustomChatRecordConfigs.ContainsKey(objectName))
                    {
                        KeyValueCollection RecordConfig = CustomChatRecordConfigs[objectName];
                        if (RecordConfig != null)
                        {
                            if (custom.NoRecordFound.Equals("createnew"))
                            {
                                custom.CreateRecordFieldData = this.sfdcUtility.GetCreateActivityLogData(RecordConfig, message, callType, emailData: chatData);
                            }
                        }
                    }
                    KeyValueCollection LogConfig = null;
                    if (this.CustomChatLogConfigs != null && this.CustomChatLogConfigs.ContainsKey(objectName))
                    {
                        LogConfig = this.CustomChatLogConfigs[objectName];
                    }

                    if (callType == SFDCCallType.InboundChat)
                    {
                        custom.CreateActvityLog = customObjectOptions.InboundCanCreateLog;
                        if (LogConfig != null)
                        {
                            if (customObjectOptions.InboundCanCreateLog)
                            {
                                custom.ActivityLogData = this.sfdcUtility.GetCreateActivityLogData(LogConfig, popupEvent, callType, emailData: chatData);
                            }
                        }
                    }
                    else if (callType == SFDCCallType.ConsultChatReceived)
                    {
                        custom.CreateActvityLog = customObjectOptions.ConsultCanCreateLog;
                        if (LogConfig != null)
                        {
                            if (customObjectOptions.ConsultCanCreateLog)
                            {
                                custom.ActivityLogData = this.sfdcUtility.GetCreateActivityLogData(LogConfig, popupEvent, callType, emailData: chatData);
                            }
                        }
                    }
                    return(custom);
                }

                #endregion Collect CustomObject Popup data
            }
            catch (Exception generalException)
            {
                this.logger.Error("GetCustomObjectChatPopupData : Error occurred  : " + generalException.ToString());
            }
            return(null);
        }
Esempio n. 31
0
        void LoadOptions(Options options)
        {
            m_options = options;
            m_chatOptions = options.ChatOptions;
            m_urlOptions = options.UrlOptions;
            m_capsOptions = options.CapsOptions;
            m_lengthOptions = options.LengthOptions;
            m_symbolOptions = options.SymbolOptions;
            m_emoteOptions = options.EmoteOptions;

            // Load url lists
            m_urlWhitelist = new List<Regex>(m_urlOptions.Whitelist.Select(s => new Regex(s, RegexOptions.IgnoreCase)));
            m_urlBlacklist = new List<Regex>(m_urlOptions.Blacklist.Select(s => new Regex(s, RegexOptions.IgnoreCase)));
            m_urlBanlist = new List<Regex>(m_urlOptions.Banlist.Select(s => new Regex(s, RegexOptions.IgnoreCase)));

            // Load URL extensions
            m_urlExtensions = new HashSet<string>(s_urlExtensions.Split(','));
        }
Esempio n. 32
0
        public CustomObjectData GetCustomObjectChatUpdateData(IXNCustomData chatData, string objectName, string eventName)
        {
            try
            {
                IMessage     message      = chatData.InteractionEvent;
                SFDCCallType callType     = chatData.InteractionType;
                string       callDuration = chatData.Duration;
                this.logger.Info("GetCustomObjectChatUpdateData :  Reading CustomObject Chat Update Data.....");
                this.logger.Info("GetCustomObjectChatUpdateData :  Event Name : " + message.Name);
                dynamic popupEvent = Convert.ChangeType(message, message.GetType());

                if (popupEvent != null && customchatOptions.ContainsKey(objectName))
                {
                    CustomObjectData   customObject              = new CustomObjectData();
                    ChatOptions        currentObjectOptions      = this.customchatOptions[objectName];
                    KeyValueCollection currentObjectLogConfigs   = null;
                    KeyValueCollection currentObjectRecordConfig = null;
                    if (CustomChatLogConfigs != null && CustomChatLogConfigs.ContainsKey(objectName))
                    {
                        currentObjectLogConfigs = CustomChatLogConfigs[objectName];
                    }
                    if (CustomChatRecordConfigs != null && CustomChatRecordConfigs.ContainsKey(objectName))
                    {
                        currentObjectRecordConfig = CustomChatRecordConfigs[objectName];
                    }

                    #region Collect customObject Data

                    customObject.ObjectName = currentObjectOptions.ObjectName;

                    if (callType == SFDCCallType.InboundChat)
                    {
                        if (currentObjectOptions.InboundCanUpdateLog)
                        {
                            customObject.UpdateActivityLog     = true;
                            customObject.UpdateActivityLogData = this.sfdcUtility.GetUpdateActivityLogData(currentObjectLogConfigs, popupEvent, callType, callDuration, emailData: chatData);
                            if (!string.IsNullOrWhiteSpace(currentObjectOptions.ChatAppendActivityLogEventNames) && currentObjectOptions.ChatAppendActivityLogEventNames.Contains(eventName))
                            {
                                customObject.AppendActivityLogData = this.sfdcUtility.GetUpdateActivityLogData(currentObjectLogConfigs, null, callType, callDuration, emailData: chatData, isAppendLogData: true);
                            }
                        }
                    }
                    if (callType == SFDCCallType.ConsultChatReceived)
                    {
                        if (currentObjectOptions.ConsultCanUpdateLog)
                        {
                            customObject.UpdateActivityLog     = true;
                            customObject.UpdateActivityLogData = this.sfdcUtility.GetUpdateActivityLogData(currentObjectLogConfigs, popupEvent, callType, callDuration, emailData: chatData);
                            if (!string.IsNullOrWhiteSpace(currentObjectOptions.ChatAppendActivityLogEventNames) && currentObjectOptions.ChatAppendActivityLogEventNames.Contains(eventName))
                            {
                                customObject.AppendActivityLogData = this.sfdcUtility.GetUpdateActivityLogData(currentObjectLogConfigs, null, callType, callDuration, emailData: chatData, isAppendLogData: true);
                            }
                        }
                    }

                    //update CustomObject record fields
                    customObject.UpdateRecordFields = customchatOptions[objectName].CanUpdateRecordData;
                    if (SFDCObjectHelper.GetNoRecordFoundAction(callType, customchatOptions[objectName]).Equals("createnew") && this.CustomChatRecordConfigs[objectName] != null)
                    {
                        if (customchatOptions[objectName].CanUpdateRecordData)
                        {
                            customObject.UpdateRecordFieldsData = this.sfdcUtility.GetUpdateActivityLogData(this.CustomChatRecordConfigs[objectName], popupEvent, callType, callDuration, emailData: chatData);
                        }
                    }

                    #endregion Collect customObject Data

                    return(customObject);
                }
            }
            catch (Exception generalException)
            {
                this.logger.Error("GetCustomObjectChatUpdateData : Error occurred : " + generalException.ToString());
            }
            return(null);
        }
Esempio n. 33
0
		public User()
			: base()
		{
			this.ChatOptions = ChatOptions.NotifyOnFriendLogIn;
		}
Esempio n. 34
0
        public static void InitializeUtils(ISFDCListener _subscirber, IAgentDetails _agentDetails, IConfService _confService)
        {
            try
            {
                logger = Log.GenInstance();
                logger.Info("InitializeUtils : Reading Configuration and Initializing Properties......");
                AgentDetails  = _agentDetails;
                ConfigService = _confService;
                SFDCListener  = _subscirber;

                foreach (string sfdcObject in SFDCOptions.SFDCPopupPages)
                {
                    KeyValueCollection ConfigData = null;
                    if (sfdcObject == "lead")
                    {
                        CommonPopupObjects += "Lead,";
                        logger.Info("InitializeUtils : Reading SFDCLead Configuration and Initializing Properties......");
                        LeadConfigs = ReadConfiguration.GetInstance().ReadSFDCObjectConfig(_agentDetails.MyApplication, _agentDetails.AgentGroups, _agentDetails.Person, sfdcObject);
                        if (LeadConfigs != null)
                        {
                            LeadVoiceOptions = ReadProperties.GetInstance().GetSFDCObjectVoiceProperties(LeadConfigs, sfdcObject);
                            LeadChatOptions  = ReadProperties.GetInstance().GetSFDCObjectChatProperties(LeadConfigs, sfdcObject);

                            ConfigData = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "voice." + sfdcObject);
                            if (ConfigData != null)
                            {
                                VoiceActivityLogCollection.Add(sfdcObject, ConfigData);
                            }

                            ConfigData = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "chat." + sfdcObject);
                            if (ConfigData != null)
                            {
                                ChatActivityLogCollection.Add(sfdcObject, ConfigData);
                            }

                            LeadNewRecordConfigs = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.NewRecordDataBusinessAttribute, sfdcObject);
                        }
                        else
                        {
                            logger.Info("InitializeUtils : No Lead Configuration Found.");
                        }
                    }
                    else if (sfdcObject == "contact")
                    {
                        CommonPopupObjects += "Contact,";
                        logger.Info("InitializeUtils : Reading SFDCContact Configuration and Initializing Properties......");
                        ContactConfigs = ReadConfiguration.GetInstance().ReadSFDCObjectConfig(_agentDetails.MyApplication, _agentDetails.AgentGroups, _agentDetails.Person, sfdcObject);
                        if (ContactConfigs != null)
                        {
                            ContactVoiceOptions = ReadProperties.GetInstance().GetSFDCObjectVoiceProperties(ContactConfigs, sfdcObject);
                            ContactChatOptions  = ReadProperties.GetInstance().GetSFDCObjectChatProperties(ContactConfigs, sfdcObject);

                            ConfigData = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "voice." + sfdcObject);
                            if (ConfigData != null)
                            {
                                VoiceActivityLogCollection.Add(sfdcObject, ConfigData);
                            }

                            ConfigData = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "chat." + sfdcObject);
                            if (ConfigData != null)
                            {
                                ChatActivityLogCollection.Add(sfdcObject, ConfigData);
                            }

                            ContactNewRecordConfigs = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.NewRecordDataBusinessAttribute, sfdcObject);
                        }
                        else
                        {
                            logger.Info("InitializeUtils : No Contact Configuration Found.");
                        }
                    }
                    else if (sfdcObject == "account")
                    {
                        CommonPopupObjects += "Account,";
                        logger.Info("InitializeUtils : Reading SFDCAccount Configuration and Initializing Properties......");
                        AccountConfigs = ReadConfiguration.GetInstance().ReadSFDCObjectConfig(_agentDetails.MyApplication, _agentDetails.AgentGroups, _agentDetails.Person, sfdcObject);
                        if (AccountConfigs != null)
                        {
                            AccountVoiceOptions = ReadProperties.GetInstance().GetSFDCObjectVoiceProperties(AccountConfigs, sfdcObject);
                            AccountChatOptions  = ReadProperties.GetInstance().GetSFDCObjectChatProperties(AccountConfigs, sfdcObject);

                            AccountNewRecordConfigs = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.NewRecordDataBusinessAttribute, sfdcObject);

                            ConfigData = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "voice." + sfdcObject);
                            if (ConfigData != null)
                            {
                                VoiceActivityLogCollection.Add(sfdcObject, ConfigData);
                            }

                            ConfigData = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "chat." + sfdcObject);
                            if (ConfigData != null)
                            {
                                ChatActivityLogCollection.Add(sfdcObject, ConfigData);
                            }
                        }
                        else
                        {
                            logger.Info("InitializeUtils : No Account Configuration Found.");
                        }
                    }
                    else if (sfdcObject == "case")
                    {
                        CommonPopupObjects += "Case,";
                        logger.Info("InitializeUtils : Reading SFDCCase Configuration and Initializing Properties......");
                        CaseConfigs = ReadConfiguration.GetInstance().ReadSFDCObjectConfig(_agentDetails.MyApplication, _agentDetails.AgentGroups, _agentDetails.Person, sfdcObject);
                        if (CaseConfigs != null)
                        {
                            CaseVoiceOptions     = ReadProperties.GetInstance().GetSFDCObjectVoiceProperties(CaseConfigs, sfdcObject);
                            CaseChatOptions      = ReadProperties.GetInstance().GetSFDCObjectChatProperties(CaseConfigs, sfdcObject);
                            CaseNewRecordConfigs = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.NewRecordDataBusinessAttribute, sfdcObject);

                            ConfigData = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "voice." + sfdcObject);
                            if (ConfigData != null)
                            {
                                VoiceActivityLogCollection.Add(sfdcObject, ConfigData);
                            }

                            ConfigData = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "chat." + sfdcObject);
                            if (ConfigData != null)
                            {
                                ChatActivityLogCollection.Add(sfdcObject, ConfigData);
                            }
                        }
                        else
                        {
                            logger.Info("InitializeUtils : No Case Configuration Found.");
                        }
                    }
                    else if (sfdcObject == "opportunity")
                    {
                        CommonPopupObjects += "Opportunity,";
                        logger.Info("InitializeUtils : Reading SFDCOpportunity Configuration and Initializing Properties......");
                        OpportunityConfigs = ReadConfiguration.GetInstance().ReadSFDCObjectConfig(_agentDetails.MyApplication, _agentDetails.AgentGroups, _agentDetails.Person, sfdcObject);
                        if (OpportunityConfigs != null)
                        {
                            OpportunityVoiceOptions     = ReadProperties.GetInstance().GetSFDCObjectVoiceProperties(OpportunityConfigs, sfdcObject);
                            OpportunityChatOptions      = ReadProperties.GetInstance().GetSFDCObjectChatProperties(OpportunityConfigs, sfdcObject);
                            OpportunityNewRecordConfigs = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.NewRecordDataBusinessAttribute, sfdcObject);

                            ConfigData = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "voice." + sfdcObject);
                            if (ConfigData != null)
                            {
                                VoiceActivityLogCollection.Add(sfdcObject, ConfigData);
                            }

                            ConfigData = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "chat." + sfdcObject);
                            if (ConfigData != null)
                            {
                                ChatActivityLogCollection.Add(sfdcObject, ConfigData);
                            }
                        }
                        else
                        {
                            logger.Info("InitializeUtils : No Opportunity Configuration Found.");
                        }
                    }
                    else if (sfdcObject.Contains("customobject"))
                    {
                        logger.Info("InitializeUtils : Reading SFDCCustomObject Configuration and Initializing Properties......");
                        logger.Info("InitializeUtils : Object Name : " + sfdcObject);
                        KeyValueCollection customConfig = ReadConfiguration.GetInstance().ReadSFDCObjectConfig(_agentDetails.MyApplication, _agentDetails.AgentGroups, _agentDetails.Person, sfdcObject);
                        if (customConfig != null)
                        {
                            CustomObjectConfigs.Add(sfdcObject, customConfig);
                            VoiceOptions voiceOptions = ReadProperties.GetInstance().GetSFDCObjectVoiceProperties(customConfig, sfdcObject);
                            if (voiceOptions != null)
                            {
                                if (voiceOptions.ObjectName != null)
                                {
                                    CommonPopupObjects += voiceOptions.ObjectName + ",";
                                    CustomObjectNames.Add(voiceOptions.ObjectName, sfdcObject);
                                }
                                CustomObjectVoiceOptions.Add(sfdcObject, voiceOptions);
                            }
                            ChatOptions chatOptions = ReadProperties.GetInstance().GetSFDCObjectChatProperties(customConfig, sfdcObject);
                            if (chatOptions != null)
                            {
                                CustomObjectChatOptions.Add(sfdcObject, chatOptions);
                            }
                            CustomObjectNewRecordConfigs.Add(sfdcObject, ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.NewRecordDataBusinessAttribute, sfdcObject));

                            ConfigData = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "voice." + sfdcObject);
                            if (ConfigData != null)
                            {
                                VoiceActivityLogCollection.Add(sfdcObject, ConfigData);
                            }

                            ConfigData = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "chat." + sfdcObject);
                            if (ConfigData != null)
                            {
                                ChatActivityLogCollection.Add(sfdcObject, ConfigData);
                            }
                        }
                        else
                        {
                            logger.Info("InitializeUtils : No Configuration Found for the CustomObject : " + sfdcObject);
                        }
                    }
                    else if (sfdcObject == "useractivity")
                    {
                        logger.Info("InitializeUtils : Reading SFDCUserActivity Configuration and Initializing Properties......");
                        UserActivityConfigs = ReadConfiguration.GetInstance().ReadSFDCObjectConfig(_agentDetails.MyApplication, _agentDetails.AgentGroups, _agentDetails.Person, sfdcObject);
                        if (UserActivityConfigs != null)
                        {
                            UserActivityVoiceOptions = ReadProperties.GetInstance().GetSFDCUserActivityVoiceProperties(UserActivityConfigs, sfdcObject);
                            KeyValueCollection voiceUserActivityLog = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "voice." + sfdcObject);
                            if (voiceUserActivityLog != null)
                            {
                                VoiceActivityLogCollection.Add(sfdcObject, voiceUserActivityLog);
                            }
                            UserActivityChatOptions = ReadProperties.GetInstance().GetSFDCUserActivityChatProperties(UserActivityConfigs, sfdcObject);
                            KeyValueCollection chatuseractivitylog = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "chat." + sfdcObject);
                            if (chatuseractivitylog != null)
                            {
                                ChatActivityLogCollection.Add(sfdcObject, chatuseractivitylog);
                            }
                        }
                        else
                        {
                            logger.Info("InitializeUtils : No SFDCUserActivity Configuration Found.");
                        }
                    }
                }
                if (!String.IsNullOrEmpty(CommonPopupObjects))
                {
                    CommonPopupObjects = CommonPopupObjects.Substring(0, CommonPopupObjects.Length - 1);
                }
                if (SFDCOptions.CanUseCommonSearchData)
                {
                    //Read business attribute for Profile level activity
                    if (!string.IsNullOrWhiteSpace(SFDCOptions.ProfileActivityBusinessAttributeName))
                    {
                        ProfileLevelActivity = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.ProfileActivityBusinessAttributeName, "voice.useractivity");
                    }
                    else
                    {
                        logger.Info("ProfileLevel Activity Log Creation is not configured");
                    }
                }
            }
            catch (Exception generalException)
            {
                logger.Error("InitializeUtils : Error Occurred while Reading SFDC Object configurations : " + generalException.ToString());
            }
        }
Esempio n. 35
0
        void LoadOptions(WinterBot bot)
        {
            Options options = bot.Options;
            m_options = options;
            m_chatOptions = options.ChatOptions;
            m_urlOptions = options.UrlOptions;
            m_capsOptions = options.CapsOptions;
            m_lengthOptions = options.LengthOptions;
            m_symbolOptions = options.SymbolOptions;
            m_emoteOptions = options.EmoteOptions;
            m_banWordOptions = options.BanWordOptions;

            // Load url lists
            m_urlWhitelist = new List<RegexMatch>(m_urlOptions.Whitelist.Select(s => new UrlMatch(bot, s)));
            m_urlBlacklist = new List<RegexMatch>(m_urlOptions.Blacklist.Select(s => new UrlMatch(bot, s)));
            m_urlBanlist = new List<RegexMatch>(m_urlOptions.Banlist.Select(s => new UrlMatch(bot, s)));
            m_wordBanlist = new List<RegexMatch>(m_banWordOptions.BanList.Select(s => new WordMatch(bot, s)));
        }
 /// <summary>
 /// Gets Voice search Valus
 /// </summary>
 /// <param name="userData"></param>
 /// <param name="message"></param>
 /// <param name="chatOptions"></param>
 /// <param name="callType"></param>
 /// <returns></returns>
 private string GetChatSearchValue(KeyValueCollection userData, IMessage message, ChatOptions chatOptions, SFDCCallType callType)
 {
     try
     {
         this.logger.Info("GetChatSearchValue :  Reading Custom Popup Data.....");
         this.logger.Info("GetChatSearchValue :  UserData Name : " + Convert.ToString(userData));
         this.logger.Info("GetChatSearchValue :  Event Name : " + message.Name);
         this.logger.Info("GetChatSearchValue :  CallType Name : " + callType.ToString());
         string[] userDataSearchKeys  = null;
         string[] attributeSearchKeys = null;
         string   searchValue         = string.Empty;
         if (callType == SFDCCallType.InboundChat)
         {
             userDataSearchKeys  = (chatOptions.InboundSearchUserDataKeys != null) ? chatOptions.InboundSearchUserDataKeys.Split(',') : null;
             attributeSearchKeys = (chatOptions.InboundSearchAttributeKeys != null) ? chatOptions.InboundSearchAttributeKeys.Split(',') : null;
         }
         else if (callType == SFDCCallType.ConsultChatReceived)
         {
             userDataSearchKeys  = (chatOptions.ConsultSearchUserDataKeys != null) ? chatOptions.ConsultSearchUserDataKeys.Split(',') : null;
             attributeSearchKeys = (chatOptions.ConsultSearchAttributeKeys != null) ? chatOptions.ConsultSearchAttributeKeys.Split(',') : null;
         }
         if (chatOptions.SearchPriority == "user-data")
         {
             searchValue = this.sfdcObject.GetUserDataSearchValues(userData, userDataSearchKeys);
         }
         else if (chatOptions.SearchPriority == "attribute")
         {
             searchValue = this.sfdcObject.GetAttributeSearchValues(message, attributeSearchKeys);
         }
         else if (chatOptions.SearchPriority == "both")
         {
             searchValue = this.sfdcObject.GetUserDataSearchValues(userData, userDataSearchKeys);
             if (searchValue != string.Empty)
             {
                 string temp = this.sfdcObject.GetAttributeSearchValues(message, attributeSearchKeys);
                 if (temp != string.Empty)
                 {
                     searchValue += "," + temp;
                 }
             }
             else
             {
                 searchValue = this.sfdcObject.GetAttributeSearchValues(message, attributeSearchKeys);
             }
         }
         return(searchValue);
     }
     catch (Exception generalException)
     {
         this.logger.Error("GetChatSearchValue : Error occurred while reading Search Values : " + generalException.ToString());
     }
     return(null);
 }