Esempio n. 1
0
        public override void SetFile(string fileName)
        {
            var file = FileFactory.GetFile(fileName);

            if (file == null)
            {
                throw new TFUnknownFileTypeException("No se reconoce el tipo del fichero");
            }

            var dbFile = new DbFile
            {
                Path = fileName, Hash = Utils.CalculateHash(fileName), Content = File.ReadAllBytes(fileName)
            };

            _repository.InsertFile(dbFile);

            file.Id = dbFile.Id;

            using (var ms = new MemoryStream(dbFile.Content))
            {
                file.Read(ms);
            }

            if (file.Strings.Count(x => x.Visible) > 0)
            {
                Files.Add(file);
            }
            else
            {
                _repository.DeleteFile(file.Id);
            }
        }
Esempio n. 2
0
        public void SetUp()
        {
            _autoMocker = new();

            _userId = Guid.NewGuid();
            _items  = new Dictionary <object, object>();
            _items.Add("UserId", _userId);

            _dbFileMapper = _autoMocker.CreateInstance <DbFileMapper>();

            _autoMocker
            .Setup <IHttpContextAccessor, IDictionary <object, object> >(x => x.HttpContext.Items)
            .Returns(_items);

            _fileRequest = new AddFileRequest
            {
                Content   = "RGlnaXRhbCBPZmA5Y2U=",
                Extension = ".txt",
                Name      = "DigitalOfficeTestFile"
            };

            _dbFile = new DbFile
            {
                Id        = Guid.NewGuid(),
                Content   = "RGlnaXRhbCBPZmA5Y2U=",
                Extension = ".txt",
                Name      = "DigitalOfficeTestFile"
            };
        }
Esempio n. 3
0
        public async Task <IActionResult> UploadCert(IFormFile file)
        {
            var fileStream = file.OpenReadStream();
            var hash       = SaveFileToFs(fileStream);

            var certBytes = new byte[fileStream.Length];

            fileStream.Position = 0;
            fileStream.Read(certBytes, 0, (int)fileStream.Length);
            var cert = new X509Certificate2(certBytes);

            var dbFile = await _db.Files.FirstOrDefaultAsync(x => x.Md5Hash == hash);

            if (dbFile == null)
            {
                dbFile = new DbFile()
                {
                    CreateDate = DateTime.UtcNow,
                    Md5Hash    = hash,
                    Type       = EFileType.Cert
                };
                _db.Files.Add(dbFile);
                await _db.SaveChangesAsync();
            }

            return(Ok(new CertUploadResult()
            {
                Id = dbFile.Id,
                Hash = hash,
                Issuer = cert.Issuer,
                NotAfter = cert.NotAfter,
                NotBefore = cert.NotBefore,
            }));
        }
Esempio n. 4
0
        public Task <bool> SaveFile(DbFile file)
        {
            var insert = DbSet.InsertOneAsync(file);

            return(null);
            //AddCommand(() => DbSet.InsertOneAsync(obj));
        }
Esempio n. 5
0
        public async Task <IActionResult> UploadBinary(IFormFile file)
        {
            var fileStream = file.OpenReadStream();
            var hash       = SaveFileToFs(fileStream);

            var dbFile = await _db.Files.FirstOrDefaultAsync(x => x.Md5Hash == hash);

            if (dbFile == null)
            {
                dbFile = new DbFile()
                {
                    CreateDate = DateTime.UtcNow,
                    Md5Hash    = hash,
                    Type       = EFileType.Binary
                };
                _db.Files.Add(dbFile);
                await _db.SaveChangesAsync();
            }

            return(Ok(new UploadResult()
            {
                Id = dbFile.Id,
                Hash = hash
            }));
        }
