/// <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; } } } } }
public bool FtpSend(string fileNewFile) { /*se presente, copia il file e lo invia all'ftp e lo cancella in locale*/ using (var ftp = new Ftp.FtpManager()) { if (ftp.ConnessioneOk()) { if (ftp.Upload(fileNewFile)) { _logger.Info("Upload riuscito del backup : " + fileNewFile); System.IO.File.Delete(fileNewFile); return(true); } else { _logger.Error("Upload riuscito del backup : " + fileNewFile); } } } return(false); }