private void ListPackageVersions( ClientConnection clientConnection, ClientRequest clientRequest) { // request XmlDocument xmlDocument = new XmlDocument(); using (MemoryStream memoryStream = new MemoryStream(clientRequest.Message.Data)) { xmlDocument.Load(memoryStream); } XmlMessageListPackages listPackagesMessage = XmlMessageCreator.CreateXmlMessageListPackages(xmlDocument); // response XmlMessageListPackageVersions packageVersions = XmlMessageCreator.CreateXmlMessageListPackageVersions(); foreach (KeyValuePair <string, List <string> > repositoryItem in listPackagesMessage.Repositories) { Repository repository = _repositoryManager.GetRepository(repositoryItem.Key); foreach (string packageName in repositoryItem.Value) { List <string> versions = repository.GetPackageVersions(packageName); if (!packageVersions.AddRepositoryPackageVersions(repository.Name, packageName, versions)) { Console.WriteLine("ERROR: Cannot add package versions!"); } } } SendClientXmlResponse(clientConnection, clientRequest, PacketMessageType.S_PACKAGE_VERSIONS, packageVersions); }
public void GetPackageVersions( string repositoryName, string packageNames) { XmlMessageListPackages listPackagesMessage = XmlMessageCreator.CreateXmlMessageListPackages(); List <string> packages = packageNames.Split(',').ToList <string>(); listPackagesMessage.AddRepositoryPackages(repositoryName, packages); // create packet PacketMessage packetMessage = new PacketMessage(PacketMessageType.C_LIST_PACKAGE_VERSIONS, 0, listPackagesMessage.ToByteArray()); byte[] packet = _packetManager.CreateMessage(packetMessage.GetMessageData()); // send _clientSocket.Send(packet); // get response int rec = _clientSocket.Receive(_socketBuffer); byte[] data = new byte[rec]; Array.Copy(_socketBuffer, data, rec); _packetManager.AddReceivedData(data); }
private void OnListPackagesMessageReceived(PacketMessage packetMessage) { XmlDocument xmlDocument = CreateXmlDocumentFromMessage(packetMessage); //Console.WriteLine("DEBUG: Received S_PACKAGES: " + xmlDocument.OuterXml); XmlMessageListPackages message = XmlMessageCreator.CreateXmlMessageListPackages(xmlDocument); if (ListPackagesMessageReceived != null) { ListPackagesMessageReceived(this, message); } }
private static void OnListPackagesMessageReceived(object sender, XmlMessageListPackages message) { foreach (KeyValuePair <string, List <string> > repository in message.Repositories) { Console.WriteLine("# Packages of '" + repository.Key + "' repository:"); foreach (string package in repository.Value) { Console.WriteLine(" * " + package); } } }
private void ListPackages( ClientConnection clientConnection, ClientRequest clientRequest) { XmlMessageListPackages listPackagesMessage = XmlMessageCreator.CreateXmlMessageListPackages(); foreach (Repository repository in _repositoryManager.Repositories.Values) { List <string> packages = new List <string>(); foreach (string package in repository.GetPackages()) { packages.Add(package); } listPackagesMessage.AddRepositoryPackages(repository.Name, packages); } SendClientXmlResponse(clientConnection, clientRequest, PacketMessageType.S_PACKAGES, listPackagesMessage); }