Пример #1
0
        public void FetchDBRefTest()
        {
            const string collectionName = "testDBRef";

            var collection = Database.GetCollection(collectionName);
            var document   = new BsonDocument
            {
                { "_id", ObjectId.GenerateNewId() },
                { "P", "x" }
            };

            collection.Insert(document);

            var dbRef   = new MongoDBRef(collectionName, document["_id"].AsObjectId);
            var fetched = Database.FetchDBRef(dbRef);

            Assert.AreEqual(document, fetched);
            Assert.AreEqual(document.ToJson(), fetched.ToJson());

            var dbRefWithDatabaseName = new MongoDBRef(Database.Name, collectionName, document["_id"].AsObjectId);

            fetched = Server.FetchDBRef(dbRefWithDatabaseName);
            Assert.AreEqual(document, fetched);
            Assert.AreEqual(document.ToJson(), fetched.ToJson());
            Assert.Throws <ArgumentException>(() => Server.FetchDBRef(dbRef));
        }
Пример #2
0
        private void Serialize(BsonSerializationContext context, BsonSerializationArgs args, TClass value)
        {
            CheckItemMap();
            var writer = context.Writer;
            var list   = value as IEnumerable;

            if (list == null)
            {
                writer.WriteNull();
            }
            else
            {
                writer.WriteStartArray();
                foreach (var i in list)
                {
                    if (i == null)
                    {
                        BsonSerializer.Serialize(writer, (object)null);
                    }
                    else
                    {
                        var mref = new MongoDBRef(ClassMappingExtensions.GetCollectionForType(itemType), BsonValue.Create(itemIdMap.Getter.Invoke(i)));
                        BsonSerializer.Serialize(writer, mref);
                    }
                }
                writer.WriteEndArray();
            }
        }
Пример #3
0
        public void TestEqualsWithoutDatabase()
        {
            var a1    = new MongoDBRef("c", 1);
            var a2    = new MongoDBRef("c", 1);
            var a3    = a2;
            var b     = new MongoDBRef("x", 1);
            var c     = new MongoDBRef("c", 2);
            var null1 = (MongoDBRef)null;
            var null2 = (MongoDBRef)null;

            Assert.AreNotSame(a1, a2);
            Assert.AreSame(a2, a3);
            Assert.IsTrue(a1.Equals((object)a2));
            Assert.IsFalse(a1.Equals((object)null));
            Assert.IsFalse(a1.Equals((object)"x"));

            Assert.IsTrue(a1 == a2);
            Assert.IsTrue(a2 == a3);
            Assert.IsFalse(a1 == b);
            Assert.IsFalse(a1 == c);
            Assert.IsFalse(a1 == null1);
            Assert.IsFalse(null1 == a1);
            Assert.IsTrue(null1 == null2);

            Assert.IsFalse(a1 != a2);
            Assert.IsFalse(a2 != a3);
            Assert.IsTrue(a1 != b);
            Assert.IsTrue(a1 != c);
            Assert.IsTrue(a1 != null1);
            Assert.IsTrue(null1 != a1);
            Assert.IsFalse(null1 != null2);

            Assert.AreEqual(a1.GetHashCode(), a2.GetHashCode());
        }
        public static void RemoveRide(ObjectId rideId)
        {
            var connectionString = "mongodb://localhost/?safe=true";
            var server           = MongoServer.Create(connectionString);
            var db = server.GetDatabase("TransportSystem");

            var collectionRide    = db.GetCollection <Ride>("Ride");
            var collectionRoute   = db.GetCollection <Route>("Route");
            var collectionVehical = db.GetCollection <Vehical>("Vehical");

            MongoDBRef RideRef = new MongoDBRef("Ride", rideId);

            //var query = Query.EQ("Ride", RideRef.ToBsonDocument());
            //var update = MongoDB.Driver.Builders.Update.Set("Ride","");

            //collectionVehical.Update(query, update);

            var Vehical = (from v in collectionVehical.AsQueryable <Vehical>() where v.Ride == RideRef select v).ToList();

            foreach (var v in Vehical)
            {
                v.Ride = null;
                collectionVehical.Save(v);
            }

            var Routs = (from r in collectionRoute.AsQueryable <Route>() where r.Rides.Contains(RideRef) select r).ToList();

            foreach (var r in Routs)
            {
                r.Rides.Remove(RideRef);
                collectionRoute.Save(r);
            }

            collectionRide.Remove(Query.EQ("_id", rideId));
        }
