Facebook
From Reliable Earthworm, 3 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 128
  1. using MongoDB.Bson;
  2. using MongoDB.Driver;
  3. using System.Collections.Generic;
  4. using MongoDB.Bson.Serialization;
  5. using MongoToSql.Models;
  6. using System.Linq.Expressions;
  7. using System;
  8.  
  9. namespace MongoToSql.Repository
  10. {
  11.     public class WindsRepository
  12.     {
  13.         protected static IMongoClient _client;
  14.         protected static IMongoDatabase _database;
  15.         protected IMongoCollection<WindsModel> _collection;
  16.  
  17.         public WindsRepository()
  18.         {
  19.             _client = new MongoClient("mongodb://localhost:27017/");
  20.             _database = _client.GetDatabase("Homework");
  21.             _collection = _database.GetCollection<WindsModel>("WindData");
  22.         }
  23.  
  24.         public WindsModel InsertPost(WindsModel contact)
  25.         {
  26.             this._collection.InsertOneAsync(contact);
  27.             return this.Get(contact._id.ToString());
  28.         }
  29.  
  30.         public List<WindsModel> SelectAll()
  31.         {
  32.             var query = this._collection.Find(new BsonDocument()).ToListAsync();
  33.             return query.Result;
  34.         }
  35.  
  36.         public List<WindsModel> Filter(string jsonQuery)
  37.         {
  38.             var queryDoc = new QueryDocument(BsonSerializer.Deserialize<BsonDocument>(jsonQuery));
  39.             return _collection.Find<WindsModel>(queryDoc).ToList();
  40.         }
  41.  
  42.         public WindsModel Get(string id)
  43.         {
  44.             return this._collection.Find(new BsonDocument { { "_id", new ObjectId(id) } }).FirstAsync().Result;
  45.         }
  46.         public WindsModel UpdatePost(string id, WindsModel windsmodel)
  47.         {
  48.             windsmodel._id = new ObjectId(id);
  49.  
  50.             var filter = Builders<WindsModel>.Filter.Eq(s => s._id, windsmodel._id);
  51.             this._collection.ReplaceOneAsync(filter, windsmodel);
  52.             return this.Get(id);
  53.         }
  54.  
  55.         public List<WindsModel> Query(Expression<Func<WindsModel, bool>> expression)
  56.         {
  57.             return _collection.Find(expression).ToList();
  58.         }
  59.     }
  60. }