public async Task <IRestResponse> RegisterDomainToWhitelist(IMessagingHubSender sender, List <string> urls)
        {
            var pageAccessToken = await GetPageAccessToken(sender);

            if (pageAccessToken.Trim().IsNullOrEmpty())
            {
                throw (new Exception("Could not get PageAccessToken"));
            }

            var client  = new RestClient("https://graph.facebook.com/v2.6/me");
            var request = new RestRequest("thread_settings?access_token={PageAccessToken}", Method.POST);

            request.AddUrlSegment("PageAccessToken", pageAccessToken);

            var UrlList = new List <string>();

            foreach (var url in urls)
            {
                UrlList.Add(url);
            }
            var UrlListJson = JsonConvert.SerializeObject(UrlList);

            request.AddParameter("setting_type", "domain_whitelisting");
            request.AddParameter("whitelisted_domains", UrlListJson);
            request.AddParameter("domain_action_type", "add");
            request.AddHeader("Content-Type", "application/json");

            var result = await client.ExecuteTaskAsync(request);

            return(result);
        }
        private async Task <string> GetPageAccessToken(IMessagingHubSender sender)
        {
            JToken JValuePageAccessToken = "";

            try
            {
                var commandResponse = await sender.SendCommandAsync(new Command()
                {
                    Id = EnvelopeId.NewId(), Method = CommandMethod.Get, Uri = new LimeUri("/configuration/caller")
                });

                foreach (var item in (commandResponse.Resource as DocumentCollection).Items)
                {
                    JToken JValueKey   = "";
                    var    JObjectItem = JObject.FromObject(item);
                    var    foundKey    = JObjectItem.TryGetValue("name", out JValueKey);
                    if ((JValueKey as JValue).Value.ToString().Equals("PageAccessToken"))
                    {
                        var foundValue = JObjectItem.TryGetValue("value", out JValuePageAccessToken);
                        break;
                    }
                }
            }
            catch (Exception e)
            {
                throw new Exception("Error trying to get PageAccessToken", e);
            }

            return((JValuePageAccessToken as JValue).Value.ToString());
        }
Beispiel #3
0
 public SavePhoneNumber(
     IMessagingHubSender sender, IStateManager stateManager, ISMSAuthenticator smsAuthenticator,
     Settings settings, RoutineRepository routineRepository, ReschedulerTask reschedulerTask)
     : base(sender, stateManager, settings, routineRepository, reschedulerTask)
 {
     _smsAuthenticator = smsAuthenticator;
 }
 protected EnvelopeReceivedHandler(
     IMessagingHubSender sender,
     EnvelopeReceiverManager registrar,
     CancellationTokenSource cts)
 {
     Sender               = sender;
     _registrar           = registrar;
     _cts                 = cts;
     _envelopeActionBlock = new ActionBlock <TEnvelope>(async envelope =>
     {
         try
         {
             await CallReceiversAsync(envelope, _cts.Token);
         }
         catch (Exception ex)
         {
             //TODO: Create a ILogger interface to notify about errors on EnvelopeProcessor.
             Trace.TraceError(ex.ToString());
         }
     },
                                                        new ExecutionDataflowBlockOptions
     {
         MaxDegreeOfParallelism = DataflowBlockOptions.Unbounded,
         BoundedCapacity        = DataflowBlockOptions.Unbounded
     });
 }
Beispiel #5
0
 public CommandsNoActionHandler(IMessagingHubSender sender, INavigationExtension navigation, ILogger logger, INLPService nlpService)
 {
     _logger     = logger;
     _sender     = sender;
     _navigation = navigation;
     _nlpService = nlpService;
 }
 public Startup(IMessagingHubSender sender, IDictionary <string, object> settings)
 {
     _sender          = sender;
     _messageInterval = TimeSpan.Parse((string)settings["messageInterval"]);
     _messages        = ((IEnumerable)settings["messages"]).Cast <JValue>().Select(j => j.Value.ToString()).ToArray();
     _cts             = new CancellationTokenSource();
 }
Beispiel #7
0
 public MessagingHubListener(IMessagingHubConnection connection, IMessagingHubSender sender = null, bool autoNotify = true)
 {
     _connection     = connection;
     _sender         = sender ?? new MessagingHubSender(connection);
     EnvelopeManager = new EnvelopeReceiverManager(this);
     _autoNotify     = autoNotify;
 }
