public bool AddMessageToCosmos(ConversationMessageNotification conversationNotification) { bool result = false; try { ConversationMessageDocument message = new ConversationMessageDocument { AttachedFile = false, AttachedFileUrl = string.Empty, ConversationId = conversationNotification.currentConversation.Id, Message = conversationNotification.currentConversation.Message, MessageWithoutHtml = conversationNotification.currentConversation.MessageWithoutHtml, MessageTime = conversationNotification.currentConversation.MessageTime.ToString(), SignedBy = conversationNotification.currentConversation.ProfileName }; collectionName = CosmosCollections.ConversationMessage.ToString(); result = context.AddDocument <ConversationMessageDocument>(databaseName, collectionName, message); } catch (Exception e) { var messageException = telemetria.MakeMessageException(e, System.Reflection.MethodBase.GetCurrentMethod().Name); telemetria.Critical(messageException); } return(result); }
public void SendChatMessage(ConversationMessageNotification chatMessage) { var context = GlobalHost.ConnectionManager.GetHubContext <NotificationHub>(); string messageHtml = CreateHtmlMessageToAttachToChat(chatMessage); //string elementToAttach = "date_2018_08_25";//todo string elementToAttach = GetElementToAttach(chatMessage.currentConversation.MessageTime); context.Clients.All.showChatMessage(messageHtml, elementToAttach); }
public void ProcessConversationNotification(ConversationMessageNotification message) { try { dynamic data = message; sbmanager.SendMessageAsyncWithoutPriority(data, message.label); } catch (Exception e) { var messageException = telemetry.MakeMessageException(e, System.Reflection.MethodBase.GetCurrentMethod().Name); telemetry.Critical(messageException); } }
public string CreateHtmlMessageToAttachToChat(ConversationMessageNotification chatMessage) { string htmlToAttach = string.Empty; //todo StringBuilder sb = new StringBuilder(); sb.Append($@" <div class='chat'> <span class='user'>{chatMessage.currentConversation.ProfileName}</span> <span class='txt'> {chatMessage.currentConversation.Message} </span> <span class='time'>{GetFormatedMessageTime(chatMessage.currentConversation.MessageTime.ToString())}</span> </div> "); return(sb.ToString()); }
public ActionResult AddMessage([FromBody] CurrentConversation proposalParametersNavigation) { proposalParametersNavigation.MessageWithoutHtml = proposalParametersNavigation.Message; proposalParametersNavigation.Message = Manager.MakeRefIfContainLink(proposalParametersNavigation.Message); string serviceBusTopicName = "conversationtopicdev"; // obtenerlo del web.config string profileName = string.Empty; PublisherProfileDocument publisherProfile = new PublisherProfileDocument(); AdvertiserProfileDocument advertiserProfile = new AdvertiserProfileDocument(); List <string> usersIdInConversation = Manager.GetUsersIdInConversation(proposalParametersNavigation.Id); var email = System.Web.HttpContext.Current.User.Identity.Name; KindAds.Utils.Enums.Roles rol; rol = (User.IsInRole(KindAds.Utils.Enums.Roles.Publisher.ToString()) ? KindAds.Utils.Enums.Roles.Publisher : KindAds.Utils.Enums.Roles.Advertiser); int rolId = Convert.ToInt32(rol); if (rolId == 1) { publisherProfile = Manager.GetPublisherProfile(email); profileName = publisherProfile.Name; } else { advertiserProfile = Manager.GetAdvertiserProfile(email); profileName = advertiserProfile.Title; } proposalParametersNavigation.ProfileName = profileName; ConversationMessageNotification message = new ConversationMessageNotification() { currentConversation = proposalParametersNavigation, users = usersIdInConversation }; Manager.AddMessageToCosmos(message); notificationManager = new NotificationManager(serviceBusTopicName); notificationManager.ProcessConversationNotification(message); notificationManager.Close(); return(Json(new { Result = "Send message OK" }, JsonRequestBehavior.AllowGet)); }