public RingCentralClientWrapper(IOptionsMonitor <RingCentralOptions> options, IHandoffRequestRecognizer handoffRequestRecognizer, ILogger logger = null) { _options = options ?? throw new ArgumentNullException(nameof(options)); _handoffRequestRecognizer = handoffRequestRecognizer ?? throw new ArgumentNullException(nameof(handoffRequestRecognizer)); _logger = logger ?? NullLogger.Instance; if (string.IsNullOrWhiteSpace(_options.CurrentValue.RingCentralEngageApiAccessToken)) { throw new ArgumentException(nameof(options.CurrentValue.RingCentralEngageApiAccessToken)); } if (_options.CurrentValue.RingCentralEngageApiUrl == null) { throw new ArgumentException(nameof(options.CurrentValue.RingCentralEngageApiUrl)); } // DimeloClient is used to send messages out to RingCentral platform in order to log messages // only do this if this feature has been enabled. if (_options.CurrentValue.LogMessagesToRingCentral) { if (string.IsNullOrWhiteSpace(_options.CurrentValue.RingCentralEngageCustomSourceRealtimeEndpointUrl)) { throw new ArgumentException(nameof(_options.CurrentValue.RingCentralEngageCustomSourceRealtimeEndpointUrl)); } if (_options.CurrentValue.RingCentralEngageCustomSourceApiAccessToken == null) { throw new ArgumentException(nameof(_options.CurrentValue.RingCentralEngageCustomSourceApiAccessToken)); } _ringCentralClient = new DimeloClient(_options.CurrentValue.RingCentralEngageCustomSourceRealtimeEndpointUrl, _options.CurrentValue.RingCentralEngageCustomSourceApiAccessToken); } }
public async Task <bool> SendDeleteThread(Thread thread) { bool result = false; try { MainPage.Log($"===== DELETE THREAD {thread.DisplayName} =====", true); MainPage.Log($"Create DimeloClient"); DimeloClient client = new DimeloClient(Settings.EndpointUrl, Settings.AccountToken); MainPage.Log($"Create ThreadRequest"); DimeloRequest request = new DimeloRequest(); //request.Action = Sdk.Models.CreateAction.Thread; //Sdk.Models.Thread sdkThread = new Sdk.Models.Thread(); //sdkThread.Id = thread.Id; //request.Params = sdkThread; //MainPage.Log("\n" + request.GetJson() + "\n"); //MainPage.Log($"Send request"); //string response = await client.SendAsync(request); //MainPage.Log($"Response: {response}"); //result = true; } catch (Exception ex) { MainPage.Log($"\nERROR: {ex.Message}"); MainPage.Log(ex.ToString()); } return(result); }
public async Task <bool> SendNewMessage(Message message) { bool result = false; UpdateMessageWithMessageCategories(message); try { MainPage.Log($"===== SEND MESSAGE {message.Id} =====", true); MainPage.Log($"Create DimeloClient"); DimeloClient client = new DimeloClient(Settings.EndpointUrl, Settings.AccountToken); MainPage.Log($"Create MessageRequest"); DimeloRequest request = new DimeloRequest(); request.Action = RingCentral.Sdk.Models.CreateAction.Message; RingCentral.Sdk.Models.Message sdkMessage = new RingCentral.Sdk.Models.Message(); sdkMessage.Id = message.Id; if (!string.IsNullOrWhiteSpace(message.ThreadId)) { sdkMessage.ThreadId = message.ThreadId; } if (!string.IsNullOrWhiteSpace(message.ReplyToId)) { sdkMessage.InReplyToId = message.ReplyToId; } sdkMessage.Categories = message.Categories.ToArray(); if (message.Author != null) { sdkMessage.Author = new RingCentral.Sdk.Models.User(); sdkMessage.Author.Id = message.Author.Id; sdkMessage.Author.Firstname = message.Author.FirstName; sdkMessage.Author.Lastname = message.Author.LastName; sdkMessage.Author.Screenname = message.Author.ScreenName; sdkMessage.Author.Email = message.Author.Email; sdkMessage.Author.CreatedAt = message.Author.Created; sdkMessage.Author.UpdatedAt = message.Author.Updated; } sdkMessage.Body = message.Body; sdkMessage.CreatedAt = message.Created; sdkMessage.UpdatedAt = message.Updated; request.Params = sdkMessage; MainPage.Log("\n" + request.GetJson() + "\n"); MainPage.Log($"Send request"); string response = await client.SendAsync(request); MainPage.Log($"Response: {response}"); result = true; } catch (Exception ex) { MainPage.Log($"\nERROR: {ex.Message}"); MainPage.Log(ex.ToString()); } return(result); }
public async Task <bool> SendNewThread(Thread thread) { bool result = false; try { MainPage.Log($"===== CREATE THREAD {thread.DisplayName} =====", true); MainPage.Log($"Create DimeloClient"); DimeloClient client = new DimeloClient(Settings.EndpointUrl, Settings.AccountToken); MainPage.Log($"Create ThreadRequest"); DimeloRequest request = new DimeloRequest(); request.Action = RingCentral.Sdk.Models.CreateAction.Thread; RingCentral.Sdk.Models.Thread sdkThread = new RingCentral.Sdk.Models.Thread(); sdkThread.Id = thread.Id; sdkThread.Title = thread.Title; sdkThread.Body = thread.Body; sdkThread.Categories = thread.Categories.ToArray(); if (thread.Author != null) { sdkThread.Author = new RingCentral.Sdk.Models.User(); sdkThread.Author.Id = thread.Author.Id; sdkThread.Author.Firstname = thread.Author.FirstName; sdkThread.Author.Lastname = thread.Author.LastName; sdkThread.Author.Screenname = thread.Author.ScreenName; sdkThread.Author.Email = thread.Author.Email; sdkThread.Author.CreatedAt = thread.Author.Created; sdkThread.Author.UpdatedAt = thread.Author.Updated; } sdkThread.Format = RingCentral.Sdk.Models.Formatting.Text; sdkThread.CreatedAt = thread.Created; sdkThread.UpdatedAt = thread.Updated; request.Params = sdkThread; MainPage.Log("\n" + request.GetJson() + "\n"); MainPage.Log($"Send request"); string response = await client.SendAsync(request); MainPage.Log($"Response: {response}"); result = true; } catch (Exception ex) { MainPage.Log($"\nERROR: {ex.Message}"); MainPage.Log(ex.ToString()); } return(result); }
public async Task <bool> SendUpdateUser(User user) { bool result = false; try { MainPage.Log($"===== UPDATE USER {user.DisplayName} =====", true); MainPage.Log($"Create DimeloClient"); DimeloClient client = new DimeloClient(Settings.EndpointUrl, Settings.AccountToken); MainPage.Log($"Create UserRequest"); DimeloRequest request = new DimeloRequest(); //request.Action = Sdk.Models.CreateAction.UserUpdate; //Sdk.Models.User sdkUser = new Sdk.Models.User(); //sdkUser.Id = user.Id; //sdkUser.Firstname = user.FirstName; //sdkUser.Lastname = user.LastName; //sdkUser.Screenname = user.ScreenName; //sdkUser.Email = user.Email; //sdkUser.CreatedAt = user.Created; //sdkUser.UpdatedAt = user.Updated; //request.Params = sdkUser; //MainPage.Log("\n" + request.GetJson() + "\n"); //MainPage.Log($"Send request"); //string response = await client.SendAsync(request); //MainPage.Log($"Response: {response}"); //result = true; } catch (Exception ex) { MainPage.Log($"\nERROR: {ex.Message}"); MainPage.Log(ex.ToString()); } return(result); }
public RingCentralClientWrapper(DimeloClient ringCentralClient, ILogger logger = null) { _ringCentralClient = ringCentralClient ?? throw new ArgumentNullException(nameof(ringCentralClient)); _logger = logger ?? NullLogger.Instance; }