コード例 #1
0
ファイル: LunchController.cs プロジェクト: Mncwango/canteen
        public ActionResult CreateMenu(LunchMenu menuObj)
        {
            LunchMenuModel model = null;
            if (ModelState.IsValid)
            {
                try
                {
                    if (menuObj.ImagePath != null)
                    {
                        string fileName = Saveimage(menuObj);
                        model = new LunchMenuModel
                        {
                            DishName = menuObj.DishName,
                            Price = menuObj.Price,
                            ServedAt = menuObj.ServedAt,
                            ImagePath = fileName
                        };

                    }
                    using (MongoContext<LunchMenuModel> db = new MongoContext<LunchMenuModel>("LunchMenu"))
                    {
                        db.context.Insert(model);
                        return RedirectToAction("Index");
                    }
                }
                catch (Exception e)
                {
                    ViewBag.Error = e.Message;
                    return View();
                }
            }
            return View();
        }
コード例 #2
0
ファイル: MongoContextTest.cs プロジェクト: jasona/NoRM
        public void Check_Current_Operations()
        {
            // Not sure how to test this yet.
            var server = new MongoContext();

            var ops = server.GetCurrentOperations();
        }
コード例 #3
0
        protected override void PopulateMetadata(DSPMetadata metadata, MongoContext context)
        {
            foreach (var collectionName in GetCollectionNames(context))
            {
                var collection = context.Database.GetCollection(collectionName);
                var document = collection.FindOne();
                if (document != null)
                {
                    var collectionType = metadata.AddEntityType(collectionName);

                    foreach (var element in document.Elements)
                    {
                        var elementType = GetElementType(context, element);
                        if (element.Name == "_id")
                        {
                            metadata.AddKeyProperty(collectionType, "ID", elementType);
                        }
                        else if (elementType == typeof(BsonDocument))
                        {
                            string referencedCollectionName = GetDocumentCollection(context, element.Value.AsBsonDocument).Name;
                            resourceReferences.Add(new Tuple<ResourceType, string, string>(collectionType, element.Name, referencedCollectionName));
                        }
                        else if (elementType == typeof(BsonArray))
                        {
                            var bsonArray = element.Value.AsBsonArray;
                            if (bsonArray != null && bsonArray.Count > 0)
                            {
                                string referencedCollectionName = GetDocumentCollection(context, bsonArray[0].AsBsonDocument).Name;
                                resourceSetReferences.Add(new Tuple<ResourceType, string, string>(collectionType, element.Name, referencedCollectionName));
                            }
                        }
                        else
                        {
                            metadata.AddPrimitiveProperty(collectionType, element.Name, elementType);
                        }
                    }
                    metadata.AddResourceSet(collectionName, collectionType);
                }
            }

            foreach (var reference in resourceReferences)
            {
                var referencedResourceSet = metadata.ResourceSets.Where(x => x.Name == reference.Item3).SingleOrDefault();
                if (referencedResourceSet != null)
                {
                    metadata.AddResourceSetReferenceProperty(reference.Item1, reference.Item2, referencedResourceSet);
                }
            }

            foreach (var reference in resourceSetReferences)
            {
                var referencedResourceSet = metadata.ResourceSets.Where(x => x.Name == reference.Item3).SingleOrDefault();
                if (referencedResourceSet != null)
                {
                    metadata.AddResourceSetReferenceProperty(reference.Item1, reference.Item2, referencedResourceSet);
                }
            }
        }
コード例 #4
0
ファイル: MongoContextTest.cs プロジェクト: jasona/NoRM
        public void ConfigureContext()
        {
            //creates connection to the local mongo Db install on the default port.
            this._context = new MongoContext();

            //create two databases.
            this._db1 = this._context.GetDatabase("Test1");
            this._db2 = this._context.GetDatabase("Test2");
        }
コード例 #5
0
        internal UniformConfigurator RegisterMongoUniform(IContainer container)
        {
            var appSettings = container.GetInstance<AppSettings>();
            var mongoView = new MongoInstance(appSettings.ViewConnectionString);

            UniformContext uniformContext = new MongoContext(mongoView.GetDatabase(), ViewContextClassMap.GetClassMap());
            container.Configure(config => config.For<UniformContext>().Singleton().Use(uniformContext));

            return this;
        }
コード例 #6
0
        public DSPInMemoryContext CreateContext(DSPMetadata metadata, string connectionString)
        {
            var dspContext = new DSPInMemoryContext();
            using (MongoContext mongoContext = new MongoContext(connectionString))
            {
                PopulateData(dspContext, mongoContext, metadata);
            }

            return dspContext;
        }
