public Question Save(Question question)
        {
            var questionsList = mongoDatabase.GetCollection("Questions");
            WriteConcernResult result;
            bool hasError = false;

            if (string.IsNullOrEmpty(question._Id))
            {
                question._Id = ObjectId.GenerateNewId().ToString();
                result       = questionsList.Insert <Question>(question);
                hasError     = result.HasLastErrorMessage;
            }
            else
            {
                IMongoQuery  query  = Query.EQ("_id", question._Id);
                IMongoUpdate update = Update
                                      .Set("Body", question.Body)
                                      .Set("Votes", question.Votes);
                result   = questionsList.Update(query, update);
                hasError = result.HasLastErrorMessage;
            }
            if (!hasError)
            {
                return(question);
            }
            else
            {
                throw new Exception("");
            }
        }
        public IHttpActionResult UpdateUser(Favorites fav)
        {
            var collection = mongoDb.GetCollection <Users>("Users");

            IMongoQuery query = Query.EQ("UserName", fav.User);

            var cursor   = collection.FindOne(query);
            var res      = cursor.Favorites.Select(p => p.AsBsonArray);
            var favCount = res.Count();

            fav.Id = favCount + 1;
            //fav.Category = fav.Category.First().ToString().ToUpper() + fav.Category.Substring(1);
            BsonArray test = new BsonArray
            {
                fav.Id,
                fav.Category,
                fav.From,
                fav.To
            };

            IMongoUpdate update = Update
                                  .Push("Favorites", test);

            result = collection.Update(query, update);

            return(Ok(fav.Id + ' ' + fav.User + ' ' + fav.Category + ' ' + fav.From + ' ' + fav.To));
        }
Example #3
0
        public void Delete(object entity)
        {
            var request = (DeleteCareTeamDataRequest)entity;

            using (var ctx = new ContactCareTeamMongoContext(_dbName))
            {
                var queries = new List <IMongoQuery>
                {
                    MB.Query <MEContactCareTeam> .EQ(c => c.Id, ObjectId.Parse(request.Id)),
                    MB.Query <MEContactCareTeam> .EQ(c => c.DeleteFlag, false)
                };

                var query           = MB.Query.And(queries);
                var contactCareTeam = ctx.CareTeam.Collection.FindOne(query);
                var builder         = new List <MB.UpdateBuilder>();
                builder.Add(MB.Update.Set(MEContactCareTeam.TTLDateProperty, DateTime.UtcNow.AddDays(_expireDays)));
                builder.Add(MB.Update.Set(MEContactCareTeam.DeleteFlagProperty, true));
                builder.Add(MB.Update.Set(MEContactCareTeam.LastUpdatedOnProperty, DateTime.UtcNow));
                builder.Add(MB.Update.Set(MEContactCareTeam.LastUpdatedByProperty, ObjectId.Parse(this.UserId)));

                IMongoUpdate update = MB.Update.Combine(builder);
                ctx.CareTeam.Collection.Update(query, update);

                AuditHelper.LogDataAudit(this.UserId,
                                         MongoCollectionName.CareTeam.ToString(),
                                         contactCareTeam.Id.ToString(),
                                         DataAuditType.Delete,
                                         request.ContractNumber);
            }
        }
Example #4
0
        protected long UpdateAll(QueryOptions options, IMongoUpdate update, bool sendNotifications = true)
        {
            var result = _collection.Update(options.GetMongoQuery(_getIdValue), update, UpdateFlags.Multi);

            if (!sendNotifications || !EnableNotifications || _messagePublisher == null)
            {
                return(result.DocumentsAffected);
            }

            if (options.OrganizationIds.Any())
            {
                foreach (var orgId in options.OrganizationIds)
                {
                    PublishMessage(new EntityChanged {
                        ChangeType     = ChangeType.UpdatedAll,
                        OrganizationId = orgId,
                        Type           = _entityType
                    });
                }
            }
            else
            {
                PublishMessage(new EntityChanged {
                    ChangeType = ChangeType.UpdatedAll,
                    Type       = _entityType
                });
            }

            return(result.DocumentsAffected);
        }
