Example #1
0
        public void LoadPacketDefiniton()
        {
            var fileName = Path.Combine(_folderContainsUpdate, _packetdefinitionXml);
            if (File.Exists(fileName))
            {
                PacketDefinitionsLoader loader = new PacketDefinitionsLoader();
                Definition = loader.LoadPacket(fileName);
            }

        }
Example #2
0
        public void CreatePacket(Packet packetDefinition, List<string> fileList, List<string> addFileList, string archFileName)
        {
            FileStream fsOut = File.Create(archFileName);

            ZipOutputStream zip = new ZipOutputStream(fsOut);
            zip.SetLevel(9);

            var fileName = Path.GetTempFileName();

            PacketDefinitionsLoader loader = new PacketDefinitionsLoader();
            packetDefinition.ChangedFiles =
                packetDefinition.ChangedFiles.Select(
                    x =>
                        FolderOffset != string.Empty
                            ? ZipEntry.CleanName(x.Replace(FolderOffset, string.Empty))
                            : ZipEntry.CleanName(Path.GetFileName(x))).ToList();

            loader.SavePacket(packetDefinition, fileName);

            PutFileToZip(fileName, _packetdefinitionXml, zip);

            try
            {
                File.Delete(fileName);
            }
            catch (Exception)
            {

            }

            foreach (var path in fileList)
            {
                string entryName = FolderOffset != string.Empty ? path.Replace(FolderOffset, string.Empty) : Path.GetFileName(path);
                entryName = ZipEntry.CleanName(entryName);
                PutFileToZip(path, entryName, zip);
            }

            foreach (var path in addFileList)
            {
                string entryName = AdditionalFilesOffset + Path.GetFileName(path);
                entryName = ZipEntry.CleanName(entryName);
                PutFileToZip(path, entryName, zip);
            }

            zip.IsStreamOwner = true;
            zip.Close();
        }
Example #3
0
        public void SavePacketTest()
        {
            Packet packet = new Packet();
            packet.PacketIdentification = new PacketIdentificationType();
            packet.PacketIdentification.Number = "2";
            packet.PacketIdentification.Date = DateTime.Now;
            packet.PacketIdentification.Guid = Guid.NewGuid().ToString();
            packet.PacketIdentification.ProgramGuid = Guid.NewGuid().ToString();
            packet.PacketIdentification.ProgramVersion = "5.2016.2.2";

            packet.PreviousPackets = new List<PacketIdentificationType>();
            var sss = new PacketIdentificationType
            {
                Number = "1",
                Date = DateTime.Now.AddDays(-1),
                Guid = Guid.NewGuid().ToString(),
                ProgramGuid = Guid.NewGuid().ToString(),
                ProgramVersion = "5.2016.2.2"
            };

            packet.PreviousPackets.Add(sss);

            packet.ActionsBeforeUpdate = new ActionsType();
            packet.ActionsBeforeUpdate.Runs = new List<RunAppType>();

            packet.ActionsBeforeUpdate.Runs.Add(new RunAppType() { RelPath = "asdd", Args = "asddvk", Value = "" });
            packet.ActionsBeforeUpdate.Runs.Add(new RunAppType() { RelPath = "as", Args = "asddvklklfk", Value = "94056" });

            packet.ActionsBeforeUpdate.Scripts = new List<string>();
            packet.ActionsBeforeUpdate.Scripts.Add("dfjhdgfg");
            packet.ActionsBeforeUpdate.Scripts.Add("cxvbvb");

            packet.ChangedFiles = new List<string>() {"asd", "xccc", "aaaaaa"};

            packet.ActionsAfterUpdate = new ActionsType();
            packet.ActionsAfterUpdate.Runs = new List<RunAppType>();
            packet.ActionsAfterUpdate.Runs.Add(new RunAppType() { RelPath = "asdd 2", Args = "asddvklklfk 2 ", Value = "94056" }); 
            packet.ActionsAfterUpdate.Runs.Add(new RunAppType() { RelPath = "asdd" , Args = "asddvklklfk", Value = "94056" });
            packet.UpdateMessage = string.Empty;
            PacketDefinitionsLoader definitionsLoader = new PacketDefinitionsLoader();

            var fileName = Path.GetTempFileName();
            definitionsLoader.SavePacket(packet, fileName);

        }
Example #4
0
 public void LoadPacketTest()
 {
     PacketDefinitionsLoader definitionsLoader = new PacketDefinitionsLoader();
     var packet = definitionsLoader.LoadPacket(@"D:\programming\Uppy\UPPY.Updater\Examples\ExamplePacket.xml");
     Assert.IsNotNull(packet);
 }
Example #5
0
        public Packet UnpackFile(string archFileName, string outFolder)
        {
            ZipFile zf = null;
            try
            {
                FileStream fs = File.OpenRead(archFileName);
                zf = new ZipFile(fs);

                foreach (ZipEntry zipEntry in zf)
                {
                    if (!zipEntry.IsFile)
                    {
                        continue; // Ignore directories
                    }

                    var entryFileName = zipEntry.Name;
                    // to remove the folder from the entry:- entryFileName = Path.GetFileName(entryFileName);
                    // Optionally match entrynames against a selection list here to skip as desired.
                    // The unpacked length is available in the zipEntry.Size property.

                    byte[] buffer = new byte[4096]; // 4K is optimum
                    Stream zipStream = zf.GetInputStream(zipEntry);

                    // Manipulate the output filename here as desired.
                    String fullZipToPath = Path.Combine(outFolder, entryFileName);
                    string directoryName = Path.GetDirectoryName(fullZipToPath);
                    if (directoryName.Length > 0)
                        Directory.CreateDirectory(directoryName);

                    // Unzip file in buffered chunks. This is just as fast as unpacking to a buffer the full size
                    // of the file, but does not waste memory.
                    // The "using" will close the stream even if an exception occurs.
                    using (FileStream streamWriter = File.Create(fullZipToPath))
                    {
                        StreamUtils.Copy(zipStream, streamWriter, buffer);
                    }
                }

            }
            catch (Exception)
            {
                return null;
            }
            finally
            {
                if (zf != null)
                {
                    zf.IsStreamOwner = true; // Makes close also shut the underlying stream
                    zf.Close(); // Ensure we release resources
                }
            }

            var fileDef = Path.Combine(outFolder, _packetdefinitionXml);

            if (!File.Exists(fileDef))
            {
                return null;
            }

            var loader = new PacketDefinitionsLoader();
            return loader.LoadPacket(fileDef);
        }