コード例 #7
0
ファイル: MongoDatabaseTest.cs プロジェクト: jasona/NoRM
        public void Drop_Collection_Returns_True()
        {
            var context = new MongoContext();
            var db = context.GetDatabase("test");
            var collName = "testInsertCollection";
            db.GetCollection<object>(collName).Insert(new { Title = "TestInsert" });

            var results = db.DropCollection(collName);

            Assert.IsTrue((results.OK == 1.0));
        }
コード例 #8
0
        public DSPMetadata CreateMetadata()
        {
            var metadata = new DSPMetadata("MongoContext", "Northwind");

            using (MongoContext context = new MongoContext(ConfigurationManager.ConnectionStrings["NorthwindContext.MongoDB"].ConnectionString))
            {
                PopulateMetadata(metadata, context);
            }

            return metadata;
        }
コード例 #9
0
ファイル: MongoDatabaseTest.cs プロジェクト: jasona/NoRM
        public void Set_Profiling_Level()
        {
            var db = new MongoContext().GetDatabase("test");

            var response = db.SetProfileLevel(NoRM.Protocol.SystemMessages.ProfileLevel.AllOperations);

            Assert.IsTrue((response.Was == 0.0));

            response = db.SetProfileLevel(NoRM.Protocol.SystemMessages.ProfileLevel.ProfilingOff);

            Assert.IsTrue((response.Was == 2.0));
        }
コード例 #10
0
 private MongoCollection<BsonDocument> GetDocumentCollection(MongoContext context, BsonDocument document)
 {
     var id = (ObjectId)document["_id"];
     foreach (var collectionName in GetCollectionNames(context))
     {
         var collection = context.Database.GetCollection(collectionName);
         if (collection.FindOne(Query.EQ("_id", BsonValue.Create(id))) != null)
         {
             return collection;
         }
     }
     return null;
 }
コード例 #11
0
 private void PopulateData(DSPInMemoryContext dspContext, MongoContext mongoContext, DSPMetadata metadata)
 {
     foreach (var resourceSet in metadata.ResourceSets)
     {
         var storage = dspContext.GetResourceSetStorage(resourceSet.Name);
         var collection = mongoContext.Database.GetCollection(resourceSet.Name);
         foreach (var document in collection.FindAll())
         {
             var resource = MongoDSPConverter.CreateDSPResource(document, metadata, resourceSet.Name);
             storage.Add(resource);
         }
     }
 }
コード例 #12
0
        protected override void PopulateMetadata(DSPMetadata metadata, MongoContext context)
        {
            var itemsType = new ResourceType(typeof(Dictionary<string, object>),
                ResourceTypeKind.ComplexType, null, "Northwind", "Items", false);

            foreach (var collectionName in GetCollectionNames(context))
            {
                var collectionType = metadata.AddEntityType(collectionName);
                metadata.AddKeyProperty(collectionType, "Id", typeof(string));
                metadata.AddComplexProperty(collectionType, "Items", itemsType);
                metadata.AddResourceSet(collectionName, collectionType);
            }
        }
コード例 #13
0
ファイル: MongoDatabaseTest.cs プロジェクト: jasona/NoRM
        public void Get_Profiling_Information()
        {
            var server = new MongoContext();

            var db = server.GetDatabase("test");

            var results = db.GetProfilingInformation();

            foreach (var profile in results)
            {
                Console.WriteLine(profile.Info);
            }
            Assert.IsTrue((results.Count<ProfilingInformationResponse>() > 0));
        }
コード例 #14
0
ファイル: MongoCollectionTest.cs プロジェクト: jasona/NoRM
        public void Distinct_For_Key_Returns_Correct_Set()
        {
            var server = new MongoContext();
            var testDB = server.GetDatabase("test");
            testDB.DropCollection("testObjects");
            var testColl = testDB.GetCollection<Object>("testObjects");
            var cache = new List<Object>();
            for (var i = 0; i < 10; i++)
            {
                cache.Add(new Object());
            }

            testColl.Insert(cache);

            Assert.AreEqual(cache.Count, testColl.Distinct<OID>("_id").Count());
        }
コード例 #15
0
ファイル: LunchController.cs プロジェクト: Mncwango/canteen
        /// <summary>
        /// Loads the list of the menu Items
        /// </summary>
        /// <returns></returns>
        /// <remarks>Celimpilo Mncwango</remarks>
        public ActionResult Index()
        {
            using (MongoContext<LunchMenuModel> db = new MongoContext<LunchMenuModel>("LunchMenu"))
            {
                try
                {
                    List<LunchMenuModel> menu = db.context.FindAll().ToList<LunchMenuModel>();
                    return View(menu);
                }
                catch (Exception e)
                {
                    ViewBag.Error = e.Message;
                    return RedirectToAction("Index");
                }
            }

        }
