コード例 #1
0
        /// <summary>
        /// 添加用户系统消息
        /// </summary>
        /// <param name="userIDs">用户ID集合</param>
        /// <param name="option">消息类型,<see cref="MessageTemplateOption"/></param>
        /// <param name="relateDataID">消息关联的数据ID,如:某某订单ID</param>
        /// <param name="title">消息标题</param>
        /// <param name="content">消息内容</param>
        /// <param name="sign">消息发送方签名(如:XXX公司)</param>
        /// <returns></returns>
        public bool AddUserMessage(long[] userIDs, MessageTemplateOption option, string relateDataID, string title, string content, string sign)
        {
            using (var db = new DataContext())
            {
                if (userIDs == null || userIDs.Length < 1)
                {
                    return(false);
                }

                foreach (var userId in userIDs)
                {
                    var item = new User_Message
                    {
                        MessageID   = IDProvider.NewId(),
                        Content     = content ?? string.Empty,
                        CreateTime  = DateTime.Now,
                        IsDelete    = false,
                        IsRead      = false,
                        MessageType = (int)option,
                        RefDataID   = relateDataID,
                        Sign        = sign ?? string.Empty,
                        Title       = title,
                        UserID      = userId
                    };

                    db.User_Message.Add(item);
                }

                return(db.SaveChanges() > 0);
            }
        }
コード例 #2
0
        public void ReadCallBack()
        {
            try{
                while (true)
                {
                    User_Message message = (User_Message)Net.rcvMsg(comm.GetStream());
                    if (message.channel_id != 0)
                    {
                        AsyncSocketClient.current_channel = message.channel_id;
                    }

                    //check if the message is
                    Console.WriteLine(message);

                    comm.GetStream().FlushAsync();
                }
            } catch (Exception e)
            {
                if (e is IOException)
                {
                    Console.WriteLine("Unexpected disconnection.");
                }
                else
                {
                    Console.WriteLine(e.ToString());
                }
            }
        }
コード例 #3
0
        public void Delete(int id)
        {
            User_Message umsg = this.context.User_Message.SingleOrDefault(x => x.Id == id);

            this.context.User_Message.Remove(umsg);

            this.context.SaveChanges();
        }
コード例 #4
0
        public static void RequestPrivate()
        {
            //Request user input for UserID
            Console.WriteLine("Request user ID for chat");
            int request_ID = Int32.Parse(Console.ReadLine());

            //Initiate conversation
            Message message = new User_Message(Logger.GetCurrentUser(), "Request Private Chat", 0);

            message.SetTargetID(request_ID);

            Net.sendMsg(comm.GetStream(), message);
            comm.GetStream().Flush();
        }
コード例 #5
0
        public string Decryption_Method(string EncryptedMessage)
        {
            string DecryptedMessage = "";

            char[] Alphabet_Constant = new char[] { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };

            char[] Decryption_Array = new char[EncryptedMessage.Length];

            char[] Message_Array = EncryptedMessage.ToCharArray();//array containing the encrypted message

            char[] Plaintext_Array = User_Message.ToCharArray();
            while (Decrypt_Switch == false)
            {
                for (j = 0; j <= 25; j++)
                {
                    Broken_Key = j;
                    Console.WriteLine("Breaking key");

                    if (Broken_Key == User_Key)
                    {
                        Console.WriteLine("Key has been found");
                        Decrypt_Switch = true;
                        break;
                    }
                    else
                    {
                        //Decrypt_Switch = false;
                    }
                }
            }

            for (k = 0; k < EncryptedMessage.Length; k++)//does not like the word wonderful for some reason
            {
                Hidden_index = Array.IndexOf(Alphabet_Constant, Message_Array[k]);

                Actual_Index = (Hidden_index - Broken_Key) % 26;

                Decoded_Character = Alphabet_Constant[Actual_Index];

                Decryption_Array[k] = Decoded_Character;
            }

            DecryptedMessage = String.Join("", Decryption_Array);

            Console.WriteLine("The decoded message is " + DecryptedMessage);

            return(DecryptedMessage);
        }
コード例 #6
0
 private static Packet AcceptMessage(Packet p)
 {
     try
     {
         PacketSendMessage packet  = (PacketSendMessage)p;
         Channel           channel = Channel.GetChannelById(packet.ChannelID);
         if (channel != null && channel.ContainsUser(packet.userID))
         {
             User_Message message =
                 new User_Message(packet.userID, packet.message, packet.ChannelID);
             channel.Add(message);
             Console.WriteLine(packet.ToString());
             Broadcast(channel, message);
         }
     }
     catch (Exception e)
     {
         Console.WriteLine(e.ToString());
     }
     return(null);
 }
コード例 #7
0
        public void SendCallBack()
        {
            try
            {
                while (true)
                {
                    string str = Console.ReadLine();

                    if (str == String.Empty)
                    {
                        Console.WriteLine("Message cannot be empty");
                        continue;
                    }
                    if (AsyncSocketClient.current_channel == 0)
                    {
                        Console.WriteLine("No channel selected, abort.");
                        continue;
                    }

                    //Set message
                    Message message = new User_Message(Logger.GetCurrentUser(), str, AsyncSocketClient.current_channel);
                    Net.sendMsg(comm.GetStream(), message);

                    comm.GetStream().FlushAsync();
                }
            }
            catch (Exception e)
            {
                if (e is IOException)
                {
                    Console.WriteLine("Unexpected disconnection.");
                }
                else
                {
                    Console.WriteLine(e.ToString());
                }
            }
        }
コード例 #8
0
 public void Insert(User_Message User_Message)
 {
     this.context.User_Message.Add(User_Message);
     this.context.SaveChanges();
 }
コード例 #9
0
 public void Insert(User_Message User_Message)
 {
     this.data.Insert(User_Message);
 }