예제 #1
0
        public static MessageUM PrepareReceivedData(byte[] text, Encoding _Encoding)
        {
            var gotMessage = new MessageUM();

            try
            {
                var data = Decrypt(_Encoding.GetString(text));


                if (new System.Text.RegularExpressions.Regex("websocket").IsMatch(data))
                {
                    var length = data.Substring(0, data.IndexOf("\r\n")).Length;
                    data = GetDecodedData(text.Take(length).ToArray(), length);
                }

                if (data.Trim() == "?")
                {
                    gotMessage.Text = "?";
                }

                if (data.Length < FromIdLength + ToIdLength)
                {
                    return(gotMessage);
                }
                gotMessage = MessageProtocol.getDecodedMessage(data);
                return(gotMessage);
            }
            catch (Exception e)
            {
                Console.WriteLine("Error In PreaparingData Method : " + e.Message);
                return(null);
            }
        }
예제 #2
0
        public static byte[] PrepareDataforSending(MessageUM msg, Encoding encoding, MySocketType sockettype, string webSocketSecKey)
        {
            try
            {
                if (sockettype != MySocketType.Websocket)
                {
                    return(encoding.GetBytes(msg.Text));
                }

                var lb = new List <byte> {
                    0x81, (byte)msg.Text.Length
                };
                lb.AddRange(Encoding.UTF8.GetBytes(msg.Text));
                return(lb.ToArray());
            }
            catch (Exception e)
            {
                Console.WriteLine("Error In PreaparingData Method : " + e.Message);
                return(null);
            }
        }
예제 #3
0
 public Response SendMessage(MessageUM MSG)
 {
     try
     {
         var sendingdata = MessageHandle.PrepareDataforSending(MSG, _Encoding, _Sockettype, WebSocketSecKey);
         _ClientSocket.Send(sendingdata);
         return(new Response
         {
             code = ResponseStatus.Sent,
             text = ""
         });
     }
     catch (Exception e)
     {
         Console.WriteLine("Error In SendMessage Method : " + e.Message);
         return(new Response
         {
             code = ResponseStatus.CanNotSend,
             text = e.Message
         });
     }
 }
예제 #4
0
        public DBResponse AddMessageToInbox(MessageUM newmessage)
        {
            var response = new DBResponse();
            var fromuser = _applicationUserRep.GetUserByUserName(newmessage.FromId);
            var touser   = _applicationUserRep.GetUserByUserName(newmessage.ToId);


            var receiptor = new List <MessageReceipter>()
            {
                new MessageReceipter()
                {
                    ReceipterUser = touser,
                }
            };
            var message = new UserMessage()
            {
                SendDate          = newmessage.SendDate,
                ReadDate          = newmessage.ReadDate,
                Receivedate       = newmessage.ReceiveDate,
                MessageReceipters = receiptor
            };

            if (fromuser == null || touser == null)
            {
                response.IsSucced = false;
                response.Messages.Add("user not exist!");
                return(response);
            }
            message.FromUser = fromuser;


            _context.UserMessages.Add(message);
            var resp = _context.SaveChanges();

//            response.IsSucced = false;
//            response.Messages.Add("Data cannot insert to database!");
            return(response);
        }
 public void InsertMessageToInbox(MessageUM message)
 {
     _userMessageRep.AddMessageToInbox(message);
 }