Esempio n. 6
0
        protected void OnBtnCheckInVirusTotalClicked(object sender, EventArgs e)
        {
            if (treeFiles.SelectedItem == null)
            {
                return;
            }

            DbFile file = Workers.GetDBFile(((DbFile)treeFiles.SelectedItem).Sha256);

            outIter = (DbFile)treeFiles.SelectedItem;

            if (file == null)
            {
                MessageBox.Show("Cannot get file from database", MessageBoxType.Error);
                return;
            }

            treeFiles.Enabled            = false;
            btnToggleCrack.Enabled       = false;
            btnScanWithClamd.Enabled     = false;
            btnCheckInVirusTotal.Enabled = false;
            prgProgressFiles1.Visible    = true;
            lblProgressFiles1.Visible    = true;
            Workers.Failed         += VirusTotalFailed;
            Workers.ScanFinished   += VirusTotalFinished;
            Workers.UpdateProgress += UpdateVirusProgress;

            lblProgressFiles1.Text          = "Scanning file with VirusTotal.";
            prgProgressFiles1.Indeterminate = true;

            thdScanFile = new Thread(() => Workers.VirusTotalFileFromRepo(file));
            thdScanFile.Start();
        }
Esempio n. 7
0
        public void CRUD_One_Attachment_And_Fetch_Runs_Successfully()
        {
            var connectionManager = new ConnectionManager(DbFile.GetConnectionString("testdb.db"));
            var repository        = new AttachmentRepository(connectionManager);
            var entry             = new Attachment
            {
                FileName    = "filename.pdf",
                Description = "New Attachment",
                Extension   = "pdf"
            };

            repository.InsertOne(entry);
            var insertedEntity = repository.GetOne(1);

            Assert.IsNotNull(entry);

            insertedEntity.Description = "Modified Attachment";
            repository.UpdateOne(insertedEntity);

            var updatedEntity = repository.GetOne(1);

            Assert.That(updatedEntity.Description, Is.EqualTo("Modified Attachment"));

            repository.DeleteOne(updatedEntity);

            var deletedEntity = repository.GetOne(insertedEntity.Id);

            Assert.IsNull(deletedEntity);
        }
        public void SetUp()
        {
            _autoMocker = new();

            _userId = Guid.NewGuid();
            _items  = new Dictionary <object, object>();
            _items.Add("UserId", _userId);

            IHttpContextAccessor httpContextAccessor = new HttpContextAccessor();

            var dbOptionsFileService = new DbContextOptionsBuilder <FileServiceDbContext>()
                                       .UseInMemoryDatabase("FileServiceTestDatabase")
                                       .Options;

            _dbContext  = new FileServiceDbContext(dbOptionsFileService);
            _repository = new FileRepository(_dbContext, _autoMocker.GetMock <IHttpContextAccessor>().Object);

            _autoMocker
            .Setup <IHttpContextAccessor, IDictionary <object, object> >(x => x.HttpContext.Items)
            .Returns(_items);

            _dbFile = new DbFile
            {
                Id        = Guid.NewGuid(),
                Content   = "RGlnaXRhbCBPZmA5Y2U=",
                Extension = ".txt",
                Name      = "DigitalOfficeTestFile"
            };
        }
Esempio n. 9
0
        public static DbFile UploadSingleFile(FileInfo fi, Crypto.EncryptionMode encryptionMode)
        {
            DbFile dbf = null;

            try
            {
                dbf    = new DbFile();
                dbf.Id = fi.FullName;
                dbf.DateLastWriteTime = fi.LastWriteTimeUtc;
                dbf.Name           = fi.Name;
                dbf.Tag            = null;
                dbf.Category       = null;
                dbf.EncryptionMode = encryptionMode;
                dbf.Size           = fi.Length;
                dbf.Checksum       = Checksum.Calculate(fi);
                if (UploadProcess(dbf) == false)
                {
                    Logger.Warn(LOGNAME, "File has not been uploaded");
                }
                else
                {
                    Logger.Info(LOGNAME, "Link: " + dbf.DownloadLink);
                }
            }
            catch (Exception ex)
            {
                Logger.Error(LOGNAME, ex.Message, ex);
            }
            return(dbf);
        }
