private void OnPackageDataHeaderReceived(PacketMessage packetMessage) { XmlDocument xmlDocument = CreateXmlDocumentFromMessage(packetMessage); //Console.WriteLine("DEBUG: Received S_PACKAGE_DATA_HEADER: " + xmlDocument.OuterXml); XmlMessagePackageDataHeader message = XmlMessageCreator.CreateXmlMessagePackageDataHeader(xmlDocument); if (PackageDataHeaderReceived != null) { PackageDataHeaderReceived(this, message); } }
public void OnFileHeaderReceive(object sender, XmlMessagePackageDataHeader message) { // verify current state if (_state != PackageBuilderState.WAITING_FOR_HEADER) { throw new InvalidOperationException("OnFileHeaderReceive: Invalid internal state - " + _state.ToString()); } // do work _numberOfExpectedFiles = message.NumberOfFiles; _fullPackagePath = Path.Combine(_currentRepositoryPath, message.RepositoryName, message.PackageName, message.Version); if (!Directory.Exists(_fullPackagePath)) { Directory.CreateDirectory(_fullPackagePath); } // goto next state _state = PackageBuilderState.WAITING_FOR_FILE_BEGIN; }
private void SendPackageData( ClientConnection clientConnection, ClientRequest clientRequest, XmlMessageGetPackage getPackageMessage, string packageDataDir) { DirectoryInfo packageDataInfo = new DirectoryInfo(packageDataDir); // send data package header XmlMessagePackageDataHeader packagedataHeader = XmlMessageCreator.CreateXmlMessagePackageDataHeader( getPackageMessage.RepositoryName, getPackageMessage.PackageName, getPackageMessage.Version, packageDataInfo.GetFiles().Length); SendClientXmlResponse(clientConnection, clientRequest, PacketMessageType.S_PACKAGE_DATA_HEADER, packagedataHeader); // send files foreach (FileInfo packageFileInfo in packageDataInfo.GetFiles()) { SendPackageFile(clientConnection, clientRequest, packageFileInfo); } }