コード例 #1
0
 public SmsService(string fromSender, IInfobipClient infobipClient, ILogFactory logFactory,
                   int maxNumberOfRetries)
 {
     _fromSender         = fromSender;
     _infobipClient      = infobipClient;
     _maxNumberOfRetries = maxNumberOfRetries;
     _log = logFactory.CreateLog(this);
 }
コード例 #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="InfobipAdapter"/> class using configuration settings.
        /// </summary>
        /// <param name="infobipOptions">Adapter options. Typically created via appsettings loaded into an IConfiguration.</param>
        /// <param name="infobipClient">Client/Proxy used to communicate with Infobip.</param>
        /// <param name="logger">Logger.</param>
        public InfobipAdapter(InfobipAdapterOptions infobipOptions, IInfobipClient infobipClient, ILogger <InfobipAdapter> logger)
        {
            _infobipOptions = infobipOptions ?? throw new ArgumentNullException(nameof(infobipOptions));
            _infobipClient  = infobipClient ?? throw new ArgumentNullException(nameof(infobipClient));
            _logger         = logger ?? NullLogger <InfobipAdapter> .Instance;

            _toActivityConverter = new ToActivityConverter(_infobipOptions, _infobipClient, _logger);
            _authorizationHelper = new AuthorizationHelper();
        }
コード例 #3
0
        public InfobipAdapterWithErrorHandler(InfobipAdapterOptions infobipOptions, IInfobipClient infobipClient, ILogger <InfobipAdapterWithErrorHandler> logger)
            : base(infobipOptions, infobipClient, logger)
        {
            OnTurnError = async(turnContext, exception) =>
            {
                // Log any leaked exception from the application.
                logger.LogError($"Exception caught : {exception.Message}");

                // Send a catch-all apology to the user.
                await turnContext.SendActivityAsync("Sorry, it looks like something went wrong.");
            };
        }
コード例 #4
0
        public static async Task <Activity> Convert(InfobipIncomingResult result, IInfobipClient infobipClient)
        {
            var activity = ConvertToMessage(result);

            activity.ChannelId = InfobipChannel.WhatsApp;

            if (result.Message.Type == InfobipIncomingMessageTypes.Text)
            {
                activity.Text       = result.Message.Text;
                activity.TextFormat = TextFormatTypes.Plain;
            }
            else if (result.Message.Type == InfobipIncomingMessageTypes.Location)
            {
                activity.Entities.Add(new GeoCoordinates
                {
                    Latitude  = result.Message.Latitude,
                    Longitude = result.Message.Longitude
                });
            }
            else if (result.Message.IsMedia())
            {
                var contentType = await infobipClient.GetContentTypeAsync(result.Message.Url.AbsoluteUri).ConfigureAwait(false);

                activity.Attachments = new List <Attachment>
                {
                    new Attachment
                    {
                        ContentType = contentType,
                        ContentUrl  = result.Message.Url.AbsoluteUri,
                        Name        = result.Message.Caption
                    }
                };
            }
            else
            {
                return(null);
            }

            return(activity);
        }
コード例 #5
0
 public ToActivityConverter(InfobipAdapterOptions adapterOptions, IInfobipClient infobipClient, ILogger logger)
 {
     _logger         = logger ?? throw new ArgumentNullException(nameof(logger));
     _adapterOptions = adapterOptions ?? throw new ArgumentNullException(nameof(adapterOptions));
     _infobipClient  = infobipClient ?? throw new ArgumentNullException(nameof(infobipClient));
 }
コード例 #6
0
 public PushNotificationService(ILogFactory logFactory, IInfobipClient infobipClient, string fromSender)
 {
     _infobipClient = infobipClient;
     _fromSender    = fromSender;
     _log           = logFactory.CreateLog(this);
 }