Esempio n. 10
0
        private async Task <SQLiteAsyncConnection> GetConnectionAsync()
        {
            if (Connection == null)
            {
                var dbPassword = GetDBPassword();
                var connString = new SQLiteConnectionString(DbFile.FullName, true, key: GetDBPassword());
                Connection = new SQLiteAsyncConnection(connString);
                try
                {
                    await Connection.CreateTableAsync <OTPGenerator>();
                }
                catch (SQLiteException e) when(e.Result == SQLite3.Result.NonDBFile)
                {
                    //Encryption password does not match anymore. Most likely due to roaming.
                    //Notify user and delete database file. Hope they had backup.
                    await Connection.CloseAsync();

                    Connection = null;
                    DbFile.Delete();
                    ErrorOccurred?.Invoke(this, new ErrorEventArgs(e));
                    return(null);
                }

                await MigrateOldDb(Connection);
            }

            return(Connection);
        }
Esempio n. 11
0
        public void SetupTest()
        {
            var databaseOperations =
                new DatabaseOperationsRepository(DbFile.GetConnectionString("testdb.db"));

            databaseOperations.CreateAndInitialize(DbFile.GetPath("testdb.db"), TxtFile.ReadText("RebuildDatabase.txt"));
        }
Esempio n. 12
0
        public void CRUD_One_DiaryEntry_And_Fetch_Runs_Successfully()
        {
            var connectionManager = new ConnectionManager(DbFile.GetConnectionString("testdb.db"));
            var repository        = new DiaryEntryRepository(connectionManager);
            var dateCreated       = DateTime.Parse("2017/03/12 13:12:21");

            var entry = new DiaryEntry
            {
                Title       = "New DiaryEntry",
                DateCreated = dateCreated.Ticks
            };

            repository.InsertOne(entry);
            var insertedEntity = repository.GetOne(1);

            Assert.IsNotNull(entry);
            Assert.That(entry.Title, Is.EqualTo("New DiaryEntry"));
            Assert.That(new DateTime(entry.DateCreated), Is.EqualTo(dateCreated));

            insertedEntity.Title = "Modified DiaryEntry";
            repository.UpdateOne(insertedEntity);

            var updatedEntity = repository.GetOne(1);

            Assert.That(updatedEntity.Title, Is.EqualTo("Modified DiaryEntry"));

            repository.DeleteOne(updatedEntity);

            var deletedEntity = repository.GetOne(insertedEntity.Id);

            Assert.IsNull(deletedEntity);
        }
Esempio n. 13
0
        void VirusTotalFinished(DbFile file)
        {
            Application.Invoke(delegate
            {
                treeFiles.Sensitive            = true;
                btnToggleCrack.Sensitive       = true;
                btnScanWithClamd.Sensitive     = true;
                btnCheckInVirusTotal.Sensitive = true;
                Workers.Failed           -= VirusTotalFailed;
                Workers.ScanFinished     -= VirusTotalFinished;
                Workers.UpdateProgress   -= UpdateVirusProgress;
                prgProgressFiles1.Text    = "";
                prgProgressFiles1.Visible = false;
                if (thdPulseProgress != null)
                {
                    thdPulseProgress.Abort();
                    thdPulseProgress = null;
                }

                if (thdScanFile != null)
                {
                    thdScanFile = null;
                }

                if (!(bool)fileView.GetValue(outIter, 3) && file.HasVirus.HasValue && file.HasVirus.Value)
                {
                    infectedFiles++;
                }

                fileView.Remove(ref outIter);
                AddFile(file);

                lblFileStatus.Text = $"{fileView.IterNChildren()} files ({infectedFiles} infected)";
            });
        }