コード例 #16
0
ファイル: TaskService.cs プロジェクト: apxnowhere/Encore
        public void Start()
        {
            log.Info("Start requested");

            try
            {
                repositoryContext = new MongoContext(ConfigurationManager.AppSettings["ConnectionString"], "Encore");
                repositoryContext.TryConnect();

                poolPartyClient = new PoolPartyClient(
                    ConfigurationManager.AppSettings["PoolParty.EncoreUrl"],
                    ConfigurationManager.AppSettings["PoolParty.UserName"],
                    ConfigurationManager.AppSettings["PoolParty.Password"]);

                var container = new TinyIoCContainer();
                ConfigureContainer(container);

                ISchedulerFactory schedulerFactory = new StdSchedulerFactory();
                scheduler = schedulerFactory.GetScheduler();

                scheduler.JobFactory = new ServiceJobFactory(container);
                scheduler.ListenerManager.AddJobListener(new LoggingJobListener(), GroupMatcher<JobKey>.AnyGroup());

                scheduler.BuildJob<ProcessReportsJob>().
                    WithRepeatingTrigger(int.Parse(ConfigurationManager.AppSettings["Report.PollIntervalMs"]));

                scheduler.BuildJob<SyncSummaryDataJob>().
                    WithDailyTrigger(TimeOfDay.HourAndMinuteOfDay(0, 0));

                scheduler.BuildJob<CleanUpResultsJob>().
                    UsingJobData("DeleteAfterDays", int.Parse(ConfigurationManager.AppSettings["Report.DeleteAfterDays"])).
                    WithDailyTrigger(TimeOfDay.HourAndMinuteOfDay(1, 0));

                scheduler.BuildJob<SyncSiteAndFieldData>().
                    WithDailyTrigger(TimeOfDay.HourAndMinuteOfDay(2, 0));

                scheduler.Start();
            }
            catch (Exception ex)
            {
                log.Error(ex);
                throw;
            }
        }
コード例 #17
0
        public DSPContext CreateContext(DSPMetadata metadata)
        {
            if (cachedContext == null)
            {
                lock (this)
                {
                    var dspContext = new DSPContext();
                    using (MongoContext mongoContext = new MongoContext(ConfigurationManager.ConnectionStrings["NorthwindContext.MongoDB"].ConnectionString))
                    {
                        foreach (var resourceSet in metadata.ResourceSets)
                        {
                            var entities = dspContext.GetResourceSetEntities(resourceSet.Name);
                            foreach (var bsonDocument in mongoContext.Database.GetCollection(resourceSet.Name).FindAll())
                            {
                                var resource = CreateDSPResource(resourceSet.ResourceType, bsonDocument);
                                entities.Add(resource);
                            }
                        }
                    }

                    foreach (var reference in resourceReferences)
                    {
                        resourceMap[reference.Item1].SetValue(reference.Item2, resourceMap[reference.Item3]);
                    }

                    foreach (var reference in resourceSetReferences)
                    {
                        var referencedCollection = new List<DSPResource>();
                        resourceMap[reference.Item1].SetValue(reference.Item2, referencedCollection);
                        foreach (var objectId in reference.Item3)
                        {
                            referencedCollection.Add(resourceMap[objectId]);
                        }
                    }

                    cachedContext = dspContext;
                }
            }
            return cachedContext;
        }
コード例 #18
0
ファイル: MongoContextTest.cs プロジェクト: baozkan/Tiktak
        public void RepositoryDeleteTest()
        {
            var target = new MongoContext();
            var repository = new MongoRepository<Employee>(target);
            Employee employee = null;

            Yekzen.QualityTools.UnitTest.ExceptionAssert.InconclusiveWhenThrows<UnreachableException>(() => { employee = InsertInternal(repository); });

            if(string.IsNullOrEmpty(employee.Id))
                Assert.Inconclusive("Insert failed.");

            repository.Delete(p => p.Id == employee.Id);

            employee = repository.Single(p => p.Id == employee.Id);

            Assert.IsNull(employee);
        }
コード例 #19
0
ファイル: LunchController.cs プロジェクト: Mncwango/canteen
        public ActionResult Edit(string Id)
        {
            try
            {
                using (MongoContext<LunchMenuModel> db = new MongoContext<LunchMenuModel>("LunchMenu"))
                {
                    var menu = db.context.FindOneById(new ObjectId(Id));
                    return View(menu);
                }
            }
            catch (Exception e)
            {
                ViewBag.Error = e.Message;
                return RedirectToAction("Index");

            }
        }
コード例 #20
0
 public AccountReadOnlyRepository(MongoContext mongoContext)
 {
     _mongoContext = mongoContext;
 }
