예제 #1
0
 //
 // GET: /SC/Question/Details/5
 public ActionResult Details(int id)
 {
     using (var s = new MongoSession())
     {
         return View(s.Query<Question>().Single(q => q.Number == id));
     }
 }
예제 #2
0
        public void TestAddQuestion()
        {
            using (var s = new MongoSession())
            {
                Question q = new Question();
                q.Content = "ContentTest123";
                q.Ask = "Ask";
                q.Number = 100;
                q.Rate = 3;
                q.Source = "GWD";

                s.Add(q);
            }

            using (var s = new MongoSession())
            {
                var q2 = s.Query<Question>().FirstOrDefault(q=> q.Number==100);
                Assert.IsNotNull(q2);
                Assert.AreEqual(q2.Content, "ContentTest123");
            }
            using (var s = new MongoSession())
            {
                s.GetCollection<Question>().Delete(new { Number = 100 });
            }
            using (var s = new MongoSession())
            {
                var q2 = s.Query<Question>().FirstOrDefault(q => q.Number == 100);
                Assert.IsNull(q2);
            }
        }
예제 #3
0
        public void Demonstrate_ComplexPersistance()
        {
            var patient = new Patient {
                FirstName = "John",
                LastName = "Doe",
                DateOfBirth = new DateTime(1980, 1, 1),
                Prescriptions = new List<Prescription> {
                    new Prescription {
                        DatePrescribed = DateTime.Now,
                        Medication = "Asprin",
                        Dosage = "200mg",
                        NumberOfRefils = 1000
                    }
                },
                Visits = new List<ProviderVisit> {
                    new ProviderVisit {
                        DateOfVisit = DateTime.Now,
                        ProviderName = "Townsville Healthcare",
                        ProviderNotes = "Patient is a pain in the arse."
                    }
                }
            };

            var session = new MongoSession();
            session.Save(patient);

            var fetched = session.Query<Patient>()
                .Where(x => x.LastName == "Doe");

            Assert.IsNotNull(fetched.First());
        }
예제 #4
0
        public void Demonstrate_DbReference()
        {
            var session = new MongoSession();

            var supplier = new Supplier { Name = "Acme" };
            session.Save(supplier);

            var product = new Product {
                Name = "Shovel",
                Price = "17.50",
                Sku = "a3k4j22je9",
                Weight = "11",
                Supplier = new DbReference<Supplier>(supplier.Id)
            };
            session.Save(product);

            var fetched = session.Query<Product>().Where(x => x.Sku == product.Sku);

            Assert.AreEqual(fetched.First().Supplier.Id, supplier.Id);

            var fetchedSupplier = fetched.First().Supplier.Fetch(() => session.GetDb());

            Assert.AreEqual(fetchedSupplier.Name, supplier.Name);
        }
예제 #5
0
        public void Demonstrate_TypeDiscrimination()
        {
            var orderA = new Order {
                Quantity = 12,
                Item = new Book {
                    Supplier = "Acme",
                    Author = "James Patterson",
                    Sku = "d9e9fje",
                    Title = "A Tree Grows in Brooklyn"
                }
            };

            var orderB = new Order {
                Quantity = 4,
                Item = new Chair {
                    Supplier = "Acme",
                    Maker = "Target",
                    NumberOfLegs = 3,
                    Sku = "39ejr9r"
                }
            };

            var session = new MongoSession();
            session.Save(orderA);
            session.Save(orderB);

            var fetched = session.Query<Order>().SingleOrDefault(x => x.Id == orderA.Id);

            Assert.IsTrue(fetched.Item is Book);
        }
예제 #6
0
        public void Demonstrate_PropertyAliasing()
        {
            MongoConfiguration.Initialize(x => x.AddMap<ArticleMap>());

            var article = new Article {
                Author = "Mark Twain",
                Body = "Once upon a time...",
                DatePosted = DateTime.Now,
                Title = "A Conneticuit Yankee in King Arthur's Court",
                Comments = new List<Comment> {
                    new Comment { CommentersName = "Me", Body = "Some Message..." }
                }
            };

            var session = new MongoSession();
            session.Save(article);

            var fetched = session.Query<Article>()
                .Where(x => x.Id == article.Id).SingleOrDefault();

            Assert.AreEqual(fetched.Title, article.Title);
        }
예제 #7
0
        public void Demonstrate_MongoIdentifierAttribute()
        {
            var product = new Product {
                Name = "Hammer",
                Price = "11.50",
                Sku = "a3k4j22je9",
                Weight = "4"
            };

            var session = new MongoSession();
            session.Save(product);

            var fetched = session.Query<Product>().Where(x => x.Sku == product.Sku);

            Assert.IsNotNull(fetched.First());
        }
예제 #8
0
 public ActionResult Index2(Paging m)
 {
     using (var s = new MongoSession())
     {
         var q = s.Query<Question>();
         if(m != null)
         {
             q = m.Page(q);
         }
         return View(q);
     }
 }
예제 #9
0
 //
 // GET: /SC/Question/
 public ActionResult Index()
 {
     using (var s = new MongoSession())
     {
         return View(s.Query<Question>());
     }
 }