Mass refactoring for FireLance

This commit is contained in:
2020-07-01 19:33:34 +01:00
parent 46eb41d76d
commit 83b9c8b27c
8 changed files with 70 additions and 44 deletions
+9 -8
View File
@@ -1,5 +1,6 @@
using FireLance.Interfaces;
using FireLance.Model;
using FireLance;
using FireLance.Models;
using Gsm;
using System;
using System.Collections.Generic;
@@ -7,8 +8,8 @@ namespace DevConsole
{
class Program
{
public static GSMParser.DatabaseConnection gsmParser = new GSMParser.DatabaseConnection();
public static FireLance.DatabaseConnection flcParser = new FireLance.DatabaseConnection();
public static GsmDB gsmParser = new GsmDB();
public static FireLanceCRUD fireLanceCRUD = new FireLanceCRUD();
static void Main(string[] args)
{
@@ -122,14 +123,14 @@ namespace DevConsole
{
case ConsoleKey.A:
Console.WriteLine("Connect to database");
flcParser.OpenConnection("sr3", 27017);
fireLanceCRUD.OpenConnection("sr3", 27017);
break;
case ConsoleKey.B:
flcParser.CloseCurrentConnection();
fireLanceCRUD.CloseCurrentConnection();
break;
}
Console.WriteLine($"FireLance Connection State: {flcParser.IsConnectionOpen()}\n");
Console.WriteLine($"FireLance Connection State: {fireLanceCRUD.IsConnectionOpen()}\n");
}
private static void OptionF()
@@ -139,7 +140,7 @@ namespace DevConsole
foreach (var entry in dm)
{
//entry.Path = guid.ToString();
flcParser.InsertRecord("SaveData", entry);
fireLanceCRUD.InsertRecord("SaveData", entry);
}
}
#endregion
@@ -6,40 +6,15 @@ using System.Collections.Generic;
namespace FireLance
{
public class DatabaseConnection : IDatabaseConnection
public class FireLanceCRUD : FireLanceDB, IDatabaseCRUD
{
IMongoDatabase db;
public void CloseCurrentConnection()
{
OpenConnection(string.Empty, 0);
}
public bool IsConnectionOpen()
{
int connectionCnt = 0;
try { connectionCnt = db.Client.ListDatabases().ToList().Count; }
catch {}
return (connectionCnt > 0) ? true : false;
}
public void OpenConnection(string dbLocation, int port)
{
var client = new MongoClient($"mongodb://{dbLocation}:{port}");
var settings = new MongoDatabaseSettings { GuidRepresentation = GuidRepresentation.Standard };
db = client.GetDatabase(dbLocation, settings);
}
public void InsertRecord<T>(string table, T record)
{
var collection = db.GetCollection<T>(table);
collection.InsertOne(record);
}
public void UpsertRecord<T>(string table, Guid id, T record)
public void UpsertRecordById<T>(string table, Guid id, T record)
{
var collection = db.GetCollection<T>(table);
collection.ReplaceOne(
@@ -48,7 +23,7 @@ namespace FireLance
new ReplaceOptions { IsUpsert = true });
}
public List<T> LoadRecords<T>(string table)
public List<T> LoadRecordsFromTable<T>(string table)
{
var collection = db.GetCollection<T>(table);
return collection.Find(new BsonDocument()).ToList();
+34
View File
@@ -0,0 +1,34 @@
using FireLance.Interfaces;
using MongoDB.Bson;
using MongoDB.Driver;
namespace FireLance
{
public abstract class FireLanceDB : IDatabaseConnection
{
internal IMongoDatabase db;
public void CloseCurrentConnection()
{
OpenConnection(string.Empty, 0);
}
public bool IsConnectionOpen()
{
int connectionCnt = 0;
try { connectionCnt = db.Client.ListDatabases().ToList().Count; }
catch {}
return (connectionCnt > 0) ? true : false;
}
public void OpenConnection(string dbLocation, int port)
{
var client = new MongoClient($"mongodb://{dbLocation}:{port}");
var settings = new MongoDatabaseSettings { GuidRepresentation = GuidRepresentation.Standard };
db = client.GetDatabase(dbLocation, settings);
}
}
}
+18
View File
@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
namespace FireLance
{
public interface IDatabaseCRUD
{
public void InsertRecord<T>(string table, T record);
public void UpsertRecordById<T>(string table, Guid id, T record);
public List<T> LoadRecordsFromTable<T>(string table);
public T LoadRecordById<T>(string table, Guid id);
public void DeleteRecordById<T>(string table, Guid id);
}
}
+1 -1
View File
@@ -1,4 +1,4 @@
namespace FireLance.Model
namespace FireLance.Models
{
public class DirectoriesModel
{
+1 -1
View File
@@ -1,4 +1,4 @@
namespace FireLance.Model
namespace FireLance.Models
{
public class GameEntryModel
{
+1 -3
View File
@@ -1,7 +1,5 @@
using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;
using MongoDB.Bson.Serialization.Attributes;
using System;
using System.Collections.Generic;
namespace FireLance.Models
{
@@ -4,11 +4,11 @@ using System.Collections.Generic;
using System.IO;
using Dapper;
using FireLance.Interfaces;
using FireLance.Model;
using FireLance.Models;
namespace GSMParser
namespace Gsm
{
public class DatabaseConnection : IDatabaseConnection
public class GsmDB : IDatabaseConnection
{
private SqliteConnection DBConnection = new SqliteConnection();