private static string GetUserName(EstablishedConversationModel converstion) { var username = (string)null; if (converstion != null) { username = converstion.Properties.Profile.ContainsKey(ContactTypes.FullName) ? converstion.Properties.Profile[ContactTypes.FullName] : "No name"; } return(username); }
private static bool EstablishConversation(HubsterAuthorizer authorizer, HubsterDirectClientCustomer client) { Console.WriteLine($"Enter a username:"); var username = Console.ReadLine(); if (string.IsNullOrWhiteSpace(username)) { return(true); } var conversationResponse = client.Conversation.Establish(authorizer, GetCustomerConversationRequestModel(username, ChannelType.WebChat)); if (conversationResponse.StatusCode != HttpStatusCode.OK) { Console.WriteLine(); Display(conversationResponse); Console.WriteLine(); return(false); } _lastConverstion = conversationResponse.Content; return(true); }
/// <summary> /// Sends the specified authorizer. /// </summary> /// <param name="authorizer">The authorizer.</param> /// <param name="conversation">The conversation.</param> /// <param name="activity">The activity.</param> /// <returns></returns> public ApiResponse <DirectResponseModel> Send(IHubsterAuthorizer authorizer, EstablishedConversationModel conversation, DirectActivityModel activity) { var apiResponse = _engineAccess.Send(authorizer, conversation.ConversationId.Value, activity, "customer"); return(apiResponse); }
/// <summary> /// Gets the specified authorizer. /// </summary> /// <param name="authorizer">The authorizer.</param> /// <param name="conversation">The conversation.</param> /// <param name="lastEventId">The last event identifier.</param> /// <returns></returns> public ApiResponse <IEnumerable <DirectActivityModel> > Get(IHubsterAuthorizer authorizer, EstablishedConversationModel conversation, long lastEventId) { var apiResponse = _engineAccess.Get(authorizer, conversation.ConversationId.Value, lastEventId, IntegrationType.Customer); return(apiResponse); }
private static void DisplayList(HubsterAuthorizer authorizer, HubsterDirectClientBusiness client, EstablishedConversationModel conversation) { var apiResponse = client.Activity.Get(authorizer, conversation.ConversationId.Value, 0, IntegrationType.Agent); if (apiResponse.StatusCode != HttpStatusCode.OK) { var issues = JsonConvert.SerializeObject(apiResponse.Errors, Formatting.Indented); Display(issues, ConsoleColor.Yellow); return; } Console.Clear(); if (apiResponse.Content.Any()) { foreach (var activity in apiResponse.Content) { Display(activity); } } else { Display("There are no interactions to display.", ConsoleColor.Yellow); } }
private static void ConversationLoop(HubsterAuthorizer authorizer, HubsterDirectClientBusiness client, EstablishedConversationModel conversation, string username) { while (true) { Console.Write($"Sending message to: [CUSTOMER - '{username}']: "); var message = Console.ReadLine(); if (message.ToLower() == "q" || message.ToLower() == "quit") { return; } if (message.ToLower() == "clear") { Console.Clear(); continue; } if (string.IsNullOrWhiteSpace(message)) { continue; } var apiResponse = client.Activity.Send(authorizer, conversation.ConversationId.Value, new DirectActivityModel { Sender = new DirectSourceModel { IntegrationId = _agentIntegrationId }, Message = new DirectTextMessageModel { Text = message }, }); if (apiResponse.StatusCode != HttpStatusCode.OK) { Display(apiResponse); } } }
private static bool PickAvailableConversaton(HubsterAuthorizer authorizer, HubsterDirectClientBusiness client) { var apiResponse = client.Conversation.GetAllEstablishedByHubId(authorizer, Guid.Parse(_agentHubId)); if (apiResponse.StatusCode != HttpStatusCode.OK) { Console.WriteLine(); Display(apiResponse); Console.WriteLine(); return(false); } if (apiResponse.Content.Any()) { while (true) { Console.Clear(); Console.WriteLine("Pick one of the following established conversations:"); var i = 1; foreach (var conversation in apiResponse.Content.OrderByDescending(x => x.OpenedDateTime)) { Console.WriteLine($"{i++}. {conversation.ConversationId} - {GetUserName(conversation)}"); } Console.WriteLine($"{i}. Clear Screen (clear)"); Console.WriteLine($"{i+1}. Quit (q or quit)"); var selection = Console.ReadLine().ToLower(); if (string.IsNullOrWhiteSpace(selection) || selection == i.ToString() || selection == "clear") { Console.Clear(); continue; } if (selection == (i + 1).ToString() || selection == "q" || selection == "quit") { Console.Clear(); return(false); } if (int.TryParse(selection, out int result) == false) { Console.Clear(); continue; } if (result < 0 || result > i) { Console.Clear(); continue; } _lastConverstion = apiResponse.Content.ToList()[result - 1]; return(true); } } else { Display("There are no established conversations to display.", ConsoleColor.Yellow); return(false); } }