Esempio n. 14
0
        public void CRUD_One_Snippet_And_Fetch_Runs_Successfully()
        {
            var connectionManager = new ConnectionManager(DbFile.GetConnectionString("testdb.db"));
            var repository        = new SnippetRepository(connectionManager);
            var entry             = new Snippet
            {
                Title             = "New Hyperlink",
                Content           = "Here is some content for you.",
                SyntaxHighlightId = 1
            };

            repository.InsertOne(entry);
            var insertedEntity = repository.GetOne(1);

            Assert.IsNotNull(entry);

            insertedEntity.Title = "Modified Snippet";
            repository.UpdateOne(insertedEntity);

            var updatedEntity = repository.GetOne(1);

            Assert.That(updatedEntity.Title, Is.EqualTo("Modified Snippet"));

            repository.DeleteOne(updatedEntity);

            var deletedEntity = repository.GetOne(insertedEntity.Id);

            Assert.IsNull(deletedEntity);
        }
Esempio n. 15
0
        public async Task InsertTest()
        {
            var ctx  = new DbContext(_cs);
            var item = new DbFile()
            {
                Id        = _fileId,
                Name      = "filetest.txt",
                AuthorId  = _creatorId,
                Created   = new DateTime(2019, 1, 1, 22, 23, 00),
                MessageId = _messageId
            };
            DbFile message;

            try
            {
                message = await ctx.Files.Create(item);

                Assert.AreEqual(item.Id, message.Id);
            }
            catch (MySqlException ex)
            {
                Debug.WriteLine(ex);
                await ctx.Files.Delete(_fileId);

                message = await ctx.Files.Create(item);

                Assert.AreEqual(item.Id, message.Id);
            }
        }
Esempio n. 16
0
        void AddFile(DbFile file)
        {
            Application.Invoke(delegate
            {
                if (thdPulseProgress != null)
                {
                    thdPulseProgress.Abort();
                    thdPulseProgress = null;
                }

                string color;

                if (file.HasVirus.HasValue)
                {
                    color = file.HasVirus.Value ? "red" : "green";
                }
                else
                {
                    color = "yellow";
                }

                if (file.HasVirus.HasValue && file.HasVirus.Value)
                {
                    infectedFiles++;
                }

                fileView.AppendValues(file.Sha256, file.Length, file.Crack, file.HasVirus ?? false,
                                      file.ClamTime?.ToString() ?? "Never",
                                      file.VirusTotalTime?.ToString() ?? "Never",
                                      file.Virus, color, "black", !file.HasVirus.HasValue);
            });
        }
Esempio n. 17
0
 private static void ModeUpload(string filepath, Crypto.EncryptionMode encryptionMode, string savepath)
 {
     try
     {
         DbFile dbf      = FileUploader.UploadSingleFile(new FileInfo(filepath), encryptionMode);
         string nzblPath = filepath + Utilities.EXT_NZBL;
         if (string.IsNullOrEmpty(savepath) == false)
         {
             if (Directory.Exists(savepath))
             {
                 nzblPath = Path.Combine(savepath, new FileInfo(filepath).Name + Utilities.EXT_NZBL);
             }
             else
             {
                 nzblPath = savepath;
             }
         }
         if (dbf != null)
         {
             File.WriteAllBytes(nzblPath, Utilities.HexToBytes(dbf.DownloadLink));
         }
     }
     catch (Exception ex)
     {
         Logger.Error(LOGNAME, ex.Message, ex);
     }
 }
Esempio n. 18
0
        public static void SaveCompiledCustomAssembly(byte[] buffer)
        {
            RemoveExistingCompiledAssemblyFromDb();

            var path = "/" + KompilerEntryPoint.CompiledAssemblyName + ".dll";

            using (var ctx = new DbFileContext())
            {
                var root = ctx.DbFiles.Include(x => x.Children).First(x => x.IsDirectory && x.ParentId == null && x.Name == null && x.VirtualPath.Equals("/", StringComparison.InvariantCultureIgnoreCase));

                var file = new DbFile
                {
                    ParentId    = root.Id,
                    IsDirectory = false,
                    Name        = KompilerEntryPoint.CompiledAssemblyName,
                    Extension   = ".dll",
                    IsBinary    = true,
                    VirtualPath = path,
                    Bytes       = buffer
                };

                ctx.DbFiles.Add(file);
                ctx.SaveChanges();
            }
        }