Example #5
0
        public HttpResponseMessage PostAddRequest(User user)
        {
            ObjectId requestId = ObjectId.Parse(user.Name);

            var login = (CustomMembershipUser)Membership.GetUser(User.Identity.Name);
            MongoHelper <User> mongo = new MongoHelper <User>();

            try
            {
                RequestsList req = new RequestsList();
                req.UserId  = requestId;
                req.isViewd = false;


                IMongoQuery  query  = Query.EQ("_id", requestId);
                IMongoUpdate update = MongoDB.Driver.Builders.Update.PushWrapped("RequestsLists", req);
                mongo.Collection.Update(query, update);

                var userIdentity = mongo.Collection.Find(Query.EQ("_id", requestId)).SingleOrDefault();
                var context      = GlobalHost.ConnectionManager.GetHubContext <Request>();
                context.Clients.Client(userIdentity.loginUserIdentity).addNewMessageToPage("Request", "You have friend request");

                return(Request.CreateResponse(HttpStatusCode.OK, true));
            }
            catch (Exception e)
            {
                return(Request.CreateResponse(HttpStatusCode.OK, false));
            }

            //return true;
        }
        public void Save(DeviceUpgradeSummary entity)
        {
            try
            {
                IMongoQuery query = Query.And
                                    (
                    Query <DeviceUpgradeSummary> .EQ <DateTime>(mem => mem.Date, entity.Date),
                    Query <DeviceUpgradeSummary> .EQ <Guid>(mem => mem.ApplicationId, entity.ApplicationId),
                    Query <DeviceUpgradeSummary> .EQ <string>(mem => mem.Version, entity.Version),
                    Query <DeviceUpgradeSummary> .EQ <PlatformType>(mem => mem.PlatformType, entity.PlatformType)
                                    );

                IMongoUpdate update = Update <DeviceUpgradeSummary>
                                      .SetOnInsert(x => x.Version, entity.Version)
                                      .SetOnInsert(x => x.Date, entity.Date)
                                      .SetOnInsert(x => x.ApplicationId, entity.ApplicationId)
                                      .SetOnInsert(x => x.PlatformType, entity.PlatformType)
                                      .Inc(mem => mem.Count, entity.Count);

                this.GetCollection <DeviceUpgradeSummary>().FindAndModify(query, SortBy.Null, update, false, true);
            }
            catch (Exception ex)
            {
                throw new DataAccessLayerException(ex);
            }
        }
Example #7
0
        /// <summary>
        /// Bulk update based on MongoQuery and MongoUpdate(low level querying patterns).
        /// To process by a queue please set IMongoQuery and IMongoUpdate queries yourself, as in all other Insert and update operations
        /// you set the particular Entity. Though I've never seen people updating in bulk in most business scenarios.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="query"></param>
        /// <param name="update"></param>
        /// <returns></returns>
        public virtual long BulkUpdate <T>(IMongoQuery query, IMongoUpdate update) where T : IMXEntity
        {
            var collectionName = typeof(T).Name;

            var collection = DbContext.GetCollection <T>(collectionName);

            var bulk = collection.InitializeOrderedBulkOperation();

            var updateBuilder = (UpdateBuilder <T>)update;

            if (!IsProcessedByQueue)
            {
                //set defaults
                updateBuilder.Inc(c => c.Version, 1);
                updateBuilder.Set(c => c.CreatedBy, CurrentUser);
                updateBuilder.Set(c => c.CreatedDate, CurrentDate);
            }

            bulk.Find(query).Update(updateBuilder);

            var modifiedCount = bulk.Execute(WriteConcern.Acknowledged).ModifiedCount;

            var docs = collection.FindAs <T>(query).ToList();

            //Insert into history
            Task.Run(() =>
                     InsertManyIntoHistory <T>(docs)
                     );

            return(modifiedCount);
        }
Example #8
0
        public string UpdateDocument(AdminData adminData)
        {
            try
            {
                MongoDatabase myDB = GetDB();

                MongoCollection <AdminData> adminDataTable = myDB.GetCollection <AdminData>("AdminData");

                QueryDocument queryDoc = new QueryDocument("_id", adminData._id);

                IMongoQuery query = queryDoc;

                //    IMongoUpdate update = new UpdateDocument("Address","Hyd");

                //  IMongoUpdate update = new UpdateDocument().Set("Address", "Hyd") as UpdateDocument;

                //   IMongoUpdate update = new UpdateDocument().Set(queryDoc.IndexOfName("Address"), "Hyd") as UpdateDocument;

                var updateDoc = Update.Set("Address", adminData.Address).Set("Age", adminData.Age.ToString()).Set("Name", adminData.Name).Set("SlNo", adminData.SlNo.ToString());

                IMongoUpdate update = updateDoc;

                WriteConcernResult updateResult = adminDataTable.Update(query, update);

                return("Succcess");
                //  adminDataTable.Update()

                // GetCollection();
            }
            catch (Exception ex)
            {
                throw;
            }
        }
Example #9
0
        public Tag Save(Tag tag)
        {
            var tagsList = mongoDatabase.GetCollection("Tags");
            WriteConcernResult result;
            bool hasError = false;

            if (string.IsNullOrEmpty(tag._Id))
            {
                tag._Id  = ObjectId.GenerateNewId().ToString();
                result   = tagsList.Insert <Tag>(tag);
                hasError = result.HasLastErrorMessage;
            }
            else
            {
                IMongoQuery  query  = Query.EQ("_id", tag._Id);
                IMongoUpdate update = Update
                                      .Set("TagName", tag.TagName);
                result   = tagsList.Update(query, update);
                hasError = result.HasLastErrorMessage;
            }
            if (!hasError)
            {
                return(tag);
            }
            else
            {
                throw new Exception("");
            }
        }
 public void Update(IMongoQuery query, IMongoUpdate update)
 {
     GetTypeCollection <TEntity>(MappingCfg.ToDatabase, MappingCfg.ToCollection)
     .Update(query, update, new MongoUpdateOptions {
         Flags = UpdateFlags.Upsert
     });
 }
