public SmsService(string fromSender, IInfobipClient infobipClient, ILogFactory logFactory, int maxNumberOfRetries) { _fromSender = fromSender; _infobipClient = infobipClient; _maxNumberOfRetries = maxNumberOfRetries; _log = logFactory.CreateLog(this); }
/// <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(); }
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."); }; }
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); }
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)); }
public PushNotificationService(ILogFactory logFactory, IInfobipClient infobipClient, string fromSender) { _infobipClient = infobipClient; _fromSender = fromSender; _log = logFactory.CreateLog(this); }