Пример #5
0
        private void btnDelete_Click(object sender, EventArgs e)
        {
            if (!Provera.chkIfSelected(dataGridViewTabela))
            {
                return;
            }

            var connectionString = "mongodb://localhost/?safe=true";
            var server           = MongoServer.Create(connectionString);
            var db = server.GetDatabase("fudbal");

            var kluboviColl = db.GetCollection <Klub>("klubovi");
            var ligeColl    = db.GetCollection <Liga>("lige");

            Klub k = dataGridViewTabela.CurrentRow.DataBoundItem as Klub;

            if (k.Igraci.Count > 0 || k.Utakmice.Count > 0)
            {
                MessageBox.Show("Ne moze da se obrise klub koji sadrzi igrace i/ili utakmice");
                return;
            }
            else
            {
                MongoDBRef kref = new MongoDBRef("klubovi", k.Id);
                L.Klubovi.Remove(kref);
                ligeColl.Save(L);

                kluboviColl.Remove(Query.EQ("_id", k.Id));
                MessageBox.Show("Klub je obrisan");
                UcitajDGVTabela();
            }
        }
        public static List <RideView> GetRides(ObjectId StationId)
        {
            var connectionString = "mongodb://localhost/?safe=true";
            var server           = MongoServer.Create(connectionString);
            var db = server.GetDatabase("TransportSystem");


            var collectionRoute   = db.GetCollection <Route>("Route");
            var collectionStation = db.GetCollection <Station>("Station");
            var collectionRide    = db.GetCollection <Ride>("Ride");
            var collectionVehical = db.GetCollection <Vehical>("Vehical");


            MongoDBRef Stat = new MongoDBRef("Station", StationId);

            var Rides = collectionRide.AsQueryable <Ride>().Where(p => p.CurrentStation == Stat).Select(r => new RideView()
            {
                Id             = r.Id,
                EndTime        = r.EndTime,
                Late           = r.Late,
                DynamicFields  = r.DynamicFields,
                Rout           = r.Rout != null ? db.FetchDBRefAs <Route>(r.Rout) : null,
                StartTime      = r.StartTime,
                Vehical        = r.Vehical != null ? db.FetchDBRefAs <Vehical>(r.Vehical) : null,
                CurrentStation = r.CurrentStation != null ? db.FetchDBRefAs <Station>(r.CurrentStation) : null,
            }).ToList();

            return(Rides);
        }
Пример #7
0
 public Merenje(MongoDBRef a, MongoDBRef b, MongoDBRef c)
 {
     this.temperatura     = a;
     this.vlaznostVazduha = b;
     this.padavine        = c;
     this.log             = DateTime.Now;
 }
Пример #8
0
        public void SendMsg <T>(ObjectId recv, string msg, MongoDBRef file = null) where T : Member
        {
            Type    t    = this.GetType();
            Message nMsg = new Message();

            nMsg.TimeCreated = DateTime.Now;
            nMsg.Content     = msg;
            nMsg.Sender      = new MongoDBRef(t.ToString().ToLower(), this.Id);
            nMsg.Reciver     = new MongoDBRef(typeof(T).Name.ToLower(), recv);
            if (file != null)
            {
                nMsg.File = file;
            }
            this.userInbox.Sent.Insert(0, nMsg);


            var senderCollection = this.GetCollection();

            senderCollection.Save(this);


            var    recvCollection = mongoDB.GetCollection <T>();
            Member reciver        = recvCollection.FindOneById(recv);

            reciver.userInbox.Recived.Insert(0, nMsg);
            recvCollection.Save(reciver);
        }