Example #11
0
        public void SignUp(Users newUser)
        {
            var collection = mongoDb.GetCollection <Users>("TestCollection"); //testing
            //var collection = mongoDb.GetCollection<Users>("Users");
            WriteConcernResult result;

            var count = collection.Find(Query.EQ("UserName", newUser.UserName)).Count();

            if (count > 0)
            {
                HttpResponseMessage httpResponse = new HttpResponseMessage(HttpStatusCode.BadRequest);
                throw new HttpResponseException(httpResponse);
            }
            else
            {
                newUser.Id        = ObjectId.GenerateNewId().ToString();
                newUser.Favorites = new BsonArray();
                newUser.Recents   = new BsonArray();
                BsonArray recent = new BsonArray(newUser.Recents);

                IMongoUpdate update = Update
                                      .Set("UserName", newUser.UserName)
                                      .Set("Password", newUser.Password)
                                      .Set("Email", newUser.Email)
                                      .Set("Favorites", newUser.Favorites)
                                      .Set("Recents", recent);
                result = collection.Insert <Users>(newUser);
            }
        }
Example #12
0
 public void Update_Street_Information(Class_Street _Obj)
 {
     MongoCollection<Class_Street> Collection_ = Database_.GetCollection<Class_Street>("Street");
     IMongoQuery Marker = Query.EQ("Id", _Obj.Id);
     IMongoUpdate Update_ = MongoDB.Driver.Builders.Update.Set("STREETNM", _Obj.STREETNM);
     Collection_.Update(Marker, Update_);
 }
Example #13
0
        /// <summary>
        /// reset package queues with airingId
        /// </summary>
        /// <param name="queueNames">The queue names.</param>
        /// <param name="airingId">The airing id.</param>
        /// <param name="destinationCode">The destination code</param>
        public void ResetFor(IList <string> queueNames, string airingId, string destinationCode)
        {
            IMongoQuery query = Query.EQ("AssetId", airingId);

            if (!string.IsNullOrEmpty(destinationCode))
            {
                query = Query.And(query, Query.EQ("Flights.Destinations.Name", destinationCode));
            }

            var currentAiring = _currentAirings.FindOne(query);

            if (currentAiring == null)
            {
                return;
            }

            IList <ChangeNotification> changeNotifications = GetChangeNotifications(queueNames, currentAiring);
            List <UpdateBuilder>       updateValues        = new List <UpdateBuilder>();

            updateValues.Add(Update.PullAllWrapped("DeliveredTo", changeNotifications.Select(e => e.QueueName)));
            updateValues.Add(Update.PullAllWrapped("IgnoredQueues", changeNotifications.Select(e => e.QueueName)));
            updateValues.Add(Update.AddToSetEachWrapped("ChangeNotifications", changeNotifications.AsEnumerable()));

            IMongoUpdate update = Update.Combine(updateValues);

            _currentAirings.Update(query, update);
        }
Example #14
0
        public DbDataset Save(DbDataset data)
        {
            var contactsList = mongoDatabase.GetCollection("Data");
            WriteConcernResult result;
            bool hasError = false;

            if (string.IsNullOrEmpty(data.Id))
            {
                data.Id  = ObjectId.GenerateNewId().ToString();
                result   = contactsList.Insert <DbDataset>(data);
                hasError = result.HasLastErrorMessage;
            }
            else
            {
                IMongoQuery  query  = Query.EQ("_id", data.Id);
                IMongoUpdate update = Update
                                      .Set("Size", data.Size)
                                      .Set("Circumference", data.Circumference)
                                      .Set("Width", data.Width);
                result   = contactsList.Update(query, update);
                hasError = result.HasLastErrorMessage;
            }
            if (!hasError)
            {
                return(data);
            }
            else
            {
                throw new HttpResponseException(HttpStatusCode.InternalServerError);
            }
        }
        public void Save(CrashSummary entity)
        {
            try
            {
                IMongoQuery query = Query.And
                                    (
                    Query <CrashSummary> .EQ <DateTime>(mem => mem.Date, entity.Date),
                    Query <CrashSummary> .EQ <Guid>(mem => mem.ApplicationId, entity.ApplicationId),
                    Query <CrashSummary> .EQ <string>(mem => mem.Version, entity.Version),
                    Query <CrashSummary> .EQ <PlatformType>(mem => mem.PlatformId, entity.PlatformId)
                                    );

                IMongoUpdate update = Update <CrashSummary>
                                      .SetOnInsert(x => x.Version, entity.Version)
                                      .SetOnInsert(x => x.Date, entity.Date)
                                      .SetOnInsert(x => x.ApplicationId, entity.ApplicationId)
                                      .SetOnInsert(x => x.PlatformId, entity.PlatformId)
                                      .Inc(mem => mem.Count, entity.Count);

                this.GetCollection <CrashSummary>().FindAndModify(query, SortBy.Descending("Date"), update, false, true);
                this.GetCollection <CrashSummary>().EnsureIndex(IndexKeys.Descending("Date"));
            }
            catch (Exception ex)
            {
                throw new DataAccessLayerException(ex);
            }
        }
Example #16
0
        public virtual Task <T> UpdateAsync(T entity)
        {
            return(Task.Run(() =>
            {
                WriteConcernResult result;

                IMongoQuery query = Query <T> .EQ(arg => arg.Id, entity.Id);
                IMongoUpdate update = Update.Replace(entity);

                try
                {
                    result = Collection.Update(query, update);
                }
                catch (MongoWriteConcernException e)
                {
                    throw HandleWriteException(e);
                }
                catch (Exception e)
                {
                    throw new ApplicationException("Mongo driver failure.", e);
                }

                CheckWriteResult(result, true);

                return entity;
            }));
        }
