示例#1
0
        /// <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;
                        }
                    }
                }
            }
        }
示例#2
0
 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);
 }