Пример #9
0
        private void button3_Click(object sender, EventArgs e)
        {
            var connectionString = "mongodb://localhost/?safe=true";
            var server           = MongoServer.Create(connectionString);
            var db = server.GetDatabase("CookingBook");
            var kuvariCollection = db.GetCollection <Kuvar>("kuvari");

            var      collection = db.GetCollection <Recepts>("Recepts");
            ObjectId objectId   = new ObjectId(Id);
            var      query      = Query.And(
                (Query.EQ("_id", objectId))

                );

            collection.Remove(query);
            var query2 = Query.And(
                (Query.EQ("ID_Kartice", kuvar.ID_Kartice)),
                Query.EQ("sifra", kuvar.sifra)
                );
            var sad = kuvariCollection.Find(query2);

            if (sad.Count() == 1)
            {
                foreach (Kuvar r in sad)
                {
                    MongoDBRef referenca = new MongoDBRef("Recepts", new ObjectId(this.Id));
                    r.Recepts.Remove(referenca);

                    kuvariCollection.Save(r);
                }
            }
            this.Close();
        }
Пример #10
0
 public ReviewControl(Member sender, Member reciver, MongoDBRef file = null)
 {
     User    = sender;
     Reciver = reciver;
     File    = file;
     InitializeComponent();
     initMsgWriteMode();
 }
        public ActionResult HireInstructor(string id)
        {
            ObjectId i = ObjectId.Parse(id);

            Korisnici.PromeniInstruktora((ObjectId)Session["Id"], i);
            Session["Instruktor"] = new MongoDBRef("korisnici", i);
            return(View("~/Views/ListaInstruktora/ListaFitnessInstruktora.cshtml", new ListaInstruktoraModel()));
        }
Пример #12
0
        public static T FetchDbRef <T>(this IMongoDatabase db, MongoDBRef dbRef) where T : Entity
        {
            var filter = Builders <T> .Filter.Eq(x => x.Id, dbRef.Id);

            var collection = db.GetCollection <T>(dbRef.CollectionName);

            return(collection.Find(filter).FirstOrDefault());
        }
 public static T Instance <T>(this MongoDBRef instance) where T : IEntity
 {
     if (instance == null || null == instance.Id || string.IsNullOrEmpty(instance.CollectionName))
     {
         return(default(T));
     }
     return(EntityOperationExtensions.DBFind <T>(instance.Id.ToString()));
 }
        /// <summary>
        /// 加载引用对象
        /// </summary>
        /// <param name="dbRef">引用对象</param>
        /// <typeparam name="T">引用对象类型</typeparam>
        /// <returns>返回加载的引用对象</returns>
        public T LoadRef <T>(MongoDBRef dbRef) where T : IDocumentEntity, new()
        {
            if (dbRef == null)
            {
                return(default(T));
            }

            return(Excute(() => DataBase.FetchDBRefAs <T>(dbRef)));
        }
Пример #15
0
        public IList <ChatRoom> GetMyChatRoom(MongoDBRef userRef)
        {
            var builder        = new FilterDefinitionBuilder <ChatRoom>();
            var filterSender   = builder.Eq("User1", userRef);
            var filterReceiver = builder.Eq("User2", userRef);
            var list           = chatRoomDao.Find.WhenMatch(filterSender | filterReceiver);

            return(list);
        }
 public Padavine(double min, double max, double vrednost, MongoDBRef odgovorni)
 {
     this.DonjaGranica       = min;
     this.GornjaGranica      = max;
     this.Vrednost           = vrednost;
     this.Jedinica           = "l/m2";
     this.Odgovorni          = odgovorni;
     this.VremeEvidentiranja = DateTime.Now;
 }
        /// <summary>
        /// 加载引用对象
        /// </summary>
        /// <param name="dbRef">引用对象</param>
        /// <typeparam name="T">引用对象类型</typeparam>
        /// <returns>返回加载的引用对象</returns>
        public T LoadRef <T>(MongoDBRef dbRef) where T : IDocumentEntity, new()
        {
            if (dbRef == null)
            {
                return(default(T));
            }

            return(Excute(() => DataBase.Client.GetDatabase(dbRef.DatabaseName).GetCollection <T>(dbRef.CollectionName).Find(p => p.Id == dbRef.Id)).FirstOrDefault());
        }
 public VlaznostVazduha(double min, double max, double vrednost, MongoDBRef odgovorni)
 {
     this.DonjaGranica       = min;
     this.GornjaGranica      = max;
     this.Vrednost           = vrednost;
     this.Jedinica           = "mm Hg";
     this.Odgovorni          = odgovorni;
     this.VremeEvidentiranja = DateTime.Now;
 }
