public void GetValidatedFiles_WhenNullResultsReturned_ThrowsNoAvailableStatsFilesException()
        {
            var expected = new ValidatedFile[0];

            innerServiceMock.GetValidatedFiles(DateTime.MinValue, DateTime.MaxValue).Returns(expected);

            Assert.Throws <NoAvailableStatsFilesException>(() =>
                                                           systemUnderTest.GetValidatedFiles(DateTime.MinValue, DateTime.MaxValue));
        }
 public async Task DownloadFile(FilePayload filePayload, ValidatedFile validatedFile)
 {
     await GetContainerAndExecute(async container =>
     {
         CloudBlockBlob cloudBlockBlob = container.GetBlockBlobReference(validatedFile.FilePath);
         await cloudBlockBlob.DownloadToFileAsync(filePayload.DownloadFilePath, FileMode.CreateNew);
         return(true);
     });
 }
        private async Task <ParseResults> GetValidatedFile(ValidatedFile validatedFile)
        {
            loggingService.LogMethodInvoked();
            var filePayload = new FilePayload();

            filePayloadApiSettingsService.SetFilePayloadApiSettings(filePayload);
            await dataStoreService.DownloadFile(filePayload, validatedFile);

            ParseResults results = fileValidationService.ValidateFile(filePayload);

            loggingService.LogMethodFinished();
            return(results);
        }
        public void SetUp()
        {
            filePayloadMock = new FilePayload
            {
                DownloadFilePath = "\\DownloadDirectory\\Source.ext",
                UploadPath       = "\\UploadDirectory\\Target.ext"
            };

            validatedFileMock = new ValidatedFile(0, DateTime.UtcNow, "\\ValidatedFilePath\\Source.ext");

            dataStoreSettingsMock = Substitute.For <IDataStoreSettings>();

            dataStoreSettingsMock.UploadDirectory.Returns("C:\\Path");

            directoryServiceMock = Substitute.For <IDirectoryService>();

            fileServiceMock = Substitute.For <IFileService>();

            systemUnderTest = new UncDataStoreProvider(dataStoreSettingsMock, directoryServiceMock, fileServiceMock);
        }
        private async Task <ParseResults[]> GetValidatedFiles(DateTime startDate, DateTime endDate)
        {
            loggingService.LogMethodInvoked();
            IList <ValidatedFile> validatedFiles            = databaseService.GetValidatedFiles(startDate, endDate);
            IOrderedEnumerable <ValidatedFile> orderedFiles = validatedFiles.OrderBy(file => file.DownloadDateTime);
            ValidatedFile firstFile = orderedFiles.First();
            ValidatedFile lastFile  = orderedFiles.Last();

            loggingService.LogVerbose(
                $"First File: DownloadId={firstFile.DownloadId} DownloadDateTime={firstFile.DownloadDateTime}");
            loggingService.LogVerbose(
                $"Last File: DownloadId={lastFile.DownloadId} DownloadDateTime={lastFile.DownloadDateTime}");
            Task <ParseResults> firstResultTask = GetValidatedFile(firstFile);
            Task <ParseResults> lastResultTask  = GetValidatedFile(lastFile);

            ParseResults[] results = await Task.WhenAll(firstResultTask, lastResultTask);

            loggingService.LogMethodFinished();
            return(results);
        }
 public Task DownloadFile(FilePayload filePayload, ValidatedFile validatedFile)
 {
     return(Task.Run(() => fileService.CopyFile(validatedFile.FilePath, filePayload.UploadPath)));
 }