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);
            }
        }
Exemplo n.º 2
0
        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;
        }
Exemplo n.º 3
0
        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);
            }
        }