Пример #19
0
 public Zaposleni(String ime, String prezime, String username, String password, String jmbg, String zvanje, MongoDBRef stanica)
 {
     this.Ime              = ime;
     this.Prezime          = prezime;
     this.Username         = username;
     this.Password         = password;
     this.Jmbg             = jmbg;
     this.Zvanje           = zvanje;
     this.VremenskaStanica = stanica;
 }
Пример #20
0
        public Cart(ObjectId customerId, ObjectId[] itemIds, ObjectId?id = null)
        {
            if (id.HasValue)
            {
                Id = id.Value;
            }

            Customer = new MongoDBRef("Customer", customerId);
            Items    = itemIds.Select(itemId => new MongoDBRef("Item", itemId)).ToArray();
        }
Пример #21
0
        private void btnDeleteU_Click(object sender, EventArgs e)
        {
            if (!Provera.chkIfSelected(dataGridViewUtakmice))
            {
                return;
            }

            var query            = Query.Null;
            var connectionString = "mongodb://localhost/?safe=true";
            var server           = MongoServer.Create(connectionString);
            var db = server.GetDatabase("fudbal");

            var utakmiceColl  = db.GetCollection <Utakmica>("utakmice");
            var dogadjajiColl = db.GetCollection <Dogadjaj>("dogadjaji");
            var ligeColl      = db.GetCollection <Liga>("lige");
            var kluboviColl   = db.GetCollection <Klub>("klubovi");

            //pribavljanje utakmice
            ObjectId objid = (ObjectId)dataGridViewUtakmice.CurrentRow.Tag;

            query = Query.EQ("_id", objid);
            Utakmica u = utakmiceColl.Find(query).Single();

            //pribavljanje lige i brisanje utakmice iz liste
            query = Query.EQ("_id", u.Liga.Id);
            Liga       lg          = ligeColl.Find(query).Single();
            MongoDBRef utakmicaRef = new MongoDBRef("utakmice", objid);

            lg.Utakmice.Remove(utakmicaRef);
            ligeColl.Save(lg);

            //pribavljanje kluba i brisanje utakmice iz liste
            query = Query.EQ("_id", u.Klub1.Id);
            Klub k1 = kluboviColl.Find(query).Single();

            query = Query.EQ("_id", u.Klub2.Id);
            Klub k2 = kluboviColl.Find(query).Single();

            k1.Utakmice.Remove(utakmicaRef);
            k2.Utakmice.Remove(utakmicaRef);
            kluboviColl.Save(k1);
            kluboviColl.Save(k2);

            //brisanje dogadjaja
            foreach (MongoDBRef d in u.Dogadjaji)
            {
                query = Query.EQ("_id", d.Id);
                dogadjajiColl.Remove(query);
            }

            //brisanje utakmica
            query = Query.EQ("_id", objid);
            utakmiceColl.Remove(query);
            UcitajDGVUtakmice();
        }
Пример #22
0
        public static List <Vehical> GetAllVehical(ObjectId TransportId)
        {
            var connectionString = "mongodb://localhost/?safe=true";
            var server           = MongoServer.Create(connectionString);
            var db = server.GetDatabase("TransportSystem");

            MongoDBRef Transp            = new MongoDBRef("Transport", TransportId);
            var        collectionVehical = db.GetCollection <Vehical>("Vehical");

            return((from v in collectionVehical.AsQueryable <Vehical>() where v.Transport == Transp select v).ToList());
        }
Пример #23
0
        public List <Proizvod> VratiSveProizvode(string IdKategorije)
        {
            var db = SessionManager.GetMongoDB();

            _proizvodi = db.GetCollection <Proizvod>("Proizvodi");


            var r         = new MongoDBRef("Kategorija", IdKategorije);
            var proizvodi = _proizvodi.Find(p => true && p.Kategorija.Id == r.Id).ToList();

            return(proizvodi);
        }
Пример #24
0
        public Item(string name, int count, double price, ObjectId sellerId, ObjectId?id = null)
        {
            if (id.HasValue)
            {
                Id = id.Value;
            }

            Name   = name;
            Count  = count;
            Price  = price;
            Seller = new MongoDBRef("Seller", sellerId);
        }
