void AddEntry(StreamDecorator self) { var src = (MemoryStream)self.BaseStream; var buffer = src.ToArray(); var x = zip.CreateEntry(self.UserState.ToString(), CompressionLevel); using (var dst = x.Open()) dst.Write(buffer, 0, buffer.Length); }
public void Save(CFStream cfStream) { //throw new NotImplementedException("API Unstable - Work in progress - Milestone 2.3.0.0"); //properties.Sort((a, b) => a.PropertyIdentifier.CompareTo(b.PropertyIdentifier)); Stream s = new StreamDecorator(cfStream); BinaryWriter bw = new BinaryWriter(s); PropertySetStream ps = new PropertySetStream { ByteOrder = 0xFFFE, Version = 0, SystemIdentifier = 0x00020006, CLSID = Guid.Empty, NumPropertySets = 1, FMTID0 = this.ContainerType == ContainerType.SummaryInfo ? new Guid("{F29F85E0-4FF9-1068-AB91-08002B27B3D9}") : new Guid("{D5CDD502-2E9C-101B-9397-08002B2CF9AE}"), Offset0 = 0, FMTID1 = Guid.Empty, Offset1 = 0, PropertySet0 = new PropertySet { NumProperties = (uint)this.Properties.Count(), PropertyIdentifierAndOffsets = new List <PropertyIdentifierAndOffset>(), Properties = new List <Interfaces.IProperty>(), PropertyContext = this.Context } }; foreach (var op in this.Properties) { ITypedPropertyValue p = PropertyFactory.Instance.NewProperty(op.VTType, this.Context.CodePage); p.Value = op.Value; ps.PropertySet0.Properties.Add(p); ps.PropertySet0.PropertyIdentifierAndOffsets.Add(new PropertyIdentifierAndOffset() { PropertyIdentifier = op.PropertyIdentifier, Offset = 0 }); } ps.PropertySet0.NumProperties = (uint)this.Properties.Count(); if (HasUserDefinedProperties) { ps.NumPropertySets = 2; ps.PropertySet1 = new PropertySet { NumProperties = (uint)this.UserDefinedProperties.Properties.Count(), PropertyIdentifierAndOffsets = new List <PropertyIdentifierAndOffset>(), Properties = new List <Interfaces.IProperty>(), PropertyContext = UserDefinedProperties.Context }; ps.FMTID1 = new Guid("{D5CDD502-2E9C-101B-9397-08002B2CF9AE}"); ps.Offset1 = 0; foreach (var op in this.Properties) { ITypedPropertyValue p = PropertyFactory.Instance.NewProperty(op.VTType, ps.PropertySet1.PropertyContext.CodePage); p.Value = op.Value; ps.PropertySet1.Properties.Add(p); ps.PropertySet1.PropertyIdentifierAndOffsets.Add(new PropertyIdentifierAndOffset() { PropertyIdentifier = op.PropertyIdentifier, Offset = 0 }); } } ps.Write(bw); }
public void OneTimeSetUp() { _mockStream = new Mock <Stream>(); _decorator = new StreamDecorator(_mockStream.Object); }
void AddEntry(StreamDecorator self) => outputs.Add(self.UserState.ToString(), ((MemoryStream)self.BaseStream).ToArray());