コード例 #21
0
ファイル: LunchController.cs プロジェクト: Mncwango/canteen
        private string GetPreviosImageName(string id)
        {
            try
            {
                using (MongoContext<LunchMenuModel> db = new MongoContext<LunchMenuModel>("LunchMenu"))
                {
                    var menu = db.context.FindOneById(new ObjectId(id));
                    return menu.ImagePath;
                }
            }
            catch (Exception)
            {

                return string.Empty;
            }
        }
コード例 #22
0
ファイル: LunchController.cs プロジェクト: Mncwango/canteen
 public ActionResult DeleteConfirmed(string Id)
 {
     using (MongoContext<LunchMenuModel> db = new MongoContext<LunchMenuModel>("LunchMenu"))
     {
         try
         {
             var rental = db.context.Remove(Query.EQ("_id", new ObjectId(Id)));
             return RedirectToAction("Index");
         }
         catch (Exception e)
         {
             ViewBag.Error = e.Message;
             return RedirectToAction("Index");
         }
     }
 }
コード例 #23
0
ファイル: LunchController.cs プロジェクト: Mncwango/canteen
        public ActionResult Edit(LunchMenuModel menu)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    menu.ImagePath = GetPreviosImageName(menu.Id);


                    using (MongoContext<LunchMenuModel> db = new MongoContext<LunchMenuModel>("LunchMenu"))
                    {
                        db.context.Save(menu);
                        return RedirectToAction("Index");

                    }
                }
                catch (Exception e)
                {
                    ViewBag.Error = e.Message;
                    return RedirectToAction("Index");
                }
            }
            return View();
        }
コード例 #24
0
ファイル: MongoContextTest.cs プロジェクト: baozkan/Tiktak
        private static MongoContext CreateTarget()
        {
            MongoContext context = null;

            // Check if MongoDB is alive.
            Yekzen.QualityTools.UnitTest.ExceptionAssert.InconclusiveWhenThrows<UnreachableException>(() => { context = new MongoContext(); });

            return context;
        }
コード例 #25
0
 public PedestrianLog_CM(MongoContext context)
 {
     _context = context;
 }
コード例 #26
0
 public CreateUser(MongoContext context) : base(context)
 {
 }
コード例 #27
0
 protected IEnumerable<string> GetCollectionNames(MongoContext mongoContext)
 {
     return mongoContext.Database.GetCollectionNames().Where(x => !x.StartsWith("system."));
 }
コード例 #28
0
ファイル: MongoContextTest.cs プロジェクト: baozkan/Tiktak
        public void CreateRepositoryTest()
        {
            var target = new MongoContext();
            var repository = new MongoRepository<Employee>(target);

            Assert.IsNotNull(repository);
        }
コード例 #29
0
ファイル: MongoContextTest.cs プロジェクト: jasona/NoRM
        public void Check_Invalid_Server()
        {
            var context = new MongoContext("localhost", 11111, false);

               // Assert.Throws(typeof(SocketException), delegate { context.Connect(); });
        }
コード例 #30
0
 public EmployeeDb(MongoContext dbcontext) : base(dbcontext)
 {
 }
コード例 #31
0
 protected abstract void PopulateMetadata(DSPMetadata metadata, MongoContext context);
コード例 #32
0
ファイル: MongoContextTest.cs プロジェクト: baozkan/Tiktak
        public void RepositoryUpdateTest()
        {
            var target = new MongoContext();
            var repository = new MongoRepository<Employee>(target);
            var expected = "Albert2";
            Employee employee = null;
            Yekzen.QualityTools.UnitTest.ExceptionAssert.InconclusiveWhenThrows<UnreachableException>(() => { employee = InsertInternal(repository); });

            employee.FirstName = expected;

            repository.Update(p => p.Id == employee.Id,employee);

            Yekzen.QualityTools.UnitTest.ExceptionAssert.InconclusiveWhenThrows<UnreachableException>(() => { employee = repository.Single(p => p.Id == employee.Id); });

            var actual = employee.FirstName;

            Assert.AreEqual(expected, actual);
        }
コード例 #33
0
ファイル: MongoContextTest.cs プロジェクト: baozkan/Tiktak
        public void RepositoryFindAllTest()
        {
            var target = new MongoContext();
            var repository = new MongoRepository<Employee>(target);

            var collection = repository.Find();

            Assert.IsTrue(collection.Count > 0);
        }
コード例 #34
0
 public AlbumRepository(MongoContext context)
 {
     _context = context;
 }
コード例 #35
0
ファイル: MongoContextTest.cs プロジェクト: baozkan/Tiktak
        public void RepositoryInsertTest()
        {
            var target = new MongoContext();
            var repository = new MongoRepository<Employee>(target);

            var document = InsertInternal(repository);

            Assert.IsFalse(string.IsNullOrEmpty(document.Id));
        }
コード例 #36
0
 public TodoRepository(MongoContext context) : base(context)
 {
 }