EFB/Mongo/Mongo.cs

30 lines
1.3 KiB
C#

using EFB.Models;
using MongoDB.Driver;
using System;
using System.Threading.Tasks;
namespace EFB.MongoData
{
public class Mongo
{
//function that is responsible to getting the user's latest sim position from the MongoDB
public static async Task<SimPositionModel> GetLatestData(string email)
{
//Create mongo client to allow connection to the database
MongoClient client = new MongoClient(
Environment.GetEnvironmentVariable("MongoDBConnectionString", EnvironmentVariableTarget.User)
);
MongoDatabaseBase database = (MongoDatabaseBase)client.GetDatabase("EFB");
MongoCollectionBase<SimPositionModel> collection = (MongoCollectionBase<SimPositionModel>)database.GetCollection<SimPositionModel>("Simdata");
//Create filter to select specifically the records where the Email is the same as what we specified
FilterDefinition<SimPositionModel> filter = Builders<SimPositionModel>.Filter.Eq(x => x.EMail, email);
var data = await collection.FindAsync<SimPositionModel>(filter).Result.ToListAsync();
if (data.Count > 0)
{//Return the first item in the list (Should only be 1)
return data[0];
}//Or return null if not present
return null;
}
}
}