コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
 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);
     }
 }
コード例 #4
0
        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());
        }
コード例 #5
0
        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));
        }