public XboxTransferWorker(IXboxGameRepositoryFactory xboxGameRepositoryFactory, string gameName, BlockingCollection <IXboxTransferRequest> requests, BlockingCollection <IXboxTransferRequest> finishedRequests, IProgressNotifier notifier) : base(xboxGameRepositoryFactory, gameName) { _requests = requests ?? throw new ArgumentNullException(nameof(requests)); _finishedRequests = finishedRequests; _notifier = notifier; }
public XboxTransferProgressWorker(IXboxGameRepositoryFactory xboxGameRepositoryFactory, string gameName, IProgressNotifier notifier, BlockingCollection <IXboxTransferRequest> finishedRequests, long totalBytesToUpload, long totalBytesAlreadyUploaded) { _gameName = gameName; _notifier = notifier; _finishedRequests = finishedRequests; _totalBytesToUpload = totalBytesToUpload; _totalBytesAlreadyUploaded = totalBytesAlreadyUploaded; }
public UploadArchivesUseCase(IXboxGameRepositoryFactory xboxGameRepositoryFactory, IProgressNotifier notifier, IZipFileProcessor zipFileProcessor) { _xboxGameRepositoryFactory = xboxGameRepositoryFactory; _notifier = notifier; _zipFileProcessor = zipFileProcessor; _xboxFtpRequests = new BlockingCollection <IXboxTransferRequest>(); _xboxDirectoryCreateRequests = new BlockingCollection <XboxDirectoryCreateRequest>(); }
public XboxDirectoryStructureWorker(IXboxGameRepositoryFactory xboxGameRepositoryFactory, string gameName, BlockingCollection <XboxDirectoryCreateRequest> requests) : base(xboxGameRepositoryFactory, gameName) { _requests = requests ?? throw new ArgumentNullException(nameof(requests)); }
static void Main(string[] args) { SettingsLoaderIni settingsLoader = new SettingsLoaderIni(args); var settings = settingsLoader.Load(); string correlationId = Guid.NewGuid().ToString(); Log.Logger = SerilogConfiguration.Create("XboxFtpUpload", settings, correlationId).CreateLogger(); Log.Information("Starting XBox FTP Upload"); SerilogProgressNotifier serilogNotifier = new SerilogProgressNotifier(Log.Logger); TerminalGuiAdapter adapter = new TerminalGuiAdapter(); adapter.Initialize(); TerminalGuiProgressNotifier terminalGuiProgressNotifier = adapter.CreateNotifier(); IProgressNotifier notifier = new ChainedProgressNotifier(new List <IProgressNotifier>() { terminalGuiProgressNotifier, serilogNotifier }); try { IXboxGameRepositoryFactory xboxGameRepositoryFactory = null; if (settings.TestMode) { xboxGameRepositoryFactory = UseInMemoryAdapter(); } else { FtpXboxSettings xboxFtpsettings = new FtpXboxSettings() { Host = settings.Host, Password = settings.Password, User = settings.User, Port = settings.Port, GameRootDirectory = settings.GameRootDirectory }; xboxGameRepositoryFactory = UseFtpAdapter(xboxFtpsettings); } UploadArchivesUseCase useCase = new UploadArchivesUseCase(xboxGameRepositoryFactory, notifier, new ZipFileProcessor()); List <string> gamesToUpload = new List <string>(); if (!string.IsNullOrWhiteSpace(settings.GameToUpload)) { Log.Warning("Found single games for upload specified"); gamesToUpload.Add(settings.GameToUpload); } else if (!string.IsNullOrWhiteSpace(settings.GamesToUploadFile)) { if (!File.Exists(settings.GamesToUploadFile)) { Log.Warning("File specified in GameToUploadFile does not exist"); adapter.Shutdown(); Environment.Exit(-1); } gamesToUpload = File.ReadAllLines(settings.GamesToUploadFile).Select(x => RemoveSurroundingQuotes(x)) .ToList(); } else if (settings.GamesToUpload == null || settings.GamesToUpload.Count == 0) { Log.Warning("Found no games configured to upload"); adapter.Shutdown(); Environment.Exit(0); } else { gamesToUpload = settings.GamesToUpload; } useCase.Execute(gamesToUpload); } catch (Exception ex) { Log.Error(ex, "Unhandled exception occured"); adapter.Shutdown(); Environment.Exit(-1); } Log.Information("Finished XBox FTP Upload"); adapter.Shutdown(); Environment.Exit(0); }
public XboxWorkerBase(IXboxGameRepositoryFactory xboxGameRepositoryFactory, string gameName) { XboxGameRepositoryFactory = xboxGameRepositoryFactory ?? throw new ArgumentNullException(nameof(xboxGameRepositoryFactory)); GameName = gameName ?? throw new ArgumentNullException(nameof(gameName)); }