public WebFtpCli(AppSettings appSettings, ISelectorStorage selectorStorage, IConsole console, IFtpWebRequestFactory webRequestFactory) { _appSettings = appSettings; _console = console; _argsHelper = new ArgsHelper(_appSettings, console); _hostStorageProvider = selectorStorage.Get(SelectorStorage.StorageServices.HostFilesystem); _webRequestFactory = webRequestFactory; }
/// <summary> /// Use ftp://username:[email protected]/pushfolder to extract credentials /// Encode content using html for @ use %40 for example /// </summary> /// <param name="appSettings">the location of the settings</param> /// <param name="storage">storage provider for source files</param> /// <param name="console"></param> /// <param name="webRequest"></param> public FtpService(AppSettings appSettings, IStorage storage, IConsole console, IFtpWebRequestFactory webRequest) { _appSettings = appSettings; _storage = storage; _console = console; _webRequest = webRequest; var uri = new Uri(_appSettings.WebFtp); _appSettingsCredentials = uri.UserInfo.Split(":".ToCharArray()); // Replace WebFtpNoLogin _webFtpNoLogin = $"{uri.Scheme}://{uri.Host}{uri.LocalPath}"; _appSettingsCredentials[0] = HttpUtility.UrlDecode(_appSettingsCredentials[0]); _appSettingsCredentials[1] = HttpUtility.UrlDecode(_appSettingsCredentials[1]); }