public async Task <IActionResult> DeletetoTrash(MessageToTrashDto messageToTrashDto)
        {
            if (messageToTrashDto.userId == int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value))
            {
                var user = await _repo.Find(x => x.Id == messageToTrashDto.userId);

                if (user == null)
                {
                    return(Unauthorized());
                }
                var messageDeletedInbox = await _inboxRepo.Find(x => x.MessageId == messageToTrashDto.msgId);

                var messageFromTable = await _messageRepo.Find(x => x.Id == messageToTrashDto.msgId);

                var trash = await _trashRepo.Find(m => m.MessageId == messageFromTable.Id);

                if (messageDeletedInbox != null && messageDeletedInbox.UserId == user.Id && trash == null)
                {
                    var messageTrush = new TrashMessage {
                        IsDelete = true, message = messageFromTable, MessageId = messageDeletedInbox.MessageId, user = user, originalBox = OriginalBox.Inbox, UserId = messageDeletedInbox.UserId
                    };
                    var deletedMessage = await _trashRepo.Add(messageTrush);

                    // int resualt=await _messageRepo.Delete(messageFromTable);
                    // int resualt = await _inboxRepo.Delete(messageDeletedInbox);

                    return(Ok("Massage is Moved to Trash Successfully"));
                }
            }
            return(Unauthorized("Failad to Delete process"));
        }
Exemple #2
0
        private async void Run()
        {
            byte[] buffer;
            while (true)
            {
                buffer = await client.Receive(remotePoint);

                object msgObj  = FormatterHelper.Deserialize(buffer);
                Type   msgType = msgObj.GetType();
                if (msgType == typeof(ListUserResponseMessage))
                {
                    // 转换消息
                    ListUserResponseMessage usersMsg = (ListUserResponseMessage)msgObj;
                    // 更新用户列表
                    userList.Clear();
                    foreach (User user in usersMsg.UserList)
                    {
                        userList.Add(user);
                    }
                    this.DisplayUsers(userList);
                }
                else if (msgType == typeof(PingMessage))
                {
                    // 转换消息
                    PingMessage purchReqMsg = (PingMessage)msgObj;
                    // 发送打洞消息到远程主机
                    TrashMessage trashMsg = new TrashMessage();
                    buffer = FormatterHelper.Serialize(trashMsg);
                    client.Send(buffer, buffer.Length, purchReqMsg.RemotePoint);
                }
                else if (msgType == typeof(P2PTextMessage))
                {
                    // 转换消息
                    P2PTextMessage workMsg = (P2PTextMessage)msgObj;
                    Console.WriteLine("Receive a message: {0}", workMsg.Message);
                    // 发送应答消息
                    P2PAckMessage ackMsg = new P2PAckMessage();
                    buffer = FormatterHelper.Serialize(ackMsg);
                    client.Send(buffer, buffer.Length, remotePoint);
                }
                else if (msgType == typeof(P2PAckMessage))
                {
                    this.ReceivedACK = true;
                }
                else if (msgType == typeof(TrashMessage))
                {
                    Console.WriteLine("Recieve a trash message");
                }
                Thread.Sleep(100);
            }
        }
Exemple #3
0
 private void Run()
 {
     byte[] buffer;
     while (true)
     {
         buffer = client.Receive(ref remotePoint);
         object msgObj = FormatterHelper.Deserialize(buffer);
         Type msgType = msgObj.GetType();
         if (msgType == typeof(ListUserResponseMessage))
         {
             // 转换消息
             ListUserResponseMessage usersMsg = (ListUserResponseMessage)msgObj;
             // 更新用户列表
             userList.Clear();
             foreach (User user in usersMsg.UserList)
             {
                 userList.Add(user);
             }
             this.DisplayUsers(userList);
         }
         else if (msgType == typeof(PingMessage))
         {
             // 转换消息
             PingMessage purchReqMsg = (PingMessage)msgObj;
             // 发送打洞消息到远程主机
             TrashMessage trashMsg = new TrashMessage();
             buffer = FormatterHelper.Serialize(trashMsg);
             client.Send(buffer, buffer.Length, purchReqMsg.RemotePoint);
         }
         else if (msgType == typeof(P2PTextMessage))
         {
             // 转换消息
             P2PTextMessage workMsg = (P2PTextMessage)msgObj;
             Console.WriteLine("Receive a message: {0}", workMsg.Message);
             // 发送应答消息
             P2PAckMessage ackMsg = new P2PAckMessage();
             buffer = FormatterHelper.Serialize(ackMsg);
             client.Send(buffer, buffer.Length, remotePoint);
         }
         else if (msgType == typeof(P2PAckMessage))
         {
             this.ReceivedACK = true;
         }
         else if (msgType == typeof(TrashMessage))
         {
             Console.WriteLine("Recieve a trash message");
         }
         Thread.Sleep(100);
     }
 }