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")); }
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); } }
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); } }