using System;
using System.Linq;
using Ionic.Zip;
using NzbDrone.Common;
using NzbDrone.Common.EnvironmentInfo;

namespace NzbDrone.Core.Providers
{
    public class BackupProvider
    {
        private readonly IAppFolderInfo _appFolderInfo;

        public BackupProvider(IAppFolderInfo appFolderInfo)
        {
            _appFolderInfo = appFolderInfo;
        }

        public BackupProvider()
        {
        }

        public virtual string CreateBackupZip()
        {
            var configFile = _appFolderInfo.GetConfigPath();
            var zipFile = _appFolderInfo.GetConfigBackupFile();

            using (var zip = new ZipFile())
            {
                zip.AddFile(configFile, String.Empty);
                zip.Save(zipFile);
            }

            return zipFile;
        }
    }
}