public void Remove(ServerModel server) { context.Servers.Remove(server); context.SaveChanges(); }
public static void ConnectionHandler(object newConnection) { Socket connection = (Socket)newConnection; var buffer = new byte[BUFFERLENGTH]; var bufferOut = new byte[BUFFERLENGTH]; var bytesReceived = connection.Receive(buffer); var command = encoding.GetString(buffer, 0, bytesReceived); string[] parts = command.Split(' '); string response = null; var remoteIPEndPoint = connection.RemoteEndPoint as IPEndPoint; var ip = remoteIPEndPoint.Address.ToString(); if (parts[0] != "WAMP/1.0" || parts.Length < 2) response = errorMessage + "Incorrect syntax"; command.Substring(9); switch (parts[1]) { case "ADD": { var name = parts[2]; var port = parts[3]; var model = repository.GetByIPAndPort(ip, port); if (model != null) { Console.WriteLine($"{connection.RemoteEndPoint} tried to add {name} on port {port} but it already exists"); response = message + $"Server {name} ({ip}:{port}) already exists in list of active servers"; } else { model = new ServerModel { Name = name, Ip = ip, Port = port, }; repository.Add(model); response = message + $"Server {name} ({ip}:{port}) added to list of active servers"; Console.WriteLine($"Added server {name} on {ip}:{port}"); } } break; case "REMOVE": { var port = parts[2]; var model = repository.GetByIPAndPort(ip, port); if (model == null) { response = message + $"No server with address {ip}:{port} listed as active server"; Console.WriteLine($"{connection.RemoteEndPoint} tried to remove server from port {port} but no such server exists"); } else { repository.Remove(model); response = message + $"Server {model.Name} ({ip}:{port}) removed from list of active servers"; Console.WriteLine($"Removed server {model.Name} ({ip}:{port})"); } } break; case "AVAILABLE_SERVERS": { response = serverlist; var servers = repository.GetActiveServers(); foreach (var server in servers) { response += $"{server.Name},{server.Ip}:{server.Port}, "; } response.Remove(response.Length - 2); Console.WriteLine($"Sent serverlist to {connection.RemoteEndPoint}"); } break; default: response = errorMessage + $"Unknown command {parts[1]}"; Console.WriteLine($"{connection.RemoteEndPoint} sent unknown command ({parts[1]})"); break; } bufferOut = encoding.GetBytes(response); connection.Send(bufferOut); connection.Shutdown(SocketShutdown.Both); }
public void Add(ServerModel server) { context.Servers.Add(server); context.SaveChanges(); }