Esempio n. 19
0
        public void CRUD_One_Hyperlink_And_Fetch_Runs_Successfully()
        {
            var connectionManager = new ConnectionManager(DbFile.GetConnectionString("testdb.db"));
            var repository        = new HyperlinkRepository(connectionManager);
            var entry             = new Hyperlink
            {
                Title = "New Hyperlink",
                Url   = "http://www.msn.com"
            };

            repository.InsertOne(entry);
            var insertedEntity = repository.GetOne(1);

            Assert.IsNotNull(entry);

            insertedEntity.Title = "Modified Hyperlink";
            repository.UpdateOne(insertedEntity);

            var updatedEntity = repository.GetOne(1);

            Assert.That(updatedEntity.Title, Is.EqualTo("Modified Hyperlink"));

            repository.DeleteOne(updatedEntity);

            var deletedEntity = repository.GetOne(insertedEntity.Id);

            Assert.IsNull(deletedEntity);
        }
Esempio n. 20
0
        void VirusTotalFinished(DbFile file)
        {
            Application.Instance.Invoke(delegate
            {
                treeFiles.Enabled            = true;
                btnToggleCrack.Enabled       = true;
                btnScanWithClamd.Enabled     = true;
                btnCheckInVirusTotal.Enabled = true;
                Workers.Failed           -= VirusTotalFailed;
                Workers.ScanFinished     -= VirusTotalFinished;
                Workers.UpdateProgress   -= UpdateVirusProgress;
                lblProgressFiles1.Text    = "";
                prgProgressFiles1.Visible = false;
                if (thdScanFile != null)
                {
                    thdScanFile = null;
                }

                if ((!outIter.HasVirus.HasValue || outIter.HasVirus.HasValue && !outIter.HasVirus.Value) &&
                    file.HasVirus.HasValue && file.HasVirus.Value)
                {
                    infectedFiles++;
                }

                lstFiles.Remove(outIter);
                AddFile(file);

                lblFileStatus.Text = $"{lstFiles.Count} files ({infectedFiles} infected)";
            });
        }
Esempio n. 21
0
        public void AddUserFile(User user, UserFile file)
        {
            using (var db = GetConnect(_mf.ConnectionString))
            {
                SHA256 sha = new SHA256Managed();
                file.Hash = Convert.ToBase64String(sha.ComputeHash(file.Bin));

                var newUserFile = new DbUserfile
                {
                    Userid      = user.Id,
                    Hash        = file.Hash,
                    Filename    = file.Filename,
                    Contenttype = file.ContentType,
                };

                if (db.Files.Any(o => o.Hash == file.Hash))
                {
                    db.Userfiles.Add(newUserFile);
                    db.SaveChanges();
                }
                else
                {
                    DbFile newFile = new DbFile
                    {
                        Hash = file.Hash,
                        Bin  = file.Bin,
                    };

                    db.Files.Add(newFile);
                    db.Userfiles.Add(newUserFile);
                    db.SaveChanges();
                }
            }
        }
Esempio n. 22
0
        private DbFile GetFileFromReader(IDataReader reader)
        {
            var file = new DbFile
            {
                FileId                   = reader.GetInt32("FileId"),
                BlobProvider             = reader.GetSafeString("BlobProvider"),
                BlobProviderData         = reader.GetSafeString("BlobProviderData"),
                ContentType              = reader.GetSafeString("ContentType"),
                FileNameWithoutExtension = reader.GetSafeString("FileNameWithoutExtension"),
                Extension                = reader.GetSafeString("Extension"),
                Size                  = reader.GetSafeInt64("Size"),
                CreationDate          = reader.GetSafeDateTime("CreationDate") ?? DateTime.MinValue,
                IsDeleted             = reader.GetSafeBooleanFromBoolean("IsDeleted"),
                Staging               = reader.GetSafeBooleanFromBoolean("Staging"),
                StagingPropertyTypeId = reader.GetSafeInt32("StagingPropertyTypeId"),
                StagingVersionId      = reader.GetSafeInt32("StagingVersionId"),
                Stream                = reader.GetSafeByteArray("Stream"),
                Checksum              = reader.GetSafeString("Checksum"),
                RowGuid               = reader.GetGuid(reader.GetOrdinal("RowGuid")),
                Timestamp             = reader.GetSafeLongFromBytes("Timestamp")
            };

            file.ExternalStream = GetExternalData(file);

            return(file);
        }
