Example #1
5
 public async Task WhenGet_Borough_Name_Returns_RestaurantList()
 {
     var collection = _database.GetCollection<BsonDocument>("restaurants");
     var builder = new FilterDefinitionBuilder<BsonDocument>();
     var filter = builder.Eq("borough", "Bronx");        
     var result = await collection.Find(filter).ToListAsync();
     Assert.AreEqual(2338, result.Count());
 }
Example #2
4
        public async Task OneStepUpdate(int amount = 1000)
        {
            var filterDefinitionBuilder = new FilterDefinitionBuilder<Student>();
            var updateDefinitionBuilder = new UpdateDefinitionBuilder<Student>();
            for (var i = 0; i < amount; i++)
            {                
                await studentsCollection.UpdateOneAsync(
                    filterDefinitionBuilder.Eq<string>((Student x) => x.Id, $"Students/{i}"),
                    updateDefinitionBuilder.Inc<int>((Student x) => x.Age, 1));

            }            
        }
Example #3
1
 public async Task<IList<Sharelinker>> GetLinkedUsersOfUserId(string userId, IEnumerable<string> ids = null, bool useNoteName = true)
 {
     var links = await GetUserlinksOfUserId(userId);
     var oids = ids == null ? null : from id in ids where !string.IsNullOrWhiteSpace(id) select new ObjectId(id);
     IEnumerable<ObjectId> linkedUserIds = null;
     if (oids == null || oids.Count() == 0)
     {
         linkedUserIds = from l in links select l.SlaveUserObjectId;
     }
     else
     {
         linkedUserIds = from l in links where oids.Contains(l.SlaveUserObjectId) select l.SlaveUserObjectId;
     }
     var filter = new FilterDefinitionBuilder<Sharelinker>().In(s => s.Id, linkedUserIds.ToArray());
     var collection = Client.GetDatabase("Sharelink").GetCollection<Sharelinker>("Sharelinker");
     var linkedUsers =await (await collection.FindAsync(filter)).ToListAsync();
     if (useNoteName)
     {
         var linkMap = links.ToDictionary(lu => lu.SlaveUserObjectId.ToString());
         foreach (var item in linkedUsers)
         {
             item.NoteName = linkMap[item.Id.ToString()].SlaveUserNoteName;
         }
     }
     return linkedUsers;
 }
Example #4
1
        public void GetSteps(String userId)
        {
            var filterBuilder = new FilterDefinitionBuilder<AuthenticationToken>();
            var filter = filterBuilder.Where(i => i.UserId.Equals(userId));
            var user = _mongoRepository.Get<AuthenticationToken>(filter).FirstOrDefault();

            if (user != null)
            {
                StepsModel steps = null;

                using (var client = new WebClient())
                {
                    client.Headers.Add("Authorization", "Bearer " + user.Token);
                    client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";

                    var url = $"https://api.fitbit.com/1/user/{user.ServiceUserId}/activities/date/{DateTime.Today.ToString("yyyy-MM-dd")}.json";
                    dynamic activity = Json.Decode(client.DownloadString(url));

                    steps = new StepsModel
                    {
                        Date = DateTime.Today,
                        Count = activity.summary.steps,
                        UserId = userId
                    };
                }

                _mongoRepository.Insert(steps);
            }
        }
Example #5
1
        public async Task WhenGet_Cuisine_Or_ZipCode_Returns_RestaurantList()
        {
            var collection = _database.GetCollection<BsonDocument>("restaurants");
            var builder = new FilterDefinitionBuilder<BsonDocument>();
            var filter = builder.Eq("cuisine", "Bakery") | builder.Eq("address.zipcode", "10462");

            var result = await collection.Find(filter).ToListAsync();
            Assert.AreEqual(834, result.Count());
        }
Example #6
0
 public async Task WhenGet_Grade_Letter_Returns_RestaurantList()
 {
     var collection = _database.GetCollection<BsonDocument>("restaurants");
     var builder = new FilterDefinitionBuilder<BsonDocument>();
     var filter = builder.Eq("grades.grade", "A");
     var result = await collection.Find(filter).ToListAsync();
     Assert.AreEqual(23440, result.Count());
 }
Example #7
0
 private LabMongo()
     : base()
 {
     this.FilterBuiler = Builders<MReport>.Filter;
     this.UpdateBuiler = Builders<MReport>.Update;
     this.ProjectionBuiler = Builders<MReport>.Projection;
     this.LisMDB = MClient.GetDatabase(MongoDBName);
 }
Example #8
0
 public async Task WhenGet_Grade_Score_Greater_Than_Returns_RestaurantList()
 {
     var collection = _database.GetCollection<BsonDocument>("restaurants");
     var builder = new FilterDefinitionBuilder<BsonDocument>();
     var filter = builder.Gt("grades.score", 20);
     var result = await collection.Find(filter).ToListAsync();
     Assert.AreEqual(6332, result.Count());
 }
Example #9
0
        private async void GetUser() {
            DBMongo.MongoDBHelper<BsonDocument> mongoHelper = new DBMongo.MongoDBHelper<BsonDocument>("User");
            IMongoCollection<BsonDocument> collection = mongoHelper.GetCollection();
            // var list = collection.Find<XK.Model.User_Model>(u=>u.Name== "k1199").ToListAsync();
            FilterDefinitionBuilder<BsonDocument> builder = new FilterDefinitionBuilder<BsonDocument>();
           var define= builder.Lt("Age", 122);

            var list = collection.Find<BsonDocument>(define).ToListAsync();
            string usernames = "";
            list.Result.ForEach(d => usernames += d["Name"]+"</br>");
            Response.Write(usernames);
        }
