Exemplo n.º 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="message"></param>
        public CustomerConversationMessage AddMessage(CustomerConversationMessage message)
        {
            EntityEntry <CustomerConversationMessage> newMessage = this._context.CustomerConversationMessages.Add(message);

            this._context.SaveChanges();
            return(newMessage.Entity);
        }
Exemplo n.º 2
0
        public async Task MessageFromCustomer(string message)
        {
            CustomerConversation searchedConversation =
                this.repository.GetCustomerConversationByConnectionId(this.Context.ConnectionId);

            if (searchedConversation != null)
            {
                searchedConversation.Unanswered   = true;
                searchedConversation.LastModified = DateTime.Now;
                this.repository.Update(searchedConversation);
            }
            else
            {
                searchedConversation = new CustomerConversation(this.Context.ConnectionId);
                searchedConversation = this.repository.Add(searchedConversation);
            }

            CustomerConversationMessage ccMessage = new CustomerConversationMessage(searchedConversation.Id, message);

            ccMessage.FromCustomer = true;
            this.repository.AddMessage(ccMessage);

            // if we have active operator
            if (activeOperatorConnectionId != null)
            {
                var messageJsonResult = new JsonResult(GetMessageJsonObject(ccMessage));

                await Clients.Client(activeOperatorConnectionId).SendAsync("ReceiveMessage", this.Context.ConnectionId, messageJsonResult.Value);
            }
        }
Exemplo n.º 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="ccMessage"></param>
        /// <returns></returns>
        private dynamic GetMessageJsonObject(CustomerConversationMessage ccMessage)
        {
            dynamic messageJson = new ExpandoObject();

            messageJson.content      = ccMessage.Content;
            messageJson.created      = ccMessage.Created.ToShortDateString() + " " + ccMessage.Created.ToShortTimeString();
            messageJson.fromcustomer = ccMessage.FromCustomer;
            return(messageJson);
        }
Exemplo n.º 4
0
        public async Task MessageFromOperator(string connectionId, string message)
        {
            CustomerConversation conversation = this.repository.GetCustomerConversationByConnectionId(connectionId);

            if (conversation != null)
            {
                CustomerConversationMessage ccMessage = new CustomerConversationMessage(conversation.Id, message);
                ccMessage.FromCustomer = false;
                this.repository.AddMessage(ccMessage);

                conversation.Unanswered   = false;
                conversation.LastModified = DateTime.Now;
                this.repository.Update(conversation);

                var messageJsonResult = new JsonResult(GetMessageJsonObject(ccMessage));

                await Clients.Client(connectionId).SendAsync("ReceiveMessage", connectionId, messageJsonResult.Value);
            }
        }
Exemplo n.º 5
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="message"></param>
 public void UpdateMessage(CustomerConversationMessage message)
 {
     this._context.CustomerConversationMessages.Update(message);
     this._context.SaveChanges();
 }