Beispiel #1
0
        public void GetValidatedFiles_WhenInvoked_GetsValidatedFiles()
        {
            databaseConnectionServiceMock.When(service =>
                                               service.ExecuteStoredProcedure("[FoldingCoin].[GetValidatedFiles]",
                                                                              Arg.Any <IEnumerable <DbParameter> >(), Arg.Any <DataTable>())).Do(
                callInfo =>
            {
                var dataTable = callInfo.Arg <DataTable>();
                dataTable.Columns.Add(new DataColumn("DownloadId", typeof(int)));
                dataTable.Columns.Add(new DataColumn("DownloadDateTime",
                                                     typeof(DateTime)));
                dataTable.Columns.Add(new DataColumn("FilePath", typeof(string)));
                DataRow user1 = dataTable.NewRow();
                dataTable.Rows.Add(user1);
                user1["DownloadId"]       = 1;
                user1["DownloadDateTime"] = DateTime.Today.AddMinutes(1);
                user1["FilePath"]         = "FilePath1";
                DataRow user2             = dataTable.NewRow();
                dataTable.Rows.Add(user2);
                user2["DownloadId"]       = 2;
                user2["DownloadDateTime"] = DateTime.Today.AddMinutes(2);
                user2["FilePath"]         = "FilePath2";
                dataTable.AcceptChanges();
            });

            IList <ValidatedFile> actual = systemUnderTest.GetValidatedFiles(DateTime.MinValue, DateTime.MaxValue);

            Assert.That(actual.Count, Is.EqualTo(2));
            Assert.That(actual[0].DownloadId, Is.EqualTo(1));
            Assert.That(actual[0].DownloadDateTime, Is.EqualTo(DateTime.Today.AddMinutes(1)));
            Assert.That(actual[0].FilePath, Is.EqualTo("FilePath1"));
            Assert.That(actual[1].DownloadId, Is.EqualTo(2));
            Assert.That(actual[1].DownloadDateTime, Is.EqualTo(DateTime.Today.AddMinutes(2)));
            Assert.That(actual[1].FilePath, Is.EqualTo("FilePath2"));
        }
        public void GetValidatedFiles_WhenInvoked_DefersToInnerService()
        {
            var expected = new[] { new ValidatedFile(), new ValidatedFile() };

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

            IList <ValidatedFile> actual = systemUnderTest.GetValidatedFiles(DateTime.MinValue, DateTime.MaxValue);

            Assert.That(actual, Is.EqualTo(expected));
        }
Beispiel #3
0
        public IList <ValidatedFile> GetValidatedFiles(DateTime startDate, DateTime endDate)
        {
            IList <ValidatedFile> results = innerService.GetValidatedFiles(startDate, endDate);

            if (results is null || results.Count == 0)
            {
                throw new NoAvailableStatsFilesException();
            }

            return(results);
        }
        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);
        }
Beispiel #5
0
 public IList <ValidatedFile> GetValidatedFiles(DateTime startDate, DateTime endDate)
 {
     return(GetOrAdd(() => innerService.GetValidatedFiles(startDate, endDate),
                     DateTimeOffset.Now.AddHours(cacheDurationInHours), $"{startDate}-{endDate}"));
 }