Exemple #1
0
 public void InsertMessage(ReferenceData.Entity.Message message)
 {
     db.Usp_InsertMessage(message.id, message.conversationId, message.senderId, message.content, message.messageType, message.createdAt);
     if (message.messageType.Equals("FILE"))
     {
         string imagesFolder = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName) + @"\Files\Images\";
         string otherFolder  = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName) + @"\Files\Another_Files\";
         if (getFileType(message.content).Equals("IMAGE"))
         {
             File.WriteAllBytes(imagesFolder + message.content, message.file);
         }
         else
         {
             File.WriteAllBytes(otherFolder + message.content, message.file);
         }
     }
 }
Exemple #2
0
        public List <ReferenceData.Entity.Message> GetMessagesByConversationId(string conversationId, int offset, int limit)
        {
            string imagesFolder = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName) + @"\Files\Images\";
            string otherFolder  = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName) + @"\Files\Another_Files\";
            var    resultSet    = db.Usp_GetMessagesByConversationId(conversationId, offset, limit).ToList();
            List <ReferenceData.Entity.Message> list = null;

            if (resultSet.Count > 0)
            {
                list = new List <ReferenceData.Entity.Message>();
                foreach (var m in resultSet)
                {
                    ReferenceData.Entity.Message message = new ReferenceData.Entity.Message();
                    message.id             = m.id;
                    message.conversationId = m.conversationId;
                    message.senderId       = m.senderId;
                    message.content        = m.content;
                    message.messageType    = m.messageType;
                    if (m.messageType.Equals("FILE"))
                    {
                        if (getFileType(m.content).Equals("IMAGE"))
                        {
                            message.file = ChatAppUtils.ConvertFileToByte(imagesFolder + m.content);
                        }
                        else
                        {
                            message.file = ChatAppUtils.ConvertFileToByte(otherFolder + m.content);
                        }
                    }
                    message.createdAt = m.createdAt;
                    message.firstName = m.firstName;
                    message.lastName  = m.lastName;
                    message.avatar    = ChatAppUtils.ConvertFileToByte(imagesFolder + m.avatar);
                    list.Add(message);
                }
            }
            return(list);
        }
        public void Handle()
        {
            List <ReferenceData.Entity.Message> mesList = new List <ReferenceData.Entity.Message>();
            int    a       = 0;
            string textMsg = this.chatBox.txtMessage.Text.Trim();

            if (this.chatBox.Conversation.id == null)
            {
                this.chatBox.Conversation.id = "conversation" + DateTime.Now.ToUniversalTime().Subtract(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds;
                a = 1;
            }
            int b = 1;

            if (this.chatBox.FileItem != null)
            {
                if (this.chatBox.FileItem.File.Length <= 5242880)
                {
                    string[] fileInfo = getFileInfo(this.chatBox.FileItem.FileName);
                    ReferenceData.Entity.Message fileMessage = new ReferenceData.Entity.Message();
                    fileMessage.id             = "" + DateTime.Now.ToUniversalTime().Subtract(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds;
                    fileMessage.conversationId = this.chatBox.Conversation.id;
                    fileMessage.senderId       = this.chatBox.Form.User.id;
                    if (fileInfo[0].Length == this.chatBox.FileItem.FileName.Length)
                    {
                        fileMessage.content = fileInfo[0] + "_" + fileMessage.id;
                    }
                    else
                    {
                        fileMessage.content = fileInfo[0] + "_" + fileMessage.id + "_." + fileInfo[1];
                    }
                    fileMessage.file                      = this.chatBox.FileItem.File;
                    fileMessage.messageType               = "FILE";
                    fileMessage.firstName                 = this.chatBox.Form.User.firstName;
                    fileMessage.lastName                  = this.chatBox.Form.User.lastName;
                    fileMessage.avatar                    = this.chatBox.Form.User.avatar;
                    fileMessage.createdAt                 = DateTime.Now;
                    fileMessage.Conversation              = this.chatBox.Conversation;
                    this.chatBox.Conversation.createdAt   = DateTime.Now;
                    this.chatBox.Conversation.messageType = "FILE";
                    this.chatBox.Conversation.content     = fileMessage.content;
                    this.chatBox.AddOutMessage(fileMessage);
                    mesList.Add(fileMessage);
                }
                else
                {
                    this.chatBox.Invoke(new VoidDelegate(this.chatBox.ShowErrorSendFile), new object[] { });
                    b = 0;
                }
            }
            if (!textMsg.Equals("") && b != 0)
            {
                ReferenceData.Entity.Message textMessage = new ReferenceData.Entity.Message();
                textMessage.id                        = "" + DateTime.Now.ToUniversalTime().Subtract(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds;
                textMessage.conversationId            = this.chatBox.Conversation.id;
                textMessage.senderId                  = this.chatBox.Form.User.id;
                textMessage.content                   = textMsg;
                textMessage.messageType               = "TEXT";
                textMessage.firstName                 = this.chatBox.Form.User.firstName;
                textMessage.lastName                  = this.chatBox.Form.User.lastName;
                textMessage.avatar                    = this.chatBox.Form.User.avatar;
                textMessage.createdAt                 = DateTime.Now;
                textMessage.Conversation              = this.chatBox.Conversation;
                this.chatBox.Conversation.createdAt   = DateTime.Now;
                this.chatBox.Conversation.messageType = "TEXT";
                this.chatBox.Conversation.content     = textMsg;
                this.chatBox.AddOutMessage(textMessage);
                mesList.Add(textMessage);
            }
            if (a == 1)
            {
                insertConversation();
            }
            if (mesList.Count > 0)
            {
                if (a == 1)
                {
                    this.chatBox.Form.InsertConversationList(this.chatBox.Conversation);
                    this.chatBox.Form.DisplayNewConversation();
                    this.chatBox.Form.SelectConversation(this.chatBox.Conversation);
                }
                new InsertMessageHandler(this.chatBox.Form.Client).Handle(mesList);
            }
        }