Beispiel #8
0
        private async Task ProcessMessagesAsync(IMessagingHubSender sender, Message message, CancellationToken cancellationToken)
        {
            var keyword = message.Content.ToString();

            if (keyword.First() == '#')
            {
                keyword = keyword.Substring(Math.Min(keyword.Length, 5)).Trim();
            }

            if (await HandleStartMessageAsync(sender, message, keyword, cancellationToken))
            {
                return;
            }

            if (await HandleEndOfSearchAsync(sender, message, keyword, cancellationToken))
            {
                return;
            }

            if (await HandleNextPageRequestAsync(sender, message, keyword, cancellationToken))
            {
                return;
            }

            keyword = HandleNextPageKeywordAsync(message, keyword);

            var uri = await ComposeSearchUriAsync(message, keyword);

            await ExecuteSearchAsync(sender, message, uri, cancellationToken);
        }
Beispiel #9
0
 public TestCommandProcessor(IMessagingHubSender sender, IDictionary <string, object> settings)
 {
     Sender       = sender;
     Settings     = settings;
     Instantiated = true;
     InstanceCount++;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ComposingMessageReceiver"/> class.
 /// </summary>
 /// <param name="sender">The sender.</param>
 /// <exception cref="System.ArgumentNullException"></exception>
 public ComposingMessageReceiver(IMessagingHubSender sender)
 {
     if (sender == null)
     {
         throw new ArgumentNullException(nameof(sender));
     }
     _sender = sender;
 }
Beispiel #11
0
 public PlainTextMessageReceiver(
     IMessagingHubSender sender,
     INavigationExtension navigateExtension
     )
 {
     _sender            = sender;
     _navigateExtension = navigateExtension;
 }
 public MessagingHubClient(IMessagingHubConnection connection, bool autoNotify = true)
 {
     Connection = connection;
     Sender     = new MessagingHubSender(connection);
     Listener   = new MessagingHubListener(connection, Sender, autoNotify);
     _semaphore = new SemaphoreSlim(1, 1);
     _started   = false;
 }
Beispiel #13
0
 public MessageOutputProcessor(IMessagingHubSender sender)
 {
     if (sender == null)
     {
         throw new ArgumentNullException(nameof(sender));
     }
     _sender = sender;
 }
Beispiel #14
0
 public PlainTextMessageReceiver(IMessagingHubSender sender, AppSettings appSettings)
 {
     _sender    = sender;
     Session    = new Dictionary <string, State>();
     Top5Movies = new Dictionary <string, List <Movie> >();
     Bot        = new MoviesRecommendBot(_sender);
     _apiClient = new ApiClient(appSettings);
 }
 public PlainTextMessageReceiver(IMessagingHubSender sender, IApiAiAppServiceFactory apiAiAppServiceFactory,
                                 IBlipAiMessageTranslator blipAiMessageTranslator, ExampleSettings settings)
 {
     _apiAiAppServiceFactory  = apiAiAppServiceFactory;
     _blipAiMessageTranslator = blipAiMessageTranslator;
     _sender   = sender;
     _settings = settings;
 }
 /// <summary>
 /// Send chat state message
 /// </summary>
 /// <param name="document"></param>
 /// <param name="sender"></param>
 /// <param name="to"></param>
 /// <param name="cancellationToken"></param>
 /// <param name="index">Current index in document collection</param>
 /// <param name="length">Document collection length</param>
 /// <returns></returns>
 public async static Task SendChatStateAsync(this Document document, IMessagingHubSender sender, string to, CancellationToken cancellationToken, int index, int length)
 {
     if (index < length - 1)
     {
         await sender.SendMessageAsync(new ChatState { State = ChatStateEvent.Composing }, to, cancellationToken);
         await ChatStateDelayAsync(document);
     }
 }
 public PlainTextMessageReceiver(
     IMessagingHubSender sender,
     BotSettings settings
     )
 {
     _sender   = sender;
     _settings = settings;
 }
 public PlainTextMessageReceiver(IMessagingHubSender sender, IDirectoryExtension directory, Settings settings, IBucketExtension bucket, ISchedulerExtension scheduler, IBroadcastExtension broadcaster)
 {
     _settings    = settings;
     _scheduler   = scheduler;
     _bucket      = bucket;
     _directory   = directory;
     _broadcaster = broadcaster;
     _sender      = sender;
 }
Beispiel #19
0
 public PlainTextMessageReceiver(
     IMessagingHubSender sender,
     IEventTrackExtension eventTracker,
     IAttendanceExtension attendanceExtension)
 {
     _sender       = sender;
     _eventTracker = eventTracker;
     _attendance   = attendanceExtension;
 }
 public PlainTextMessageReceiver(IMessagingHubSender sender, IContactExtension contacts, ISchedulerExtension scheduler, IDirectoryExtension directory, IBucketExtension bucket)
 {
     _sender = sender;
     //_contacts = contacts;
     _scheduler = scheduler;
     _directory = directory;
     _bucket    = bucket;
     SState     = "initialState";
     Medicine   = string.Empty;
 }
 public AttendanceReplyMessageReceiver(
     IMessagingHubSender sender,
     IAttendanceExtension attendanceExtension,
     IDictionary <string, object> receiverSettings)
 {
     _sender = sender;
     _attendanceExtension = attendanceExtension;
     _operatorIdentity    = new Lazy <string>(GetOperatorIdentityFromReceiverSettings, true);
     _receiverSettings    = receiverSettings;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="HandleExceptionMessageReceiver"/> class.
        /// </summary>
        /// <param name="receiver">The receiver to intercept the errors.</param>
        /// <param name="sender">The sender.</param>
        /// <param name="exceptionDocument">The exception document.</param>
        /// <exception cref="System.ArgumentNullException"></exception>
        public HandleExceptionMessageReceiver(IMessageReceiver receiver, IMessagingHubSender sender, Document exceptionDocument)
        {
            if (receiver == null)
            {
                throw new ArgumentNullException(nameof(receiver));
            }

            _receiver = receiver;
            _sendResponseMessageReceiver = new SendResponseMessageReceiver(sender, exceptionDocument);
        }
Beispiel #23
0
 protected BaseMessageReceiver(
     IMessagingHubSender sender, IStateManager stateManager,
     Settings settings, RoutineRepository routineRepository, ReschedulerTask reschedulerTask)
 {
     _routineRepository = routineRepository;
     _reschedulerTask   = reschedulerTask;
     StateManager       = stateManager;
     Sender             = sender;
     Settings           = settings;
 }
Beispiel #24
0
        private static async Task <bool> HandleEndOfSearchAsync(IMessagingHubSender sender, Message message, string keyword, CancellationToken cancellationToken)
        {
            if (keyword != FinishMessage)
            {
                return(false);
            }

            await sender.SendMessageAsync(@"Obrigado por usar o aplicativo OMNI!", message.From, cancellationToken);

            return(true);
        }
Beispiel #25
0
 public CommandsNoActionHandler(IMessagingHubSender sender, INavigationExtension navigation, ILogger logger,
                                INLPService nlpService, IGitService gitService, IContactService contactService, IMpaService mpaService)
 {
     _logger         = logger;
     _sender         = sender;
     _navigation     = navigation;
     _nlpService     = nlpService;
     _gitService     = gitService;
     _contactService = contactService;
     _mpaService     = mpaService;
 }
Beispiel #26
0
 public DefaultMessageReceiver(
     IMessagingHubSender sender,
     MySettings settings,
     IContextManager context,
     IContactService contactService,
     IMpaService mpaService,
     IGenericErrorService genericErrorService,
     ILogger logger)
     : base(sender, settings, context, contactService, mpaService, genericErrorService, logger)
 {
 }
Beispiel #27
0
        private static async Task <bool> HandleStartMessageAsync(IMessagingHubSender sender, Message message, string keyword, CancellationToken cancellationToken)
        {
            if (keyword != StartMessage && keyword != TelegramStartMessage)
            {
                return(false);
            }

            Console.WriteLine($"Start message received from {message.From}!");
            await sender.SendMessageAsync(@"Tudo pronto. Qual produto deseja pesquisar?", message.From, cancellationToken);

            return(true);
        }
Beispiel #28
0
 public DefaultMessageReceiver(
     IMessagingHubSender sender,
     MySettings settings,
     IContextManager context,
     IContactService contactService,
     IMpaService mpaService,
     IGenericErrorService genericErrorService,
     ILogger logger,
     INavigationExtension navigation)
     : base(sender, settings, context, contactService, mpaService, genericErrorService, logger, navigation)
 {
     _navigation = navigation;
 }
Beispiel #29
0
 public InputMessageReceiver(
     IMessagingHubSender sender,
     ISessionManager sessionManager,
     IStateManager stateManager,
     IDictionary <string, object> settings)
 {
     _sender         = sender;
     _sessionManager = sessionManager;
     _settings       = InputSettings.Parse(settings);
     _settings.Validate();
     _documentSerializer = new DocumentSerializer();
     _stateManager       = stateManager;
 }
Beispiel #30
0
 public MediaReceiver(
     IMessagingHubSender sender,
     MySettings settings,
     IContextManager context,
     IContactService contactService,
     IMpaService mpaService,
     IGenericErrorService genericErrorService,
     ILogger logger,
     IMediaService mediaService)
     : base(sender, settings, context, contactService, mpaService, genericErrorService, logger)
 {
     _mediaService = mediaService;
 }