Exemplo n.º 1
0
        public async Task <List <ApplicationName> > GetApplicationNames()
        {
            IMongoQueryable <JobApplication> query = collection.AsQueryable();
            var jobApps = await query.Select(x => new ApplicationName {
                Id = x._id, Name = x.Name
            }).ToListAsync();

            return(jobApps);
        }
Exemplo n.º 2
0
        public void _07_AddNewGenre()
        {
            var oldGenreCount = queryable.Select(b => b.genre.Length).Max();

            collection.UpdateMany(
                Builders <Book> .Filter.Where(b => b.genre.Contains("fantasy")),
                Builders <Book> .Update.AddToSet("genre", "favority"));

            var newGenreCount = queryable.Select(b => b.genre.Length).Max();

            collection.UpdateMany(
                Builders <Book> .Filter.Where(b => b.genre.Contains("fantasy")),
                Builders <Book> .Update.AddToSet("genre", "favority"));

            var newerGenreCount = queryable.Select(b => b.genre.Length).Max();

            Assert.IsTrue(newGenreCount > oldGenreCount);

            Assert.IsTrue(newerGenreCount == newGenreCount);

            Console.WriteLine(queryable.ToList()
                              .Select(bk => bk.name + "\t" + bk.genre.Aggregate((a, b) => a + ", " + b))
                              .Aggregate((a, b) => a + "\n" + b));
        }
Exemplo n.º 3
0
        public void _07_AddNewGenre()
        {
            var oldGenreCount = queryable.Select(b => b.genre.Length).Max();

            collection.UpdateMany(
                "{genre: 'fantasy'}",
                "{$addToSet: {genre: 'favority'}}");

            var newGenreCount = queryable.Select(b => b.genre.Length).Max();

            collection.UpdateMany(
                "{genre: 'fantasy'}",
                "{$addToSet: {genre: 'favority'}}");

            var newerGenreCount = queryable.Select(b => b.genre.Length).Max();

            Assert.IsTrue(newGenreCount > oldGenreCount);

            Assert.IsTrue(newerGenreCount == newGenreCount);

            Console.WriteLine(queryable.ToList()
                              .Select(bk => bk.name + "\t" + bk.genre.Aggregate((a, b) => a + ", " + b))
                              .Aggregate((a, b) => a + "\n" + b));
        }
Exemplo n.º 4
0
        protected virtual IMongoQueryable <DocumentWithoutContent> ApplyFilterForGetAll(
            IMongoQueryable <Document> query,
            Guid?projectId,
            string name,
            string version,
            string languageCode,
            string fileName,
            string format,
            DateTime?creationTimeMin,
            DateTime?creationTimeMax,
            DateTime?lastUpdatedTimeMin,
            DateTime?lastUpdatedTimeMax,
            DateTime?lastSignificantUpdateTimeMin,
            DateTime?lastSignificantUpdateTimeMax,
            DateTime?lastCachedTimeMin,
            DateTime?lastCachedTimeMax,
            CancellationToken cancellationToken = default)
        {
            if (projectId.HasValue)
            {
                query = query.Where(d => d.ProjectId == projectId.Value);
            }

            if (name != null)
            {
                query = query.Where(d => d.Name != null && d.Name.Contains(name));
            }

            if (version != null)
            {
                query = query.Where(d => d.Version != null && d.Version == version);
            }

            if (languageCode != null)
            {
                query = query.Where(d => d.LanguageCode != null && d.LanguageCode == languageCode);
            }

            if (fileName != null)
            {
                query = query.Where(d => d.FileName != null && d.FileName.Contains(fileName));
            }

            if (creationTimeMin.HasValue)
            {
                query = query.Where(d => d.CreationTime.Date >= creationTimeMin.Value.Date);
            }

            if (creationTimeMax.HasValue)
            {
                query = query.Where(d => d.CreationTime.Date <= creationTimeMax.Value.Date);
            }

            if (lastUpdatedTimeMin.HasValue)
            {
                query = query.Where(d => d.LastUpdatedTime.Date >= lastUpdatedTimeMin.Value.Date);
            }

            if (lastUpdatedTimeMax.HasValue)
            {
                query = query.Where(d => d.LastUpdatedTime.Date <= lastUpdatedTimeMax.Value.Date);
            }

            if (lastSignificantUpdateTimeMin.HasValue)
            {
                query = query.Where(d => d.LastSignificantUpdateTime != null && d.LastSignificantUpdateTime.Value.Date >= lastSignificantUpdateTimeMin.Value.Date);
            }

            if (lastSignificantUpdateTimeMax.HasValue)
            {
                query = query.Where(d => d.LastSignificantUpdateTime != null && d.LastSignificantUpdateTime.Value.Date <= lastSignificantUpdateTimeMax.Value.Date);
            }

            if (lastCachedTimeMin.HasValue)
            {
                query = query.Where(d => d.LastCachedTime.Date >= lastCachedTimeMin.Value.Date);
            }

            if (lastCachedTimeMax.HasValue)
            {
                query = query.Where(d => d.LastCachedTime.Date <= lastCachedTimeMax.Value.Date);
            }

            return(query.Select(x => new DocumentWithoutContent
            {
                Id = x.Id,
                ProjectId = x.ProjectId,
                Name = x.Name,
                Version = x.Version,
                LanguageCode = x.LanguageCode,
                FileName = x.FileName,
                Format = x.Format,
                CreationTime = x.CreationTime,
                LastUpdatedTime = x.LastUpdatedTime,
                LastSignificantUpdateTime = x.LastSignificantUpdateTime,
                LastCachedTime = x.LastCachedTime
            }));
        }
Exemplo n.º 5
0
 public static IMongoQueryable <R> Project <T, R>(this IMongoQueryable <T> query, Expression <Func <T, R> > selector) => query?.Select(selector);