public void AddInstantMessenger(ObjectId contactId, InstantMessenger instantMessenger)
        {
            instantMessenger.Id = ObjectId.GenerateNewId();
            var query = Query <Contact> .EQ(c => c.Id, contactId);

            var update = Update <Contact> .Push(c => c.InstantMessengers, instantMessenger);

            var result = contacts.Collection.Update(query, update, UpdateFlags.None, WriteConcern.Acknowledged);

            if (result.Ok == false)
            {
                throw new MongoException("Unable to insert object");
            }
        }
        public void UpdateContactInstantMessenger(ObjectId contactId, InstantMessenger instantMessenger)
        {
            var query = Query <Contact> .EQ(c => c.Id, contactId);

            var contact = contacts.Collection.AsQueryable <Contact>().Where(c => c.Id == contactId).First();
            var originalInstantMessenger = contact.InstantMessengers.Where(w => w.Id == instantMessenger.Id).First();
            var index  = contact.InstantMessengers.IndexOf(originalInstantMessenger);
            var update = Update <Contact> .Set(c => c.InstantMessengers[index], instantMessenger);

            var result = contacts.Collection.Update(query, update, UpdateFlags.None, WriteConcern.Acknowledged);

            if (result.DocumentsAffected == 0)
            {
                throw new MongoException("Unable to update object");
            }
        }
Example #3
0
 public static InstantMessengerModel ToModel(this InstantMessenger contact)
 {
     return(Mapper.Map <InstantMessenger, InstantMessengerModel>(contact));
 }