Example #17
0
        public void UndoDelete(object entity)
        {
            try
            {
                if (entity != null)
                {
                    using (PatientNoteMongoContext ctx = new PatientNoteMongoContext(ContractDBName))
                    {
                        string id = entity.ToString();
                        var    q  = MB.Query <MEPatientUtilization> .EQ(b => b.Id, ObjectId.Parse(id));

                        var uv = new List <MB.UpdateBuilder>();
                        uv.Add(MB.Update.Set(MEPatientUtilization.TTLDateProperty, BsonNull.Value));
                        uv.Add(MB.Update.Set(MEPatientUtilization.DeleteFlagProperty, false));
                        uv.Add(MB.Update.Set(MEPatientUtilization.LastUpdatedOnProperty, DateTime.UtcNow));
                        uv.Add(MB.Update.Set(MEPatientUtilization.UpdatedByProperty, ObjectId.Parse(this.UserId)));
                        IMongoUpdate update = MB.Update.Combine(uv);
                        ctx.PatientUtilizations.Collection.Update(q, update);

                        AuditHelper.LogDataAudit(this.UserId,
                                                 MongoCollectionName.PatientUtilization.ToString(),
                                                 id,
                                                 DataAuditType.UndoDelete,
                                                 ContractDBName);
                    }
                }
            }
            catch (Exception) { throw; }
        }
        public void UndoDelete(object entity)
        {
            UndoDeleteTaskDataRequest request = (UndoDeleteTaskDataRequest)entity;

            try
            {
                using (PatientGoalMongoContext ctx = new PatientGoalMongoContext(_dbName))
                {
                    var q = MB.Query <MEPatientTask> .EQ(b => b.Id, ObjectId.Parse(request.TaskId));

                    var uv = new List <MB.UpdateBuilder>();
                    uv.Add(MB.Update.Set(MEPatientTask.TTLDateProperty, BsonNull.Value));
                    uv.Add(MB.Update.Set(MEPatientTask.DeleteFlagProperty, false));
                    uv.Add(MB.Update.Set(MEPatientTask.UpdatedByProperty, ObjectId.Parse(this.UserId)));
                    uv.Add(MB.Update.Set(MEPatientTask.LastUpdatedOnProperty, DateTime.UtcNow));

                    IMongoUpdate update = MB.Update.Combine(uv);
                    ctx.PatientTasks.Collection.Update(q, update);

                    AuditHelper.LogDataAudit(this.UserId,
                                             MongoCollectionName.PatientTask.ToString(),
                                             request.TaskId.ToString(),
                                             Common.DataAuditType.UndoDelete,
                                             request.ContractNumber);
                }
            }
            catch (Exception) { throw; }
        }
Example #19
0
        public Contact Save(Contact contact)
        {
            var contactsList = mongoDatabase.GetCollection("Contacts");
            WriteConcernResult result;
            bool hasError = false;

            if (string.IsNullOrEmpty(contact.Id))
            {
                contact.Id = ObjectId.GenerateNewId().ToString();
                result     = contactsList.Insert <Contact>(contact);
                hasError   = result.HasLastErrorMessage;
            }
            else
            {
                IMongoQuery  query  = Query.EQ("_id", contact.Id);
                IMongoUpdate update = Update
                                      .Set("Name", contact.Name)
                                      .Set("Address", contact.Address)
                                      .Set("Phone", contact.Phone)
                                      .Set("Email", contact.Email);
                result   = contactsList.Update(query, update);
                hasError = result.HasLastErrorMessage;
            }
            if (!hasError)
            {
                return(contact);
            }
            else
            {
                throw new Exception("");
            }
        }
        public void Delete(object entity)
        {
            DeleteCareMemberByPatientIdDataRequest request = (DeleteCareMemberByPatientIdDataRequest)entity;

            try
            {
                using (CareMemberMongoContext ctx = new CareMemberMongoContext(_dbName))
                {
                    var query = MB.Query <MECareMember> .EQ(b => b.Id, ObjectId.Parse(request.Id));

                    var builder = new List <MB.UpdateBuilder>();
                    builder.Add(MB.Update.Set(MECareMember.TTLDateProperty, DateTime.UtcNow.AddDays(_expireDays)));
                    builder.Add(MB.Update.Set(MECareMember.DeleteFlagProperty, true));
                    builder.Add(MB.Update.Set(MECareMember.LastUpdatedOnProperty, DateTime.UtcNow));
                    builder.Add(MB.Update.Set(MECareMember.UpdatedByProperty, ObjectId.Parse(this.UserId)));

                    IMongoUpdate update = MB.Update.Combine(builder);
                    ctx.CareMembers.Collection.Update(query, update);

                    AuditHelper.LogDataAudit(this.UserId,
                                             MongoCollectionName.CareMember.ToString(),
                                             request.Id.ToString(),
                                             Common.DataAuditType.Delete,
                                             request.ContractNumber);
                }
            }
            catch (Exception) { throw; }
        }
