public SchedulesController() { var systemTime = new SystemTime(); var httpClient = new HttpClient(); var client = new Client(httpClient); var scraper = new Scraper(systemTime, client); var serializer = new ScrapeResultSerializer(); var pathBuilder = new PathBuilder(); var storageClient = new StorageClient(systemTime, pathBuilder); var uniqueClient = new UniqueClient(storageClient); var statusRecorder = new UploadStatusRecorder(storageClient, systemTime); _scrapeResultRecorder = new ScrapeResultRecorder(scraper, serializer, storageClient, uniqueClient, statusRecorder); _throttledScrapeResultRecorder = new ThrottledScrapeResultRecorder(systemTime, _scrapeResultRecorder); var gtfsConverter = new GtfsConverter(); var gtfsCsvSerializer = new GtfsCsvSerializer(); var gtfsFeedSerializer = new GtfsFeedSerializer(gtfsCsvSerializer); _gtfsFeedArchiveRecord = new GtfsFeedArchiveRecorder(storageClient, uniqueClient, gtfsConverter, gtfsFeedSerializer, statusRecorder); var settingsService = new SettingsProvider(); _settings = new Settings(settingsService); }
private static async Task<int> ExecuteAsync(Options options) { // build the implementation models using (var stdin = Console.OpenStandardInput()) { var client = new Client(new SystemTime(), new PathBuilder()); if (options.OnlyUnique) { var uniqueClient = new UniqueClient(client); // we have to buffer the input for byte-by-byte comparison using (var buffer = new MemoryStream()) { await stdin.CopyToAsync(buffer); buffer.Seek(0, SeekOrigin.Begin); var request = new UniqueUploadRequest { ConnectionString = options.ConnectionString, Container = options.Container, ContentType = options.ContentType, PathFormat = options.PathFormat, Stream = buffer, EqualsAsync = null, UploadDirect = !options.NoDirect, Trace = Console.Out }; // upload await uniqueClient.UploadAsync(request); } } else { var request = new UploadRequest { ConnectionString = options.ConnectionString, Container = options.Container, ContentType = options.ContentType, PathFormat = options.PathFormat, UploadDirect = !options.NoDirect, UploadLatest = !options.NoLatest, Stream = stdin, Trace = Console.Out }; // upload await client.UploadAsync(request); } } return 0; }
public TestContext() { // data UtcNow = new DateTimeOffset(2015, 1, 2, 3, 4, 5, 6, TimeSpan.Zero); Content = "foobar"; Container = TestSupport.GetTestContainer(); UploadRequest = new UploadRequest { ConnectionString = TestSupport.ConnectionString, Container = Container, ContentType = "text/plain", PathFormat = "testpath/{0}.txt", UploadDirect = true, UploadLatest = true, Stream = new MemoryStream(Encoding.UTF8.GetBytes(Content)), Trace = TextWriter.Null }; GetLatestRequest = new GetLatestRequest { ConnectionString = UploadRequest.ConnectionString, Container = UploadRequest.Container, PathFormat = UploadRequest.PathFormat, Trace = TextWriter.Null }; // dependencies SystemTime = new Mock<ISystemTime>(); PathBuilder = new PathBuilder(); // setup SystemTime.Setup(x => x.UtcNow).Returns(() => UtcNow); // target Target = new Client(SystemTime.Object, PathBuilder); }
public TestContext() { // data UtcNow = new DateTimeOffset(2015, 1, 2, 3, 4, 5, 6, TimeSpan.Zero); Content = "foobar"; Container = TestSupport.GetTestContainer(); Prefix = "testpath"; UploadRequest = new UploadRequest { ConnectionString = TestSupport.ConnectionString, Container = Container, ContentType = "text/plain", PathFormat = Prefix + "/{0}.txt", UploadDirect = true, UploadLatest = true, Stream = new MemoryStream(Encoding.UTF8.GetBytes(Content)), Trace = TextWriter.Null }; CollapseRequest = new CollapseRequest { ConnectionString = UploadRequest.ConnectionString, Container = UploadRequest.Container, PathFormat = UploadRequest.PathFormat, Comparer = new OrdinalCollapserComparer(), Trace = TextWriter.Null }; CloudContext = new CloudContext(UploadRequest.ConnectionString, UploadRequest.Container); // dependencies SystemTime = new Mock<ISystemTime>(); PathBuilder = new PathBuilder(); Client = new Client(SystemTime.Object, PathBuilder); // setup SystemTime .Setup(x => x.UtcNow) .Returns(() => UtcNow).Callback(() => UtcNow = UtcNow.AddSeconds(1)); // target Target = new Collapser(PathBuilder); }
public TestContext() { // data UtcNow = new DateTimeOffset(2015, 1, 2, 3, 4, 5, 6, TimeSpan.Zero); Content = "newContent"; Container = TestSupport.GetTestContainer(); EqualsAsyncCalled = false; UniqueUploadRequest = new UniqueUploadRequest { ConnectionString = TestSupport.ConnectionString, Container = Container, ContentType = "text/plain", PathFormat = "testpath/{0}.txt", UploadDirect = true, Stream = new MemoryStream(Encoding.UTF8.GetBytes(Content)), Trace = TextWriter.Null, EqualsAsync = async x => { EqualsAsyncCalled = true; var actualContent = await new StreamReader(x.Stream).ReadLineAsync(); return actualContent == Content; } }; GetLatestRequest = new GetLatestRequest { ConnectionString = UniqueUploadRequest.ConnectionString, Container = UniqueUploadRequest.Container, PathFormat = UniqueUploadRequest.PathFormat, Trace = TextWriter.Null }; // dependencies SystemTime = new Mock<ISystemTime>(); PathBuilder = new PathBuilder(); Client = new Client(SystemTime.Object, PathBuilder); // setup SystemTime.Setup(x => x.UtcNow).Returns(() => UtcNow); // target Target = new UniqueClient(Client); }