public static void Insert(MongoCollection<Commodity> collection, Commodity commodity) { try { collection.CreateIndex(IndexKeys<Commodity>.Descending(c => c.Date)); var result = (from c in collection.AsQueryable<Commodity>() where c.Date == commodity.Date select c) .Count(); if (result == 0) collection.Insert(commodity); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } }
static void Main(string[] args) { // Get info WebClient webClient = new WebClient(); webString = webClient.DownloadString(url); if (string.IsNullOrEmpty(webString) == true) { Console.WriteLine("error : webString is empty"); return; } // Open DB BsonClassMap.RegisterClassMap<Commodity>(); var client = new MongoClient(connectionString); var server = client.GetServer(); var database = server.GetDatabase("Commodities"); #region Crude Oil Commodity CrudeOil = new Commodity(); CrudeOil.Date = DateTime.Now.Date; CrudeOil.Price = GetPrice("Crude Oil"); var collection = database.GetCollection<Commodity>("CrudeOil"); Insert(collection, CrudeOil); #endregion #region Natural Gas Commodity NaturalGas = new Commodity(); NaturalGas.Date = DateTime.Now.Date; NaturalGas.Price = GetPrice("Natural Gas"); collection = database.GetCollection<Commodity>("NaturalGas"); Insert(collection, NaturalGas); #endregion #region Gasoline Commodity Gasoline = new Commodity(); Gasoline.Date = DateTime.Now.Date; Gasoline.Price = GetPrice("Gasoline"); collection = database.GetCollection<Commodity>("Gasoline"); Insert(collection, Gasoline); #endregion #region Heating Oil Commodity HeatingOil = new Commodity(); HeatingOil.Date = DateTime.Now.Date; HeatingOil.Price = GetPrice("Heating Oil"); collection = database.GetCollection<Commodity>("HeatingOil"); Insert(collection, HeatingOil); #endregion #region Gold Commodity Gold = new Commodity(); Gold.Date = DateTime.Now.Date; Gold.Price = GetPrice("Gold"); collection = database.GetCollection<Commodity>("Gold"); Insert(collection, Gold); #endregion #region Silver Commodity Silver = new Commodity(); Silver.Date = DateTime.Now.Date; Silver.Price = GetPrice("Silver"); collection = database.GetCollection<Commodity>("Silver"); Insert(collection, Silver); #endregion #region Copper Commodity Copper = new Commodity(); Copper.Date = DateTime.Now.Date; Copper.Price = GetPrice("Copper"); collection = database.GetCollection<Commodity>("Copper"); Insert(collection, Copper); #endregion Console.WriteLine("done"); }