/// <summary>
        /// Test Find using the Query class
        /// </summary>
        private void Step_30_TestFindByQuery_Generated()
        {
            using (TransactionManager tm = CreateTransaction())
            {
                //Insert Mock Instance
                Files mock   = CreateMockInstance(tm);
                bool  result = DataRepository.FilesProvider.Insert(tm, mock);

                Assert.IsTrue(result, "Could Not Test FindByQuery, Insert Failed");

                FilesQuery query = new FilesQuery();

                query.AppendEquals(FilesColumn.Id, mock.Id.ToString());
                if (mock.Filename != null)
                {
                    query.AppendEquals(FilesColumn.Filename, mock.Filename.ToString());
                }
                if (mock.Version != null)
                {
                    query.AppendEquals(FilesColumn.Version, mock.Version.ToString());
                }
                if (mock.LastDate != null)
                {
                    query.AppendEquals(FilesColumn.LastDate, mock.LastDate.ToString());
                }

                TList <Files> results = DataRepository.FilesProvider.Find(tm, query);

                Assert.IsTrue(results.Count == 1, "Find is not working correctly.  Failed to find the mock instance");
            }
        }
Example #2
0
        public async Task <List <StoredFile> > GetFiles(FilesQuery filesQuery = null)
        {
            if (filesQuery == null)
            {
                filesQuery = new FilesQuery();
            }

            using var context = _ApplicationDbContextFactory.CreateContext();
            return(await context.Files
                   .Include(file => file.ApplicationUser)
                   .Where(file =>
                          (!filesQuery.Id.Any() || filesQuery.Id.Contains(file.Id)) &&
                          (!filesQuery.UserIds.Any() || filesQuery.UserIds.Contains(file.ApplicationUserId)))
                   .OrderByDescending(file => file.Timestamp)
                   .ToListAsync());
        }