public IEnumerable <Prediction> GetDailyPredictions(int stationId, DateTime date)
        {
            var server = MongoServer.Create(Settings.TidesMongoConnection);

            server.Connect();

            var collection  = server[DatabaseNames.Tides][TidesCollectionNames.GetPredictionCollectionName(date.Year)];
            var query       = new QueryDocument();
            var predictions = collection.FindAs <Prediction>(Query.And(Query.EQ("StationId", stationId), Query.GTE("TimeStamp", date.Date /*.ToUniversalTime()*/).LT(date.Date.AddDays(1) /*.ToUniversalTime()*/))).ToList();

            server.Disconnect();

            return(predictions);
        }
        public void DeleteAllPredictions(int year)
        {
            var server = MongoServer.Create(Settings.TidesMongoConnection);

            server.Connect();

            var db = server[DatabaseNames.Tides];

            if (db.CollectionExists(TidesCollectionNames.GetPredictionCollectionName(year)))
            {
                db.DropCollection(TidesCollectionNames.GetPredictionCollectionName(year));
            }

            server.Disconnect();
        }
        public void CreatePredictions(int stationId, int year, IEnumerable <Prediction> predictions)
        {
            var server = MongoServer.Create(Settings.TidesMongoConnection);

            server.Connect();

            var db = server[DatabaseNames.Tides];

            var collection = db[TidesCollectionNames.GetPredictionCollectionName(year)];

            collection.EnsureIndex(IndexKeys.Ascending("StationId"));

            collection.InsertBatch <Prediction>(predictions);

            server.Disconnect();
        }