Пример #25
0
    public List <PublicInfo> SelectAllPublicInfoForInitiator(string token)
    {
        List <PublicInfo> result = new List <PublicInfo>();
        var initiator            = new MongoDBRef(ACCOUNTS_COLLECTION_NAME, SelectAccount(token, a => a.Token)._id);
        var queryOfAllFollowershipsWithThisInitiator = Query <Followership> .EQ(f => f.Initiator, initiator);

        foreach (var followership in followershippCollection.Find(queryOfAllFollowershipsWithThisInitiator))
        {
            result.Add(SelectAccount(followership.Target.Id.AsObjectId, a => a._id).GetPublicInfo());
        }
        return(result);
    }
Пример #26
0
    public List <Account> SelectAllAccountForTarget(string email)
    {
        List <Account> result = new List <Account>();
        var            target = new MongoDBRef(ACCOUNTS_COLLECTION_NAME, SelectAccount(email, a => a.Email)._id);
        var            queryOfAllFollowershipsWithThisTarget = Query <Followership> .EQ(f => f.Target, target);

        foreach (var followership in followershippCollection.Find(queryOfAllFollowershipsWithThisTarget))
        {
            result.Add(SelectAccount(followership.Initiator.Id.AsObjectId, a => a._id));
        }
        return(result);
    }
Пример #27
0
    private void DeleteFollowerShip(string token, Account account)
    {
        if (account == null)
        {
            return;
        }
        var          Initiator    = new MongoDBRef(ACCOUNTS_COLLECTION_NAME, SelectAccount(token, a => a.Token)._id);
        var          Target       = new MongoDBRef(ACCOUNTS_COLLECTION_NAME, account._id);
        Followership followership = followershippCollection.FindOne(Query.And(Query <Followership> .EQ(f => f.Initiator, Initiator), Query <Followership> .EQ(f => f.Target, Target)));

        followershippCollection.Remove(Query <Followership> .EQ(f => f._id, followership._id));
    }
Пример #28
0
        public Order(DateTime dateTimeStamp, bool isCompleted, ObjectId customerId, ObjectId[] itemIds, ObjectId?id = null)
        {
            if (id.HasValue)
            {
                Id = id.Value;
            }

            DateTimeStamp = dateTimeStamp;
            IsCompleted   = isCompleted;
            Customer      = new MongoDBRef("Customer", customerId);
            Items         = itemIds.Select(itemId => new MongoDBRef("Item", itemId)).ToArray();
        }
Пример #29
0
        //public StandardResult ParserHolders(string[] holderAccounts)
        //{
        //    if (holderAccounts == null || holderAccounts.Length == 0) return Result(iTripExceptionCode.Error_Null_Reference);
        //    var resp = GetRespository<Holder>();
        //    var holders = resp.Select(h => holderAccounts.Contains(h.Account)).ToList();
        //    if (holders.Count == holderAccounts.Length)
        //        return Result(holders);
        //    List<Holder> hs = new List<Holder>();
        //    holderAccounts.ForEach(delegate(string acc)
        //    {
        //        if (!holders.Any(h => h.Account == acc))
        //            hs.Add(new Holder(acc));
        //    });
        //    resp.Insert(hs);
        //    hs.AddRange(holders);
        //    return Result(hs);
        //}

        public int AttachPackage(string[] holders, MongoDBRef package)
        {
            if (holders == null || holders.Length == 0)
            {
                return(0);
            }
            List <PackageHolding> phs = new List <PackageHolding>();

            holders.ForEach(a => phs.Add(new PackageHolding(a, package.Id.AsString)));
            GetRespository <PackageHolding>().Insert(phs);
            return(phs.Count);
        }
Пример #30
0
 public static T GetObjectFromReference <T>(MongoDBRef reference)
 {
     try
     {
         return(GetCollection <T>(reference.CollectionName).Find(new BsonDocument("_id", reference.Id)).ToCursor().First());
     }
     catch (Exception e)
     {
         Console.WriteLine("Handled error.\n" + e.StackTrace);
         return(default(T));
     }
 }