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;
using FireLance.Model; using FireLance.Models;
using Gsm;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@@ -7,8 +8,8 @@ namespace DevConsole
{ {
class Program class Program
{ {
public static GSMParser.DatabaseConnection gsmParser = new GSMParser.DatabaseConnection(); public static GsmDB gsmParser = new GsmDB();
public static FireLance.DatabaseConnection flcParser = new FireLance.DatabaseConnection(); public static FireLanceCRUD fireLanceCRUD = new FireLanceCRUD();
static void Main(string[] args) static void Main(string[] args)
{ {
@@ -122,14 +123,14 @@ namespace DevConsole
{ {
case ConsoleKey.A: case ConsoleKey.A:
Console.WriteLine("Connect to database"); Console.WriteLine("Connect to database");
flcParser.OpenConnection("sr3", 27017); fireLanceCRUD.OpenConnection("sr3", 27017);
break; break;
case ConsoleKey.B: case ConsoleKey.B:
flcParser.CloseCurrentConnection(); fireLanceCRUD.CloseCurrentConnection();
break; break;
} }
Console.WriteLine($"FireLance Connection State: {flcParser.IsConnectionOpen()}\n"); Console.WriteLine($"FireLance Connection State: {fireLanceCRUD.IsConnectionOpen()}\n");
} }
private static void OptionF() private static void OptionF()
@@ -139,7 +140,7 @@ namespace DevConsole
foreach (var entry in dm) foreach (var entry in dm)
{ {
//entry.Path = guid.ToString(); //entry.Path = guid.ToString();
flcParser.InsertRecord("SaveData", entry); fireLanceCRUD.InsertRecord("SaveData", entry);
} }
} }
#endregion #endregion
@@ -6,40 +6,15 @@ using System.Collections.Generic;
namespace FireLance 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) public void InsertRecord<T>(string table, T record)
{ {
var collection = db.GetCollection<T>(table); var collection = db.GetCollection<T>(table);
collection.InsertOne(record); 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); var collection = db.GetCollection<T>(table);
collection.ReplaceOne( collection.ReplaceOne(
@@ -48,7 +23,7 @@ namespace FireLance
new ReplaceOptions { IsUpsert = true }); new ReplaceOptions { IsUpsert = true });
} }
public List<T> LoadRecords<T>(string table) public List<T> LoadRecordsFromTable<T>(string table)
{ {
var collection = db.GetCollection<T>(table); var collection = db.GetCollection<T>(table);
return collection.Find(new BsonDocument()).ToList(); 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 public class DirectoriesModel
{ {
+1 -1
View File
@@ -1,4 +1,4 @@
namespace FireLance.Model namespace FireLance.Models
{ {
public class GameEntryModel 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;
using System.Collections.Generic;
namespace FireLance.Models namespace FireLance.Models
{ {
@@ -4,11 +4,11 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using Dapper; using Dapper;
using FireLance.Interfaces; 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(); private SqliteConnection DBConnection = new SqliteConnection();