Esempio n. 23
0
        private static void ScanFiles(DirectoryInfo di, SettingFolder sf)
        {
            try
            {
                FileInfo[] files = di.GetFiles();
                foreach (FileInfo fi in files)
                {
                    if (fi.Length < Settings.Settings.Current.FileMinSize)
                    {
                        continue;
                    }
                    string fileId = fi.FullName;
                    if (string.IsNullOrEmpty(fileId))
                    {
                        continue;
                    }
                    DbFile dbf = Db.FileGet(fileId);

                    if (dbf == null) //file not in db
                    {
                        string name = GetFileName(fi, sf);
                        if (CheckFilters(name) == false)
                        {
                            continue;
                        }
                        dbf    = new DbFile();
                        dbf.Id = fileId;
                        dbf.DateLastWriteTime = fi.LastWriteTimeUtc;
                        dbf.Name           = name;
                        dbf.Tag            = sf.Tag;
                        dbf.Category       = sf.Category;
                        dbf.Lang           = sf.Lang;
                        dbf.EncryptionMode = sf.EncryptionMode;
                        dbf.Checksum       = null;
                        dbf.Size           = fi.Length;
                        Db.FileSave(dbf, DbFile.State.QUEUED);
                        Logger.Info(LOGNAME, "Added: " + dbf.Name);
                    }
                    else if (dbf.DateLastWriteTime < fi.LastWriteTimeUtc)
                    {
                        dbf.DateLastWriteTime = fi.LastWriteTimeUtc;
                        dbf.Checksum          = null;
                        dbf.Size         = fi.Length;
                        dbf.DownloadLink = null;
                        Db.FileSave(dbf, DbFile.State.QUEUED);
                        Logger.Info(LOGNAME, "Updated: " + dbf.Name);
                    }
                }
            }
            catch (System.UnauthorizedAccessException ex)
            {
                //nothing to do
                System.Diagnostics.Debug.WriteLine(ex.Message);
            }
            catch (Exception ex)
            {
                Logger.Error(LOGNAME, ex.Message, ex);
            }
        }
        public ActionResult UploadToDb(IEnumerable <HttpPostedFileBase> file)
        {
            string message = string.Empty;

            if (file.Count() > 0)
            {
                //保證資料一致性,將所有資料 Add 完以後,再呼叫 db.SaveChanges() 方法
                //若有上傳失敗的檔案則不會叫到此方法
                try
                {
                    int i = 0;
                    foreach (var F in file)
                    {
                        message += $"<h3>檔案{i}:</h3>";
                        if (F == null)
                        {
                            message += "沒有選到檔案。";
                        }
                        else
                        {
                            if (F.ContentLength > 0)
                            {
                                string FileName   = Path.GetFileName(F.FileName);
                                int    FileLength = F.ContentLength;
                                byte[] buffer     = new byte[FileLength];
                                //讀取 Stream,寫入 Buffer
                                F.InputStream.Read(buffer, 0, FileLength);
                                DbFile dbFile = new DbFile()
                                {
                                    Name     = FileName,
                                    MimeType = F.ContentType,
                                    Size     = FileLength,
                                    Content  = buffer
                                };
                                DbFile NewRow = db.DbFiles.Add(dbFile);

                                message += $" 檔案ID:{NewRow.Id}<br /> 檔案名稱:{FileName}<br /> 上傳檔案類型(MIME):{F.ContentType}<br /> 檔案大小:{FileLength} Byte<br /> 上傳成功!<hr />";
                            }
                            else
                            {
                                message += "請勿上傳空白檔案。";
                            }
                        }
                        i += 1;
                    }
                    db.SaveChanges();
                }
                catch (Exception ex)
                {
                    message = $"檔案上傳失敗,錯誤訊息:<br />{ex.Message}";
                }
            }
            else
            {
                message = "你好像很不會上傳檔案喔?";
            }
            TempData["Message"] = message;
            return(View("UploadFile"));
        }
