public bool GetContactRequestList(out string message) { try { // Prepare the packet to send Packets.BasicReqPacket packet = new Packets.BasicReqPacket( Packets.PacketTypes.ListContactReq, alea, profile.Username ); // send the package udp.SendMessage(packet.Pack()); // Recieve packet byte[] data = udp.RecieveMessage(); // Unpack the data and check the type Packets.Packet p = Packets.Packet.Unpack <Packets.Packet>(data); switch ((Packets.PacketTypes)p.Type) { case Packets.PacketTypes.ContactAck: // Update contact requests list Packets.ContactReqListPacket contactsRequests = Packets.Packet.Unpack <Packets.ContactReqListPacket>(data); profile.RecievedContactRequests = contactsRequests.Recieved; profile.SentContactRequests = contactsRequests.Sent; message = "Recieved list correctly"; return(true); case Packets.PacketTypes.Error: message = "Error: " + Packets.Packet.Unpack <Packets.AckErrorPacket>(data).Message; DebugInfo("Contact request list: " + message); break; default: DebugInfo("Contact request list: Unexpected type."); message = "Error, unexpected type."; break; } return(false); } catch (System.Net.Sockets.SocketException) { DebugInfo("Server is offline."); message = "Server is offline."; return(false); } }
// Get contact requests list for user current public static bool ContactRequestsList(Packets.BasicReqPacket packet, ClientStatus current, ref List <Models.ContactRequest> sent, ref List <Models.ContactRequest> recieved, out string message) { try { if (CheckBasics(current, ClientStatus.Status.Disconnected, packet.Alea, out message)) { var db = new Models.ServerDatabase(); // Fill the lists with the requests recieved = db.ContactRequests .Where(r => r.To.Username == current.Client.Username) .ToList(); sent = db.ContactRequests .Where(r => r.From.Username == current.Client.Username) .ToList(); message = "Cool!"; return(true); } else { message = "Contact Requests List Error: " + message; return(false); } } catch (SqlException) { message = "Contact Requests List Error: Database error."; return(false); } }