Example #10
0
        public static async void QueryByModel(IMongoDatabase db)
        {
            string key        = "borough";
            string value      = "Manhattan";
            var    collection = db.GetCollection <Resturant>("restaurants");
            var    filter     = new FilterDefinitionBuilder <Resturant>().Eq(key, value);
            var    result     = await collection.Find(filter).ToListAsync();

            var count = result.Count;

            foreach (var resturant in result)
            {
                var r = resturant;
            }
            Console.WriteLine("Total For {0} is {1} ", key, count);
        }
        public async Task <IConfigurationEntry> GetEntry(string component, ConfigurationPath path)
        {
            var filterBuilder = new FilterDefinitionBuilder <MongoDbConfigurationDocument>();
            var filter        = filterBuilder.Eq(a => a.Path, path.ToString());

            if (string.IsNullOrWhiteSpace(component))
            {
                component = RootComponentName;
            }
            filter &= filterBuilder.Eq(a => a.Component, component);
            var entries = await settingsCollectionData.FindAsync(filter);

            var result = await entries.FirstOrDefaultAsync();

            return(result == null ? default : RebuildConfigurationEntry(result));
        }
Example #12
0
        public async Task <List <ScheduledCategoryDto> > GetAll()
        {
            // filter is empty because we need all data
            #region filter

            var filter           = new FilterDefinitionBuilder <ScheduledCategory>();
            var filterDefination = filter.Empty;

            #endregion

            return(await FindAndProjectAsync(filterDefination, x => new ScheduledCategoryDto
            {
                Id = x.Id,
                Category = x.Category,
            }));
        }
Example #13
0
        private static void Query()
        {
            //创建约束生成器
            FilterDefinitionBuilder <BsonDocument> builderFilter = Builders <BsonDocument> .Filter;
            var time = new BsonDateTime(Convert.ToDateTime("2017-01-01T00:00:00"));
            //约束条件
            FilterDefinition <BsonDocument> filter = builderFilter.Gte("timestamp", time);
            //获取数据
            var result = new RTContext().ProvinceBson.Find <BsonDocument>(filter).ToList();

            foreach (var item in result)
            {
                //取出整条值
                Console.WriteLine(item.AsBsonValue);
            }
        }
Example #14
0
        /// <summary>
        /// Delete Blog Method
        /// </summary>
        /// <param name="request"></param>
        /// <param name="context"></param>
        /// <returns></returns>
        public override async Task <DeleteBlogResponse> DeleteBlog(DeleteBlogRequest request, ServerCallContext context)
        {
            var filter = new FilterDefinitionBuilder <BsonDocument>().Eq("_id", new ObjectId(request.BlogId));

            var result = await mongoCollection.DeleteOneAsync(filter);

            if (result.DeletedCount == 0)
            {
                throw new RpcException(new Status(StatusCode.NotFound, "The blog id " + request.BlogId + " was not find"));
            }

            return(new DeleteBlogResponse()
            {
                BlogId = request.BlogId
            });
        }