Esempio n. 25
0
        private void viewBtn_Click(object sender, EventArgs e)
        {
            ClearDisplay();

            // open database and read records back - the database is transactional
            Env env = new Env(EnvCreateFlags.None);

            try {
                DbBTree       btree;
                Env.OpenFlags envFlags =
                    Env.OpenFlags.Create |
                    Env.OpenFlags.InitLock |
                    Env.OpenFlags.InitLog |
                    Env.OpenFlags.InitMPool |
                    Env.OpenFlags.InitTxn |
                    Env.OpenFlags.Recover;
                env.Open(homeDir, envFlags, 0);
                Db     db    = env.CreateDatabase(DbCreateFlags.None);
                Txn    txn   = env.TxnBegin(null, Txn.BeginFlags.None);
                DbFile tmpDb =
                    db.Open(txn, Path.Combine(homeDir, myDb), null, DbType.Unknown, Db.OpenFlags.None, 0);
                txn.Commit(Txn.CommitMode.None);
                if (tmpDb.DbType == DbType.BTree)
                {
                    btree = (DbBTree)tmpDb;
                }
                else
                {
                    throw new ApplicationException("Unexpected database type.");
                }

                List <Customer> custList = new List <Customer>();
                // DbBTreeCursor implements IDisposable - will be closed through "using"
                using (DbBTreeCursor cursor = btree.OpenCursor(null, DbFileCursor.CreateFlags.None)) {
                    Customer cust = null;
                    while (GetNextRecord(cursor, ref cust))
                    {
                        custList.Add(cust);
                    }
                }
                db.Close();

                DataGridViewColumn nameCol = new DataGridViewTextBoxColumn();
                nameCol.Name             = "NameCol";
                nameCol.HeaderText       = "Name";
                nameCol.DataPropertyName = "Name";
                dataGridView.Columns.Add(nameCol);
                dataGridView.DataSource = custList;
                tabControl.SelectTab("dataPage");
            }
            catch (Exception ex) {
                errBox.Text = ex.ToString();
                tabControl.SelectTab("errorPage");
            }
            finally {
                env.Close();
            }
        }
        public FileData Map(DbFile dbFile)
        {
            if (dbFile == null)
            {
                return(null);
            }

            return(new FileData(dbFile.Id, dbFile.Content, dbFile.Extension, dbFile.Name));
        }
        public ActionResult DeleteStudent(int id)
        {
            DbFile  db      = new DbFile();
            Student student = db.student.Find(id);

            db.student.Remove(student);
            db.SaveChanges();
            return(RedirectToAction("StudentDetail"));
        }