Example #21
0
        public void RemoveProgram(object entity, List <string> updatedProgramIds)
        {
            RemoveProgramInToDosDataRequest request = (RemoveProgramInToDosDataRequest)entity;

            try
            {
                List <ObjectId> ids = updatedProgramIds.ConvertAll(r => ObjectId.Parse(r));
                using (SchedulingMongoContext ctx = new SchedulingMongoContext(_dbName))
                {
                    var q = MB.Query <METoDo> .EQ(b => b.Id, ObjectId.Parse(request.ToDoId));

                    var uv = new List <MB.UpdateBuilder>();
                    uv.Add(MB.Update.SetWrapped <List <ObjectId> >(METoDo.ProgramProperty, ids));
                    uv.Add(MB.Update.Set(METoDo.LastUpdatedOnProperty, DateTime.UtcNow));
                    uv.Add(MB.Update.Set(METoDo.UpdatedByProperty, ObjectId.Parse(this.UserId)));

                    IMongoUpdate update = MB.Update.Combine(uv);
                    ctx.ToDos.Collection.Update(q, update);

                    AuditHelper.LogDataAudit(this.UserId,
                                             MongoCollectionName.ToDo.ToString(),
                                             request.ToDoId.ToString(),
                                             Common.DataAuditType.Update,
                                             request.ContractNumber);
                }
            }
            catch (Exception) { throw; }
        }
Example #22
0
        public bool blnUpdateDocument(string strCollectionName, IMongoQuery query, IMongoUpdate update)
        {
            const string udcErrorMethod = "blnUpdateDocument";
            bool         blnReturn      = false;

            try
            {
                if (!(string.IsNullOrWhiteSpace(strMongoDataBase)) && !(string.IsNullOrWhiteSpace(strCollectionName)))
                {
                    WriteConcernResult objWrite = objMdbServer.GetDatabase(strMongoDataBase).GetCollection(strCollectionName).Update(query, update, WriteConcern.Acknowledged);
                    blnReturn = objWrite.Ok;
                }
                else
                {
                    strException = "MongoDataBaseName and MongoCollection Name is Null or Void";
                    clsLog.blnLogError("clsMongoDBEngine", "bsonReadDocument", strException, "");
                }
            }
            catch (Exception ex)
            {
                strException = ex.Message;
                clsLog.blnLogError(udcErrorSource, udcErrorMethod, strException, "DNF Error");
            }

            return(blnReturn);
        }
Example #23
0
        public void PushDeliveredTo(string airingId, string queueName)
        {
            var query = new QueryDocument {
                { "AssetId", airingId }
            };

            var pullDeliverTo          = Update.PullAllWrapped("DeliverTo", queueName);
            var pullIgnoredQueues      = Update.PullAllWrapped("IgnoredQueues", queueName);
            var pushDeliveredTo        = Update.PushAllWrapped("DeliveredTo", queueName);
            var pullNotificationUpdate = Update.Pull("ChangeNotifications",
                                                     new BsonDocument()
            {
                { "QueueName", queueName }
            });

            List <UpdateBuilder> updateValues = new List <UpdateBuilder>
            {
                pullDeliverTo,
                pullIgnoredQueues,
                pushDeliveredTo,
                pullNotificationUpdate
            };

            IMongoUpdate allUpdate = Update.Combine(updateValues);

            _airings.Update(query, allUpdate, UpdateFlags.Multi);
        }
 public void Update(IMongoQuery query, IMongoUpdate update, string dbName, string collectionName)
 {
     GetTypeCollection <TEntity>(dbName, collectionName)
     .Update(query, update, new MongoUpdateOptions {
         Flags = UpdateFlags.Upsert
     });
 }