Example #15
0
        public async Task <List <Vulnerability> > GetVulnerabilitiesByProjectId(int pid)
        {
            var vulnerabilities = _database.GetCollection <Vulnerability>(VulnerabilityCollection);
            var filter          = new FilterDefinitionBuilder <Vulnerability>().Eq(v => v.ProjectId, pid);

            try
            {
                var results = await vulnerabilities.Find(filter).ToListAsync();

                return(results);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
Example #16
0
        public void AddProfileToUser(string username, Profile dto)
        {
            var db = client.GetDatabase("LightLinkProfiles");

            var collection = db.GetCollection <User>("User");

            var filter = new FilterDefinitionBuilder <User>();

            var builder = new UpdateDefinitionBuilder <User>();
            var user    = collection.Find((u) => u.UserName == username).Single();

            user.Profiles.Add(dto);
            var filterBuilder = new FilterDefinitionBuilder <User>();

            collection.ReplaceOne(filterBuilder.Where((u) => u.UserName == username), user);
        }
        public async Task <LicenseEntity> Handle(GetLicenseByUserIdQuery request, CancellationToken cancellationToken)
        {
            var filter = new FilterDefinitionBuilder <LicenseEntity>()
                         .Eq(x => x.UserId, request.UserId);

            var projection = new ProjectionDefinitionBuilder <LicenseEntity>()
                             .Include(x => x.Id)
                             .Include(x => x.UserId)
                             .Include(x => x.Key)
                             .Include(x => x.Products);

            return(await _licenseCollection
                   .Find(filter)
                   .Project <LicenseEntity>(projection)
                   .FirstOrDefaultAsync(cancellationToken));
        }
Example #18
0
        public async Task InsertInitialTemplatesAsync(IEnumerable <Template>?values)
        {
            await _templateCollection.InsertManyIgnoringErrorsAsync(values);

            // Adds generic template
            var filter = new FilterDefinitionBuilder <Template>().Eq(t => t._id, GenericDecription);
            var update = new BsonDocument {
                { "$setOnInsert", new BsonDocument("_id", GenericDecription) }
            };
            var options = new FindOneAndUpdateOptions <Template>()
            {
                IsUpsert = true
            };

            await _templateCollection.FindOneAndUpdateAsync(filter, update, options);
        }
Example #19
0
        public async Task <List <Project> > GetAllProjects()
        {
            var projects = _database.GetCollection <Project>(ProjectCollection);
            var filter   = new FilterDefinitionBuilder <Project>().Empty;

            try
            {
                var results = await projects.Find(filter).ToListAsync();

                return(results);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
        /// <summary>
        /// Find Forum thread by user email
        /// </summary>
        /// <param name="Eamil"></param>
        /// <returns></returns>
        public async Task <IEnumerable <ForumThread> > FindForumThreadByEmail(string Eamil)
        {
            try
            {
                var filterBuilder = new FilterDefinitionBuilder <ForumThread>();
                var findEmail     = filterBuilder.Eq(s => s.Email, Eamil.ToString());
                _dbFCollection = _mongoContext.GetCollection <ForumThread>(typeof(ForumThread).Name);
                var result = await _dbFCollection.FindAsync(findEmail).Result.ToListAsync();

                return(result);
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }
Example #21
0
        /// <summary>
        /// 将所有从TB中下载的主力合约1分钟Bar数据导入到MongoDB中
        /// </summary>
        static void ImportBarCSVs()
        {
            DirectoryInfo csvFolder = new DirectoryInfo(projectFilePath + "TB_CSV");

            FileInfo[] csvFIs = csvFolder.GetFiles();
            foreach (var csvFI in csvFIs)
            {
                string s     = csvFI.Name;
                var    table = DBFunctions.GetOrCreateTable <Bar>(client, "CTPDB", "Bar_" + s.Substring(0, s.IndexOf('(')));
                var    v     = DBFunctions.GetBarsFromCSV(csvFI.FullName);
                FilterDefinitionBuilder <Bar> fdb = new FilterDefinitionBuilder <Bar>();
                table.DeleteMany(fdb.Empty);
                table.InsertMany(v);
                Console.WriteLine(table.CollectionNamespace.CollectionName);
            }
        }
        /// <summary>
        /// Find student by Student name
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public async Task <IEnumerable <Student> > FindStudent(string name)
        {
            try
            {
                var filterBuilder = new FilterDefinitionBuilder <Student>();
                var findName      = filterBuilder.Eq(s => s.Name, name);
                _dbSCollection = _mongoContext.GetCollection <Student>(typeof(Student).Name);
                var result = await _dbSCollection.FindAsync(findName).Result.ToListAsync();

                return(result);
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }
Example #23
0
        /// <summary>
        /// Book Usr order infromation
        /// </summary>
        /// <param name="email"></param>
        /// <returns></returns>
        public async Task <IEnumerable <Order> > OrderInformation(string email)
        {
            try
            {
                var filterBuilder = new FilterDefinitionBuilder <Order>();
                var orderInfo     = filterBuilder.Eq(s => s.UserEmail, email);
                _order = _mongoContext.GetCollection <Order>(typeof(Order).Name);
                var result = await _order.FindAsync(orderInfo).Result.ToListAsync();

                return(result);
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }
Example #24
0
        public async Task <IReadOnlyList <IEvent <Guid> > > GetEventsAsync(Guid aggregateId, CancellationToken token)
        {
            var filter          = new FilterDefinitionBuilder <EncryptedEvent <Guid> >().Eq(nameof(Event.AggregateRootId), aggregateId);
            var encryptedEvents = await _mongoCollection.Find(filter).ToListAsync(token);

            var decryptedEvents = new List <IEvent <Guid> >();

            foreach (var encryptedEvent in encryptedEvents)
            {
                var decrypted = await _encryptionService.DecryptAsync(encryptedEvent, token);

                decryptedEvents.Add(decrypted);
            }

            return(decryptedEvents);
        }
Example #25
0
        private async Task <List <ObservationIdTuple> > FindObservationKeysAsync(List <T> speciesObservations)
        {
            var filterDef  = new FilterDefinitionBuilder <VersionedDocumentObservation <T> >();
            var filter     = filterDef.In(x => x.CompositeId, speciesObservations.Select(x => $"{x.DataProviderId}_{x.CatalogNumber}"));
            var projection = Builders <VersionedDocumentObservation <T> > .Projection
                             .Include(x => x.DataProviderId)
                             .Include(x => x.CatalogNumber)
                             .Exclude("_id"); // _id is special and needs to be explicitly excluded if not needed

            var options = new FindOptions <VersionedDocumentObservation <T>, ObservationIdTuple> {
                Projection = projection
            };
            var foundObservationsTuples = await(await Collection.FindAsync(filter, options)).ToListAsync();

            return(foundObservationsTuples);
        }
Example #26
0
        /// <summary>
        /// Get Product by name
        /// </summary>
        /// <param name="ProductName"></param>
        /// <returns></returns>
        public async Task <IEnumerable <Product> > ProductByName(string ProductName)
        {
            try
            {
                var filterBuilder = new FilterDefinitionBuilder <Product>();
                var productName   = filterBuilder.Eq(s => s.ProductName, ProductName.ToString());
                _dbproductCollection = _mongoContext.GetCollection <Product>(typeof(Product).Name);
                var result = await _dbproductCollection.FindAsync(productName).Result.ToListAsync();

                return(result);
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }
Example #27
0
        public Task <UserDTO?> ExtractUserAsync(string?token)
        {
            if (token == null)
            {
                return(Task.FromResult <UserDTO?>(null));
            }

            var tokenhandler = new JwtSecurityTokenHandler();
            var key          = Encoding.UTF8.GetBytes(_envvars.GetJwtSecret());
            var parameters   = new TokenValidationParameters
            {
                ValidateIssuerSigningKey = true,
                IssuerSigningKey         = new SymmetricSecurityKey(key),
                ValidateIssuer           = false,
                ValidateAudience         = false
            };

            try
            {
                tokenhandler.ValidateToken(token, parameters, out SecurityToken validated);
                var tk        = tokenhandler.ReadJwtToken(token);
                var nameClaim = tk.Payload.Claims.FirstOrDefault(claim => claim.Type == "unique_name");
                var filter    = new FilterDefinitionBuilder <User>().Where(user => user.Id == nameClaim.Value);
                return(_users
                       .Find(filter)
                       .FirstOrDefaultAsync()
                       .ContinueWith(res =>
                {
                    if (res.Result == null)
                    {
                        return null;
                    }
                    ;
                    return new UserDTO
                    {
                        Email = res.Result.Email,
                        LastName = res.Result.LastName,
                        Name = res.Result.Name,
                        Id = res.Result.Id
                    };
                }));
            }
            catch (ArgumentNullException) { return(Task.FromResult <UserDTO?>(null)); }
            catch (ArgumentException) { return(Task.FromResult <UserDTO?>(null)); }
            catch (SecurityTokenEncryptionFailedException) { return(Task.FromResult <UserDTO?>(null)); }
            catch (SecurityTokenExpiredException) { return(Task.FromResult <UserDTO?>(null)); }
        }
Example #28
0
        private async Task <(string, TrackedEntity <GeoJsonPoint <GeoJson3DGeographicCoordinates> >)> ComputeDataForUser()
        {
            var userId = this.GetCurrentUserId();

            if (userId == null)
            {
                return("", null);
            }

            var userCollection = MongoWrapper.Database.GetCollection <Models.User>(nameof(Models.User));

            var userFilterBuilder = new FilterDefinitionBuilder <Models.User>();
            var userFilter        = userFilterBuilder.Eq(u => u._id, new ObjectId(userId));

            var user = (await userCollection.FindAsync(userFilter, new FindOptions <Models.User>
            {
                AllowPartialResults = true,
                Limit = 1
            })).SingleOrDefault();

            if (user == null)
            {
                return("", null);
            }

            var phrase = string.Empty;

            if (!string.IsNullOrWhiteSpace(user.About))
            {
                phrase += user.About.Replace("\"", "");
            }

            if (user is Musician musician)
            {
                phrase += musician.InstrumentSkills?.Select
                          (
                    kvp => kvp.Key.GetAttribute <DisplayAttribute>().Name
                          )
                          .Aggregate
                          (
                    string.Empty,
                    (s1, s2) => s1 + " " + s2
                          );
            }

            return(phrase, user.TrackedPosition);
        }
Example #29
0
        public Puzzle GetOneRandomly(List <int> excludedIds, string variant, int?userId, double nearRating = 1500)
        {
            FilterDefinitionBuilder <Puzzle> filterBuilder = Builders <Puzzle> .Filter;
            FilterDefinition <Puzzle>        filter        = filterBuilder.Nin("_id", excludedIds) & filterBuilder.Eq("inReview", false)
                                                             & filterBuilder.Eq("approved", true);

            if (variant != "Mixed")
            {
                filter &= filterBuilder.Eq("variant", variant);
            }
            if (userId.HasValue)
            {
                filter &= filterBuilder.Ne("author", userId.Value) & filterBuilder.Nin("reviewers", new int[] { userId.Value });
            }
            FilterDefinition <Puzzle> lteFilter = filter;
            FilterDefinition <Puzzle> gtFilter  = filter;
            bool higherRated = RandomBoolean();

            gtFilter  &= filterBuilder.Gt("rating.value", nearRating);
            lteFilter &= filterBuilder.Lte("rating.value", nearRating);
            var foundGt  = puzzleCollection.Find(gtFilter);
            var foundLte = puzzleCollection.Find(lteFilter);

            if (foundGt == null && foundLte == null)
            {
                return(null);
            }
            SortDefinitionBuilder <Puzzle> sortBuilder = Builders <Puzzle> .Sort;

            foundGt  = foundGt.Sort(sortBuilder.Ascending("rating.value")).Limit(1);
            foundLte = foundLte.Sort(sortBuilder.Descending("rating.value")).Limit(1);
            Puzzle oneGt  = foundGt.FirstOrDefault();
            Puzzle oneLte = foundLte.FirstOrDefault();

            if (oneGt == null)
            {
                return(oneLte);
            }
            else if (oneLte == null)
            {
                return(oneGt);
            }
            else
            {
                return(RandomBoolean() ? oneGt : oneLte);
            }
        }
Example #30
0
        public async Task <long> SetDevicesOfflineAsync(DateTime notUpdatedSince)
        {
            var filter = new FilterDefinitionBuilder <Device>().Lt(d => d.UpdatedAt, notUpdatedSince);
            var update = new BsonDocument {
                { "$set", new BsonDocument {
                      { "offline", true }
                  } }
            };
            var options = new UpdateOptions()
            {
                IsUpsert = false
            };

            var updateResult = await _deviceCollection.UpdateManyAsync(filter, update, options);

            return(updateResult.IsAcknowledged && updateResult.IsModifiedCountAvailable ? updateResult.MatchedCount : 0);
        }
Example #31
0
        public async Task Update_Multiple_Restaurants()
        {
            var collection = _database.GetCollection<BsonDocument>("restaurants");
            var builder = new FilterDefinitionBuilder<BsonDocument>();
            var filter = builder.Eq("address.zipcode", "10462") & builder.Eq("cuisine", "Other");         
            var update = Builders<BsonDocument>.Update
                .Set("cuisine", "Category TBD")                
                .CurrentDate("lastModified");
            var result = await collection.UpdateOneAsync(filter, update);

            Assert.AreEqual(1, result.MatchedCount);

            if (result.IsModifiedCountAvailable)
            {
                Assert.AreEqual(1, result.ModifiedCount);
            }
        }
Example #32
0
        public Task <IEnumerable <UserData> > GetAsync(string id = null, bool?isActive = true)
        {
            var filterBuilder = new FilterDefinitionBuilder <UserData>();
            var filter        = FilterDefinition <UserData> .Empty;

            if (!string.IsNullOrWhiteSpace(id))
            {
                filter &= filterBuilder.Eq <string>(userData => userData.Id, id);
            }

            if (isActive.HasValue)
            {
                filter &= filterBuilder.Eq <bool>(userData => userData.IsActive, isActive.Value);
            }

            return(GetAsync(filter));
        }
Example #33
0
        public void AddSeenMovieToUser(ObjectId movieId, ObjectId userId)
        {
            var user = GetByObjectId <User>(userId, Const.MongoDbConst.CollectionUsers);

            //User hat film schon gesehen
            if (user.MoviesWatchedIds.Contains(movieId))
            {
                return;
            }

            var collection = GetCollection <User>(Const.MongoDbConst.CollectionUsers);

            var filter = new FilterDefinitionBuilder <User>().Eq("_id", userId);
            var update = Builders <User> .Update.Push <ObjectId>(u => u.MoviesWatchedIds, movieId);

            collection.FindOneAndUpdateAsync(filter, update);
        }
Example #34
0
        public BucketList GetBucketList(ObjectId id)
        {
            var collection = GetCollection <BsonDocument>(Const.MongoDbConst.CollectionBucketList);

            var filter = new FilterDefinitionBuilder <BsonDocument>().Eq("_id", id);

            var result = collection.FindSync(filter).FirstOrDefault();

            if (result == null)
            {
                return(null);
            }

            var bucketList = BsonSerializer.Deserialize <BucketList>(result);

            return(bucketList);
        }
Example #35
0
        public static string RenderQuery <T>(UpdateDefinition <T> filterDefinition) where T : TDocument
        {
            var query = string.Empty;

            try
            {
                IBsonSerializerRegistry     registry   = BsonSerializer.SerializerRegistry;
                IBsonSerializer <T>         serializer = BsonSerializer.SerializerRegistry.GetSerializer <T>();
                FilterDefinitionBuilder <T> __subject  = Builders <T> .Filter;

                query = filterDefinition.Render(serializer, registry).ToString();
            }
            catch (Exception)
            {
            }
            return(query);
        }
Example #36
0
        public void AddBucketListToUser(ObjectId userId, ObjectId bucketListId)
        {
            var user = GetByObjectId <User>(userId, Const.MongoDbConst.CollectionUsers);

            //User hat film schon gesehen
            if (user.BucketListsInvolvedIn.Contains(bucketListId))
            {
                return;
            }

            var collection = GetCollection <User>(Const.MongoDbConst.CollectionUsers);

            var filter = new FilterDefinitionBuilder <User>().Eq("_id", userId);
            var update = Builders <User> .Update.Push <ObjectId>(u => u.BucketListsInvolvedIn, bucketListId);

            collection.FindOneAndUpdateAsync(filter, update);
        }
        /// <summary>
        /// Get Medicine by Name
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public async Task <IEnumerable <Medicine> > MedicineByName(string name)
        {
            try
            {
                var filterBuilder = new FilterDefinitionBuilder <Medicine>();
                var findName      = filterBuilder.Eq(s => s.Name, name);
                var findBrand     = filterBuilder.Eq(s => s.Brand, name.ToString());
                _dbMCollection = _mongoContext.GetCollection <Medicine> (typeof(Medicine).Name);
                var result = await _dbMCollection.FindAsync(findName | findBrand).Result.ToListAsync();

                return(result);
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }
Example #38
0
        public override List <ProductoDTO> GetProductByName(string palabra)
        {
            ProductsData data = new ProductsData();

            IMongoCollection <BsonDocument>        products = data.GetProductDataByName();
            FilterDefinitionBuilder <BsonDocument> builder  = Builders <BsonDocument> .Filter;
            FilterDefinition <BsonDocument>        filter   = @"{ $or: [{ ""brand"" : {$in: [/$palabra$/] }},{ ""description"" : {$in: [/$palabra$/] }}] }".Replace("$palabra$", palabra);
            List <BsonDocument> resultFiltros = products.Find(filter).ToList();

            foreach (BsonDocument item in resultFiltros)
            {
                ProductoDTO myObj = BsonSerializer.Deserialize <ProductoDTO>(item);
                listResultDB.Add(myObj);
            }

            return(listResultDB);
        }
Example #39
0
        public async Task <bool> DeleteExpiredTokensAsync(string userId)
        {
            try
            {
                FilterDefinition <User> filter = new FilterDefinitionBuilder <User>().Eq(x => x.Id, userId);

                UpdateDefinition <User> update = new UpdateDefinitionBuilder <User>().PullFilter(x => x.Tokens, i => i.RefreshTokenExpiresDateTime < DateTimeOffset.UtcNow);

                await mongoDbContext.Users.UpdateManyAsync(filter, update);

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #40
0
        public async Task SetDeviceOfflineAsync(IPAddress ipAddress, bool offline = true)
        {
            var filter = new FilterDefinitionBuilder <Device>().Eq(d => d.Ipv4Address, ipAddress);
            var update = offline
                ? new BsonDocument {
                { "$set", new BsonDocument {
                      { "offline", true }
                  } }
            }
                : new BsonDocument {
                { "$unset", new BsonDocument {
                      { "offline", true }
                  } }
            };

            await _deviceCollection.FindOneAndUpdateAsync(filter, update);
        }
Example #41
0
        public async Task<IDictionary<ObjectId, IEnumerable<SharelinkTag>>> GetLinkersTags(IEnumerable<ObjectId> linkerIds)
        {
            var result = new Dictionary<ObjectId, IEnumerable<SharelinkTag>>();
            var tagCollection = Client.GetDatabase("Sharelink").GetCollection<SharelinkTag>("SharelinkTag");

            var filter = new FilterDefinitionBuilder<SharelinkTag>().In(t=>t.UserId, linkerIds);
            var tags = await tagCollection.Find(filter).ToListAsync();
            var tagsGrouped = from t in tags group t by t.UserId;
            foreach (var item in tagsGrouped)
            {
                result.Add(item.Key, item.ToList());
            }
            return result;
        }
Example #42
0
        public void RefreshToken(string userId)
        {
            var filterBuilder = new FilterDefinitionBuilder<AuthenticationToken>();
            var filter = filterBuilder.Where(i => i.UserId.Equals(userId));

            AuthenticationToken token = _mongoRepository.Get(filter).FirstOrDefault();

            if (token != null)
            {
                var refresherToken = token.RefreshToken;

                var parameters = String.Format("grant_type=refresh_token&refresh_token={0}", refresherToken);

                using (var client = new WebClient())
                {
                    client.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes(_basicAuthenticationHeader)));
                    client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
                    dynamic credentials = Json.Decode(client.UploadString(TokenUrl, parameters));

                    token.Expiration = credentials.expires_in;
                    token.Token = credentials.access_token;
                    token.RefreshToken = credentials.refresh_token;
                    token.Type = credentials.token_type;
                }

                _mongoRepository.Update(filter, token);
            }
        }
Example #43
0
        public async Task<bool> DeleteSharelinkTags(string userId, string[] tagIds)
        {
            ObjectId userOId = new ObjectId(userId);
            var collection = Client.GetDatabase("Sharelink").GetCollection<Sharelinker>("Sharelinker");
            var ids = from id in tagIds select new ObjectId(id);
            var update = new UpdateDefinitionBuilder<Sharelinker>().PullAll(u => u.SharelinkTags, ids);
            var res = await collection.UpdateOneAsync(u => u.Id == userOId ,update);

            var tagCollection = Client.GetDatabase("Sharelink").GetCollection<SharelinkTag>("SharelinkTag");
            var tagFilter = new FilterDefinitionBuilder<SharelinkTag>().In(t => t.Id, ids);
            var uId = new ObjectId();
            var tagUpdate = new UpdateDefinitionBuilder<SharelinkTag>().Set(t => t.UserId, uId);
            await tagCollection.UpdateManyAsync(tagFilter,tagUpdate);
            try
            {
                return res.ModifiedCount > 0;
            }
            catch (Exception)
            {
                return false;
            }
        }
Example #44
0
        public static async void InsertOrders(IMongoDatabase db)
        {
            var collections = db.GetCollection<Orders>("orders");
            var data = new Orders()
            {
                OrderId = 1,
                Date = DateTime.Now,
                Name = "Irfan",
                TotalAmount = 10.0m,
            };

            var datalist = new List<Orders>()
            {
                new Orders(){OrderId =  1, Date = DateTime.Now, Name = "Irfan",TotalAmount = 10.0m, }, 
                new Orders(){OrderId =  1, Date = DateTime.Now, Name = "Klayan",TotalAmount = 10.0m, }, 
                new Orders(){OrderId =  1, Date = DateTime.Now, Name = "Khan",TotalAmount = 10.0m, }, 
            };

            //Insert Single Document
            await collections.InsertOneAsync(data);
            Console.WriteLine("Insert Count 1");
            //Insert Multiple Documents;
            await collections.InsertManyAsync(datalist);
            Console.WriteLine("Insert Count Many");

            var filter = new FilterDefinitionBuilder<Orders>().Eq("Name", "Irfan");
            var result = await collections.Find(filter).ToListAsync();

            foreach (var r in result)
            {
                Console.WriteLine("OrderId {0}, OrderTotal {1}, OrderDate {2}", r.OrderId, r.TotalAmount, r.Date);
            }
        }
Example #45
0
 public async Task OneStepDelete(int amount = 1000)
 {
     var filterDefinitionBuilder = new FilterDefinitionBuilder<Student>();
     
     for (var i = 0; i < amount; i++)
     {
         var filter = filterDefinitionBuilder.Eq((Student x) => x.Id, $"Students/{i}");
         await studentsCollection.DeleteOneAsync(filter);                
     }
 }        
Example #46
0
        public void BuildQuerySimple()
        {
            var client = new MongoClient("mongodb://localhost:27017");
            var db = client.GetDatabase("hra");
            var items = db.GetCollection<BsonDocument>("incumbent");

            var fd = new FilterDefinitionBuilder<BsonDocument>();
            var filter1 = fd.All("Job_Family", new List<string> {"Health Care"});

            IAggregateFluent<BsonDocument> dd = items.Aggregate();
            IAggregateFluent<BsonDocument> ts = dd.Match(filter1);
            var ll = ts.Group(x => new {Year = x["Year"], Org = x["org_type"]},
                g => new {Key=g.Key, Average=g.Average(x => (double) x["Base_Pay"])});

            ll.Project(x => new BsonDocument {new BsonElement("Key",x.Key.Year), new BsonElement("Average",x.Average)});
            //ts.Group()
            //IAggregateFluent<BsonDocument> gd = ts.Group(x => new {s1 = x["Year"], s2 = x["org_type"]},
            //        g => new {Key = g.Key, Value = g.Average(x => (double) x["Base_Pay"])}).Project(x => new {Key = new List<string>{x.Key.s1.ToString()}, Value = x.Value});

                //dd.Match(filter1)
                //.Group(x => new {s1 = x["Year"], s2 = x["org_type"]},
                //    g => new {Key = g.Key, Value = g.Average(x => (double) x["Base_Pay"])})
                //.Project(x => new {Key = new List<string>{x.Key.s1.ToString()}, Value = x.Value});

            //var dc = new List<IPipelineStageDefinition>();
            //dc.AddRange(dd.Stages);
            //var pl = dc.ToArray();
            //var zito = pl.ToJson();
            //var docs = items.AggregateAsync<BsonDocument>(dc);
            var zz = ll.ToListAsync().Result;
            Assert.IsTrue(zz.Count > 0);

            var pp = "cc";
        }
Example #47
0
        public static async void QueryByModel(IMongoDatabase db)
        {
            string key = "borough";
            string value = "Manhattan"; //restaurants
            var collection = db.GetCollection<Resturant>("Restaurant");
            var filter = new FilterDefinitionBuilder<Resturant>().Eq(key, value);
            var result = await collection.Find(filter).ToListAsync();
            var count = result.Count;

            foreach (var resturant in result)
            {
                var r = resturant;

            }
            Console.WriteLine("Total For {0} is {1} ", key,count);
        }
Example #48
0
        public void GetToken(String code, String userId)
        {
            AuthenticationToken token = null;
            var parameters = String.Format("client_id={0}&grant_type=authorization_code&redirect_uri={1}&code={2}", ClientId, RedirectUrl, code);

            using (var client = new WebClient())
            {
                client.Headers.Add("Authorization",
                    "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes(_basicAuthenticationHeader)));
                client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
                dynamic credentials = Json.Decode(client.UploadString(TokenUrl, parameters));

                var filterBuilder = new FilterDefinitionBuilder<AuthenticationToken>();
                var filter = filterBuilder.Where(i => i.UserId.Equals(userId));

                if (!_mongoRepository.Exists(filter))
                {
                    token = new AuthenticationToken
                    {
                        Expiration = credentials.expires_in,
                        Token = credentials.access_token,
                        RefreshToken = credentials.refresh_token,
                        Type = credentials.token_type,
                        UserId = userId,
                        ExpirationDate = DateTime.Now.AddSeconds(credentials.expires_in),
                        ServiceUserId = credentials.user_id
                    };

                    _mongoRepository.Insert(token);
                }
            }
        }
Example #49
0
 public async Task TwoStepUpdate(int amount =1000)
 {
     var filterDefinitionBuilder = new FilterDefinitionBuilder<Student>();
     
     for (var i = 0; i < amount; i++)
     {
         var foundStudent = await studentsCollection.Find<Student>((Student x) => x.Id == $"Students/{i}").FirstAsync();                
         foundStudent.Age++;
         await studentsCollection.ReplaceOneAsync(filterDefinitionBuilder.Eq<string>((Student x) => foundStudent.Id, foundStudent.Id), foundStudent);
     }
 }
 private List<FilterDefinition<Flight>> CreateClauses(SearchCriteriaModel criteriaModel, FilterDefinitionBuilder<Flight> filterBuilder)
 {
     var clauses = new List<FilterDefinition<Flight>>();
     if (criteriaModel.FromDate != null)
     {
         var fromDate = DateTime.SpecifyKind(DateTime.Parse(criteriaModel.FromDate), DateTimeKind.Utc);
         var clause = filterBuilder.Gte(f => f.FlightDate, fromDate);
         clauses.Add(clause);
     }
     if (criteriaModel.ToDate != null)
     {
         var toDate = DateTime.SpecifyKind(DateTime.Parse(criteriaModel.ToDate), DateTimeKind.Utc);
         var clause = filterBuilder.Lte(f => f.FlightDate, toDate);
         clauses.Add(clause);
     }
     if (criteriaModel.AirlineId != null)
     {
         var clause = filterBuilder.Eq(f => f.AirlineId, criteriaModel.AirlineId.Value);
         clauses.Add(clause);
     }
     if (criteriaModel.OriginId != null)
     {
         var clause = filterBuilder.Eq(f => f.OriginAirportId, criteriaModel.OriginId.Value);
         clauses.Add(clause);
     }
     if (criteriaModel.DestinationId != null)
     {
         var clause = filterBuilder.Eq(f => f.DestinationAirportId, criteriaModel.DestinationId.Value);
         clauses.Add(clause);
     }
     return clauses;
 }
Example #51
0
        public void BuildQuery()
        {
            var source = GetQueryBuilder();
            var jobFamily = source.AvailableFilters.Single(x => x.Column.ColumnName == "Job_Family");
            var jobTrack = source.AvailableFilters.Single(x => x.Column.ColumnName == "Job_Track");

            var matchBuilder = new FilterDefinitionBuilder<BsonDocument>();
            jobFamily.AvailableFilterValues.Add(new FilterValue {Key = "Executive", Value = "Executive", Active=true});

            var jobFamilyFilter = matchBuilder.All(jobFamily.Column.ColumnName,
                jobFamily.AvailableFilterValues.Where(x=>x.Active).Select(x=>x.Value).ToList());
            //take care of grouping key
            var groupDoc = new BsonDocument();
            var slicers = new List<BsonElement>();
            slicers.Add(new BsonElement("s1", new BsonString("$Year")));
            slicers.Add(new BsonElement("s2", new BsonString("$orgType")));
            var idDoc = new BsonDocument(slicers);
            var idElm = new BsonElement("_id", idDoc);

            var idDocument = new BsonDocument();
            idDocument.Add(idElm);

            //take care of grouping val
            var factDoc = new BsonDocument();
            var factEl = new BsonElement("$avg", new BsonString("$Base_Pay"));
            factDoc.Add(factEl);

            var factElementDoc = new BsonDocument();
            factElementDoc.Add(new BsonElement("f1", factDoc));
            var factDocResult = new BsonDocument();
            factDocResult.AddRange(factElementDoc);

            groupDoc.AddRange(idDocument);
            groupDoc.AddRange(factDocResult);

            var groupElement = new BsonElement("$group", groupDoc);

            var matchDoc = new BsonDocument();
            var filter1Element = new BsonElement("Job_Family", new BsonString("Executive"));
            var filter1Doc = new BsonDocument();
            filter1Doc.Add(filter1Element);
            var filterFinalElement = new BsonElement("$match", filter1Doc);

            var finalDoc = new BsonDocument();
            finalDoc.Add(filterFinalElement);
            finalDoc.Add(groupElement);

            var dd = finalDoc.ToString();
            Console.Out.Write(dd);
            var xx = "Y";

            // jobTrack.
        }
Example #52
0
        public static async void UpdateOrders(IMongoDatabase db)
        {
            var collections = db.GetCollection<Orders>("orders");
            //var filter = new FilterDefinitionBuilder<Orders>().Eq("Name", "Irfan");
            var filter = Builders<Orders>.Filter.Eq("Name", "Irfan");
            var update = Builders<Orders>.Update
                                         .Set(c => c.Date, DateTime.Now.AddDays(1))
                                         .Set(c => c.TotalAmount, 25.0m);

            var result = await collections.UpdateOneAsync(filter, update);
            //var result = await collections.UpdateManyAsync(filter, update);
            var res = result;

            var searchfilter = new FilterDefinitionBuilder<Orders>().Eq("Name", "Irfan");
            var searchresult = await collections.Find(searchfilter).ToListAsync();
            foreach (var r in searchresult)
            {
                Console.WriteLine("OrderId {0}, OrderTotal {1}, OrderDate {2}", r.OrderId, r.TotalAmount, r.Date);
            }


            var result2 = await collections.UpdateManyAsync(filter, update);
            res = result2;

            searchfilter = new FilterDefinitionBuilder<Orders>().Eq("Name", "Irfan");
            searchresult = await collections.Find(searchfilter).ToListAsync();
            foreach (var r in searchresult)
            {
                Console.WriteLine("Name: {3} OrderId {0}, OrderTotal {1}, OrderDate {2}", r.OrderId, r.TotalAmount, r.Date, r.Name);
            }

        }
Example #53
0
        public static async void ListBlogUsers(IMongoDatabase db)
        {
            string key = "Name";
            string value = "*";
            var collection = db.GetCollection<User>("users");
            var filter = new FilterDefinitionBuilder<User>().Eq(key, value);
            var result = await collection.Find(filter).ToListAsync();
            result = await collection.AsQueryable().ToListAsync();
            result = await collection.Find(e => true).ToListAsync();
            var count = result.Count;
            foreach (var item in result)
            {
                Console.WriteLine("Users Name: {0} Email: {1}", item.Name, item.Email);
            }
            Console.WriteLine("Total Users {0} ", count);

            await ListPostsByUser(db);

        }
        private void insertOrUpdateDbInfo()
        {
            var dbInfo = this.DbInfo;

            if (DbInfo == null)
            {
                insertDbInfo();
            }
            else
            {
                var filter = new FilterDefinitionBuilder<DbInfo>().Eq(x => x.Id, dbInfo.Id);
                dbInfo.LastSynchro = DateTime.Now;
                this.DbInfos.ReplaceOne(filter, dbInfo);
            }
        }
Example #55
-2
 public async Task<IList<ShareThing>> GetShares(IEnumerable<ObjectId> shareIds)
 {
     var shareThingCollection = Client.GetDatabase("Sharelink").GetCollection<ShareThing>("ShareThing");
     var fileter = new FilterDefinitionBuilder<ShareThing>().In(s => s.Id, shareIds);
     var shareThings = shareThingCollection.Find(fileter);
     return await shareThings.ToListAsync();
 }