Esempio n. 28
0
        void Zf_SaveProgress(object sender, SaveProgressEventArgs e)
        {
            if (e.CurrentEntry != null &&
                e.CurrentEntry.FileName != _zipCurrentEntryName)
            {
                _zipCurrentEntryName = e.CurrentEntry.FileName;
                _filePosition++;

                SetProgress2?.Invoke(this, new ProgressEventArgs
                {
                    Value = _filePosition
                });

                if (!_filesByMachine.TryGetValue(e.CurrentEntry.FileName, out FileByMachine fileByMachine))
                {
                    if (!_filesByMachine.TryGetValue(e.CurrentEntry.FileName.Replace('/', '\\'), out fileByMachine))
                    {
                        throw new ArgumentException(Localization.CannotFindZipEntryInDictionary);
                    }
                }

                DbFile currentFile = fileByMachine.File;

                SetMessage3?.Invoke(this, new MessageEventArgs
                {
                    Message = string.Format(Localization.Compressing, e.CurrentEntry.FileName)
                });

                SetProgress3Bounds?.Invoke(this, new ProgressBoundsEventArgs
                {
                    Minimum = 0,
                    Maximum = currentFile.Size
                });
            }

            SetProgress3?.Invoke(this, new ProgressEventArgs
            {
                Value = e.BytesTransferred
            });

            switch (e.EventType)
            {
            case ZipProgressEventType.Error_Saving:
                #if DEBUG
                throw new Exception();
                #endif

                break;

            case ZipProgressEventType.Saving_Completed:
                _machinePosition++;
                CompressNextMachine();

                break;
            }
        }
Esempio n. 29
0
        void AddFile(DbFile file) => Application.Instance.Invoke(delegate
        {
            if (file.HasVirus.HasValue &&
                file.HasVirus.Value)
            {
                infectedFiles++;
            }

            lstFiles.Add(file);
        });
Esempio n. 30
0
        public Database(string fileName)
        {
            if (!Directory.Exists("data"))
                Directory.CreateDirectory("data");

            fileName = "data/" + fileName;

            db = new Db(DbCreateFlags.None);
            db.CacheSize = new CacheSize(0, 10240, 0);
            dbFile = db.Open(null, fileName, null, DbType.BTree, Db.OpenFlags.Create | Db.OpenFlags.ThreadSafe, 0);
        }
Esempio n. 31
0
        public Guid Upload(string fileName, byte[] fileData)
        {
            var file = new DbFile()
            {
                Name     = fileName,
                FileData = fileData
            };

            filesRepository.Insert(file);
            return(file.Id);
        }
Esempio n. 32
0
        public static void WriteToDisk(DbFile dbFile, bool force)
        {
            Trace.TraceInformation("[DbToLocal]:Copiando arquivo: '{0}'", dbFile.VirtualPath);

            var localpath = GetLocalPath(dbFile);

            if (File.Exists(localpath))
            {
                var fi = new FileInfo(localpath);

                if (fi.LastWriteTimeUtc > dbFile.LastWriteUtc && !force)
                    return;

                Trace.TraceWarning("[DbToLocal]:Arquivo será excluído: {0}/{1}", fi.FullName, fi.LastAccessTimeUtc);
                try
                {
                    File.Delete(localpath);
                }
                catch (Exception ex)
                {
                    Trace.TraceInformation(ex.Message);
                }
            }

            var dir = Path.GetDirectoryName(localpath);
            if (!Directory.Exists(dir))
                Directory.CreateDirectory(dir);

            try
            {
                if (dbFile.IsBinary && dbFile.Bytes.Length > 0)
                    File.WriteAllBytes(localpath, dbFile.Bytes);
                else File.WriteAllText(localpath, dbFile.Texto);
            }
            catch (Exception ex)
            {
                Trace.TraceInformation(ex.Message);
            }

        }
Esempio n. 33
0
        public static void RemoveFromDisk(DbFile dbFile)
        {
            var localpath = GetLocalPath(dbFile);

            if (File.Exists(localpath))
            {
                Trace.TraceWarning("[DbToLocal]:Arquivo será excluído: {0}", localpath);
                try
                {
                    File.Delete(localpath);
                }
                catch (Exception ex)
                {
                    Trace.TraceInformation(ex.Message);
                }
            }
            else if (Directory.Exists(localpath))
            {
                RecursiveDelete(new DirectoryInfo(localpath), true, ".Config");
            }
        }
Esempio n. 34
0
 static string GetLocalPath(DbFile dbFile)
 {
     string localpath = DirInfo.FullName + dbFile.VirtualPath.Replace("/", "\\");
     return localpath;
 }