Exemple #1
0
        private static async Task ShrinkNormalAsync(Siaqodb siaqodb)
        {
            var allOrderByPos = (await(from RawdataInfo ri in siaqodb
                                       where ri.IsFree == false
                                       select ri).ToListAsync()).OrderBy(a => a.Position).ToList();

            ISqoFile     file         = siaqodb.GetRawFile();
            MemoryStream memStream    = new MemoryStream();
            MemoryStream memStreamNew = new MemoryStream();

            byte[] fullFile = new byte[file.Length];

            await file.ReadAsync(0, fullFile);

            memStream.Write(fullFile, 0, fullFile.Length);

            for (int i = 0; i < allOrderByPos.Count; i++)
            {
                RawdataInfo rawi        = allOrderByPos[i];
                byte[]      actualBytes = new byte[rawi.Length];
                memStream.Seek(rawi.Position, SeekOrigin.Begin);
                memStream.Read(actualBytes, 0, actualBytes.Length);
                if (i == 0)
                {
                    rawi.Position = 0;
                    memStreamNew.Write(actualBytes, 0, actualBytes.Length);
                }
                else
                {
                    RawdataInfo prev = allOrderByPos[i - 1];
                    rawi.Position = prev.Position + prev.Length;
                    memStreamNew.Seek(rawi.Position, SeekOrigin.Begin);
                    memStreamNew.Write(actualBytes, 0, actualBytes.Length);
                }
            }
            for (int i = 0; i < allOrderByPos.Count; i++)
            {
                await siaqodb.StoreObjectAsync(allOrderByPos[i]);
            }
            file.Length = memStreamNew.Length;
            await file.WriteAsync(0, memStreamNew.ToArray());
        }
Exemple #2
0
 public void Open(bool useElevatedTrust)
 {
     file = FileFactory.Create(filePath, false, useElevatedTrust);
 }
Exemple #3
0
 public ObjectSerializer(string filePath, bool useElevatedTrust)
 {
     this.filePath = filePath;
     file          = FileFactory.Create(filePath, false, useElevatedTrust);
 }
Exemple #4
0
 public TransactionsStorage(string filePath, bool useElevatedTrust)
 {
     file = FileFactory.Create(filePath, false, useElevatedTrust);
 }