public static SettingBackupFtp ReadSetting() { using (var uof = new UnitOfWork()) { var setting = uof.SettingBackupFtpRepository.Find(a => 1 == 1).FirstOrDefault(); if (setting == null) { setting = new SettingBackupFtp(); uof.SettingBackupFtpRepository.Add(setting); uof.Commit(); } return(setting); } }
/// <summary> /// se ci sono più di x file cancella quelli in eccedenza /// </summary> private void ClearOldFile(SettingBackupFtp setting) { if (setting.MaxMbFileInFtp < 30) { _logger.Warn("Occorre impostare una qta maggiore di mb per il backup, " + setting.MaxMbFileInFtp.ToString() + " sono troppo pochi"); return; } using (var ftp = new Ftp.FtpManager()) { if (ftp.ConnessioneOk()) { while (true) { var listFile = ftp.FileList(); if (listFile == null) { _logger.Info("Non si riesce a prelevare la lista dei backup "); return; } var backList = ftp.FileList().Where(a => a.IsDirectory == false && a.Name.Contains("Backup_") && a.Name.EndsWith(".bak")).ToList(); var size = ConvertBytesToMegabytes(backList.Sum(a => a.Size)); if (size > setting.MaxMbFileInFtp && backList.Count > 1) { var first = listFile.OrderBy(a => a.Name).First(); ftp.Delete(first.FullPath); _logger.Info("Cancello file di backup vecchio : " + first.Name); setting.UltimaCancellazioneBackup = DateTime.Now; using (var uof = new UnitOfWork()) { uof.SettingBackupFtpRepository.Update(setting); uof.Commit(); } } else { return; } } } } }