public SyncService(IWebSiteRepository sitesRepository, ISyncStatusRepository syncStatusRepository, CloudStorageAccount storageAccount, string localSitesPath, string localTempPath, IEnumerable<string> directoriesToExclude, IEnumerable<string> sitesToExclude, Func<bool> syncEnabled, IISManager iisManager, ILoggerFactory loggerFactory, LoggerLevel logLevel)
{
_sitesRepository = sitesRepository;
_syncStatusRepository = syncStatusRepository;
_localSitesPath = localSitesPath;
_localTempPath = localTempPath;
_directoriesToExclude = directoriesToExclude;
_sitesToExclude = sitesToExclude;
_syncEnabled = syncEnabled;
_iisManager = iisManager;
_entries = new Dictionary<string, FileEntry>();
_siteDeployTimes = new Dictionary<string, DateTime>();
_logger = loggerFactory.Create(GetType(), logLevel);
var sitesContainerName = AzureRoleEnvironment.GetConfigurationSettingValue(Constants.WebDeployPackagesBlobContainerKey).ToLowerInvariant();
_container = storageAccount.CreateCloudBlobClient().GetContainerReference(sitesContainerName);
_container.CreateIfNotExist();
}