Example #25
0
        public void UndoDelete(object entity)
        {
            UndoDeleteCareTeamDataRequest request = (UndoDeleteCareTeamDataRequest)entity;

            try
            {
                using (var ctx = new ContactCareTeamMongoContext(_dbName))
                {
                    var query = MB.Query <MEContactCareTeam> .EQ(b => b.Id, ObjectId.Parse(request.Id));

                    var builder = new List <MB.UpdateBuilder>();
                    builder.Add(MB.Update.Set(MEContactCareTeam.TTLDateProperty, BsonNull.Value));
                    builder.Add(MB.Update.Set(MEContactCareTeam.DeleteFlagProperty, false));
                    builder.Add(MB.Update.Set(MEContactCareTeam.LastUpdatedOnProperty, DateTime.UtcNow));
                    builder.Add(MB.Update.Set(MEContactCareTeam.LastUpdatedByProperty, ObjectId.Parse(this.UserId)));

                    IMongoUpdate update = MB.Update.Combine(builder);
                    ctx.CareTeam.Collection.Update(query, update);

                    AuditHelper.LogDataAudit(this.UserId,
                                             MongoCollectionName.CareMember.ToString(),
                                             request.Id.ToString(),
                                             Common.DataAuditType.UndoDelete,
                                             request.ContractNumber);
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
Example #26
0
        /// <summary>
        /// 根据文档名称更新指定内容
        /// </summary>
        /// <param name="colName">文档名称</param>
        /// <param name="query">查询条件</param>
        /// <param name="update">更新内容</param>
        /// <param name="updateFlags">更新类型(upsert:如果不存在插入)</param>
        /// <typeparam name="T"></typeparam>
        public static void Update <T>(string colName, IMongoQuery query, IMongoUpdate update, UpdateFlags updateFlags)
        {
            var mongo      = MongoManager.getDB();
            var collection = mongo.GetCollection <T>(colName);

            collection.Update(query, update, updateFlags);
        }
Example #27
0
        public HttpResponseMessage PostLikePost(Temp temp)
        {
            ObjectId PostId = ObjectId.Parse(temp.Name1);

            var login = (CustomMembershipUser)Membership.GetUser(User.Identity.Name);

            MongoHelper <UserPost> mongoPost = new MongoHelper <UserPost>();
            IMongoQuery            query     = Query.EQ("_id", PostId);

            var post = mongoPost.Collection.Find(query).SingleOrDefault();
            var id   = post.LikeLists.Where(e => e == login.UserId).SingleOrDefault();

            if (id.Pid == 0)
            {
                IMongoUpdate update = MongoDB.Driver.Builders.Update.PushWrapped("LikeLists", login.UserId);
                mongoPost.Collection.Update(query, update);
            }
            else
            {
                IMongoUpdate update = MongoDB.Driver.Builders.Update.Pull("LikeLists", login.UserId);
                mongoPost.Collection.Update(query, update);
            }

            return(Request.CreateResponse(HttpStatusCode.OK, true));
        }
Example #28
0
        public void CreateContact(Contact newContact)
        {
            try
            {
                _mongoDatabase = RetreiveMongohqDb();

                var contactsList = _mongoDatabase.GetCollection("ContactList");
                WriteConcernResult result;
                var hasError = false;
                if (string.IsNullOrEmpty(newContact.Id))
                {
                    newContact.Id = ObjectId.GenerateNewId().ToString();
                    result        = contactsList.Insert(newContact);
                    hasError      = result.HasLastErrorMessage;
                }
                else
                {
                    var          query  = Query.EQ("_id", newContact.Id);
                    IMongoUpdate update = Update
                                          .Set("Name", newContact.Name)
                                          .Set("Address", newContact.Address)
                                          .Set("Phone", newContact.Phone)
                                          .Set("Email", newContact.Email);
                    result = contactsList.Update(query, update);
                    //hasError = result.HasLastErrorMessage;
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }
Example #29
0
        public HttpResponseMessage PostAddComment(Temp temp)
        {
            ObjectId PostId = ObjectId.Parse(temp.Name1);

            var login = (CustomMembershipUser)Membership.GetUser(User.Identity.Name);

            MongoHelper <UserPost> mongoPost = new MongoHelper <UserPost>();


            Comment comm = new Comment();

            comm._id       = ObjectId.GenerateNewId();
            comm.Text      = temp.Text;
            comm.UserId    = login.UserId;
            comm.CreatedAt = DateTime.Now;
            comm.LikeLists = new List <ObjectId>();

            IMongoQuery  query  = Query.EQ("_id", PostId);
            IMongoUpdate update = MongoDB.Driver.Builders.Update.PushWrapped("Comments", comm);

            mongoPost.Collection.Update(query, update);

            return(Request.CreateResponse(HttpStatusCode.OK, new {
                commentId = comm._id.ToString(),
                totalLikes = 0,
                text = comm.Text,
                createdAt = comm.CreatedAt.ToString("dd MMM yyyy HH:mm")
            }));
        }
        public void Delete(object entity)
        {
            DeleteInterventionDataRequest request = (DeleteInterventionDataRequest)entity;

            try
            {
                using (PatientGoalMongoContext ctx = new PatientGoalMongoContext(_dbName))
                {
                    var q = MB.Query <MEPatientIntervention> .EQ(b => b.Id, ObjectId.Parse(request.InterventionId));

                    var uv = new List <MB.UpdateBuilder>();
                    uv.Add(MB.Update.Set(MEPatientIntervention.TTLDateProperty, System.DateTime.UtcNow.AddDays(_expireDays)));
                    uv.Add(MB.Update.Set(MEPatientIntervention.DeleteFlagProperty, true));
                    uv.Add(MB.Update.Set(MEPatientIntervention.UpdatedByProperty, ObjectId.Parse(this.UserId)));
                    uv.Add(MB.Update.Set(MEPatientIntervention.LastUpdatedOnProperty, DateTime.UtcNow));

                    IMongoUpdate update = MB.Update.Combine(uv);
                    ctx.PatientInterventions.Collection.Update(q, update);

                    AuditHelper.LogDataAudit(this.UserId,
                                             MongoCollectionName.PatientIntervention.ToString(),
                                             request.InterventionId.ToString(),
                                             Common.DataAuditType.Delete,
                                             request.ContractNumber);
                }
            }
            catch (Exception) { throw; }
        }
Example #31
0
        public Guid ExecuteStartImpl(string collectionName, object query, IMongoUpdate update, ExecuteType type)
        {
            var id = Guid.NewGuid();
            var q = String.Format("{0}\n{1}", query, update);
            var mongoTiming = new MongoTiming(collectionName, q, type, Profiler);

            _inProgress[id] = mongoTiming;
            return id;
        }
 // constructors
 internal MongoUpdateMessage(BsonBinaryWriterSettings writerSettings, string collectionFullName, bool checkUpdateDocument, UpdateFlags flags, IMongoQuery query, IMongoUpdate update)
     : base(MessageOpcode.Update, null, writerSettings)
 {
     this.collectionFullName = collectionFullName;
     this.checkUpdateDocument = checkUpdateDocument;
     this.flags = flags;
     this.query = query;
     this.update = update;
 }
 internal MongoUpdateMessage(
     MongoConnection connection,
     string collectionFullName,
     UpdateFlags flags,
     IMongoQuery query,
     IMongoUpdate update
 ) :
     base(connection, MessageOpcode.Update) {
     this.collectionFullName = collectionFullName;
     this.flags = flags;
     this.query = query;
     this.update = update;
 }
 public UpdateOperation(
     string databaseName,
     string collectionName,
     BsonBinaryReaderSettings readerSettings,
     BsonBinaryWriterSettings writerSettings,
     WriteConcern writeConcern,
     IMongoQuery query,
     IMongoUpdate update,
     UpdateFlags flags,
     bool checkElementNames)
     : base(databaseName, collectionName, readerSettings, writerSettings, writeConcern)
 {
     _query = query;
     _update = update;
     _flags = flags;
     _checkElementNames = checkElementNames;
 }
 // constructors
 internal MongoUpdateMessage(
     BsonBinaryWriterSettings writerSettings,
     string collectionFullName,
     bool checkUpdateDocument,
     UpdateFlags flags,
     int maxDocumentSize,
     IMongoQuery query,
     IMongoUpdate update)
     : base(MessageOpcode.Update, writerSettings)
 {
     _collectionFullName = collectionFullName;
     _checkUpdateDocument = checkUpdateDocument;
     _flags = flags;
     _maxDocumentSize = maxDocumentSize;
     _query = query;
     _update = update;
 }
Example #36
0
        public object FindAndModifyAs(Type documentType, IMongoQuery query, IMongoSortBy sortBy, IMongoUpdate update, IMongoFields fields, bool returnNew, bool upsert, out UpdateResult result)
        {
            foreach (var document in QueryCompiler.Query(Documents, Documents2, query, sortBy, 0, 0))
            {
                // if old is needed then deep(!) clone before update //_131103_185751
                BsonDocument output = null;
                if (!returnNew)
                    output = document.DeepClone().AsBsonDocument;

                UpdateDocument(document, UpdateCompiler.GetFunction((IConvertibleToBsonDocument)update, null, false));

                if (returnNew)
                    output = document;

                // project
                if (fields != null)
                {
                    var project = FieldCompiler.GetFunction(fields);
                    output = project(output);
                }

                // if old is needed then return it as already deep cloned
                result = new SimpleUpdateResult(1, true);
                if (!returnNew && documentType == typeof(Dictionary))
                    return new Dictionary(output);
                else
                    // deserialize to required type
                    return BsonSerializer.Deserialize(output, documentType);
            }

            // not found, insert
            if (upsert)
            {
                var document = InsertNewDocument(query, update);

                result = new SimpleUpdateResult(1, false);
                return returnNew ? BsonSerializer.Deserialize(document, documentType) : null;
            }

            result = new SimpleUpdateResult(0, false);
            return null;
        }
Example #37
0
 /// <summary>
 /// GEP 상품 업데이트
 /// </summary>
 /// <param name="query">IMongoQuery</param>
 /// <param name="update">IMongoUpdate</param>
 public void Update(IMongoQuery query , IMongoUpdate update)
 {
     List<GepItemsData> List = new List<GepItemsData>();
     GEPMongoDacHelper MongoHelper = new GEPMongoDacHelper("gep", "gep_items");
     MongoHelper.Save(query, update);
 }
Example #38
0
 internal void UpdateGEPOrderInfo(IMongoQuery query, IMongoUpdate update)
 {
     new MongoDacHelper(GepMongoEnv.ConfigSection.GEP, GepMongoEnv.Database.GEP, GepMongoEnv.Collection.GEP_ORDER)
         .Save(query, update, SafeMode.True);
 }
Example #39
0
 public WriteConcernResult Update(IMongoQuery query, IMongoUpdate update, UpdateFlags flags, WriteConcern writeConcern, bool needResult)
 {
     return _this.Update(query, update, flags, writeConcern);
 }
Example #40
0
 public object FindAndModifyAs(Type documentType, IMongoQuery query, IMongoSortBy sortBy, IMongoUpdate update, IMongoFields fields, bool returnNew, bool upsert, out UpdateResult result)
 {
     var r = _this.FindAndModify(query, sortBy, update, fields, returnNew, upsert);
     result = new FindAndModifyUpdateResult(r);
     return r.GetModifiedDocumentAs(documentType);
 }
Example #41
0
 internal void UpdateeBayCancel(IMongoQuery query, IMongoUpdate update)
 {
     new MongoDacHelper(GepMongoEnv.ConfigSection.GEP, GepMongoEnv.Database.GEP_EBAY, GepMongoEnv.Collection.EBAY_CANCEL)
         .Save(query, update, SafeMode.True);
 }
 Guid IMongoDbProfiler.ExecuteStart(string collectionName, IMongoQuery query, IMongoUpdate update, ExecuteType executeType)
 {
     return MongoProfiler.ExecuteStart(collectionName, query, update, executeType);
 }
Example #43
0
 public bool UpdateObject(string objectName, IMongoQuery query, IMongoUpdate update)
 {
     WriteConcernResult result = Database.GetCollection(objectName).Update(query, update);
     return result.Ok;
 }
Example #44
0
 public static Guid ExecuteStart(this MongoProfiler mongoProfiler, string collectionName, object query, IMongoUpdate update, ExecuteType type)
 {
     if (mongoProfiler == null) return Guid.Empty;
     return mongoProfiler.ExecuteStartImpl(collectionName, query, update, type);
 }
Example #45
0
 public object FindAndModifyAs(Type documentType, IMongoQuery query, IMongoSortBy sortBy, IMongoUpdate update, IMongoFields fields, bool returnNew, bool upsert, out UpdateResult result)
 {
     var args = new FindAndModifyArgs();
     args.Query = query;
     args.SortBy = sortBy;
     args.Update = update;
     args.Fields = fields;
     args.Upsert = upsert;
     args.VersionReturned = returnNew ? FindAndModifyDocumentVersion.Modified : FindAndModifyDocumentVersion.Original;
     var r = _this.FindAndModify(args);
     result = new FindAndModifyUpdateResult(r);
     return r.GetModifiedDocumentAs(documentType);
 }
Example #46
0
        public WriteConcernResult Update(IMongoQuery query, IMongoUpdate update, UpdateFlags flags, WriteConcern writeConcern, bool needResult)
        {
            bool updatedExisting = false;
            int documentsAffected = 0;
            try
            {
                Func<BsonDocument, UpdateCompiler> function = null;
                foreach (var document in QueryDocuments(query))
                {
                    if (function == null)
                        function = UpdateCompiler.GetFunction((IConvertibleToBsonDocument)update, null, false);

                    UpdateDocument(document, function);

                    updatedExisting = true;
                    ++documentsAffected;

                    if ((flags & UpdateFlags.Multi) == 0)
                        break;
                }

                // not found and upsert
                if (function == null && (flags & UpdateFlags.Upsert) > 0)
                {
                    InsertNewDocument(query, update);
                    ++documentsAffected;
                }

                return needResult ? new WriteConcernResult(NewResponse(documentsAffected, updatedExisting, null, null)) : null;
            }
            catch (Exception ex)
            {
                throw new MongoWriteConcernException(ex.Message, new WriteConcernResult(NewResponse(documentsAffected, updatedExisting, ex.Message, null)));
            }
        }
        public void TestUpdateOneKeyValidation(bool ordered)
        {
            var updates = new IMongoUpdate[]
            {
                new UpdateDocument { { "key", 1 } },
                new UpdateDocument { { "key", 1 }, { "$key", 1 } }
            };

            foreach (var update in updates)
            {
                _collection.Drop();
                var bulk = InitializeBulkOperation(_collection, ordered);
                var query = Query.EQ("_id", 1);
                bulk.Find(query).UpdateOne(update);
                Assert.Throws<BsonSerializationException>(() => bulk.Execute());
            }
        }
Example #48
0
 // Inserts a new document created from a query and an update and returns it.
 BsonDocument InsertNewDocument(IMongoQuery query, IMongoUpdate update)
 {
     var document = new BsonDocument();
     UpdateCompiler.GetFunction((IConvertibleToBsonDocument)update, (IConvertibleToBsonDocument)query, true)(document);
     InsertInternal(document);
     return document;
 }
Example #49
0
 /// <summary>
 /// TA 토큰 업데이트로 사용
 /// </summary>
 /// <param name="query">조건 쿼리</param>
 /// <param name="update">업데이트 쿼리</param>
 public void TaTokenExpireDateUpdate(IMongoQuery query, IMongoUpdate update)
 {
     GEPMongoDacHelper MongoHelper = new GEPMongoDacHelper("gep", "ta");
     MongoHelper.Save(query, update);
 }
Example #50
0
 /// <summary>
 /// eBay 상품정보 부분 저장
 /// </summary>
 public void Save(IMongoQuery query, IMongoUpdate update)
 {
     GEPMongoDacHelper MongoHelper = new GEPMongoDacHelper(dataBase, collection);
     MongoHelper.Save(query, update);
 }
Example #51
0
 /// <summary>
 /// 修改
 /// </summary>  
 public static bool Update(string collectionName, IMongoQuery query, IMongoUpdate newDoc)
 {
     MongoCollection<BsonDocument> collection;
     MongoServer server = CreateMongoServer(collectionName, out collection);
     try
     {
         collection.Update(query, newDoc);
         //server.Disconnect();
         return true;
     }
     catch
     {
         //server.Disconnect();
         return false;
     }
 }
Example #52
0
 /// <summary>
 /// Initializes a new instance of the <see cref="UpdateRequest"/> class.
 /// </summary>
 /// <param name="query">The query.</param>
 /// <param name="update">The update.</param>
 public UpdateRequest(IMongoQuery query, IMongoUpdate update)
     : base(WriteRequestType.Update)
 {
     _query = query;
     _update = update;
 }