Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Start to refactor database functions to it's separate
class so Postgres support can be added. Move database configuration to the appsetttings.json file
- Loading branch information
香風智乃
authored and
香風智乃
committed
Apr 30, 2019
1 parent
36af8fd
commit 180ab95
Showing
16 changed files
with
490 additions
and
196 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,108 @@ | ||
using Microsoft.Extensions.Options; | ||
using System; | ||
using System.Collections.Generic; | ||
using System.Linq; | ||
using System.Threading.Tasks; | ||
|
||
namespace hato.Helpers | ||
{ | ||
public class ConnectionManager | ||
{ | ||
private readonly dbsettings settings; | ||
private MySQLDBManager mysqldbmgr; | ||
private PostgresDBManager postgresdbmgr; | ||
|
||
public ConnectionManager(dbsettings settings) | ||
{ | ||
this.settings = settings; | ||
String connectionString; | ||
switch (this.settings.dbengine) | ||
{ | ||
case "mysql": | ||
connectionString = "SERVER =" + this.settings.dbhost + ";DATABASE=" + this.settings.dbname + ";UID=" + this.settings.dbuser + ";PASSWORD=" + this.settings.dbpassword + ";"; | ||
mysqldbmgr = new MySQLDBManager(connectionString); | ||
break; | ||
case "postgres": | ||
connectionString = "SERVER=" + this.settings.dbhost + ";User Id=" + this.settings.dbuser + ";Password=" + this.settings.dbpassword + ";Database=" + this.settings.dbname; | ||
break; | ||
default: | ||
throw new System.ArgumentException("Invalid engine type" + this.settings.dbengine); | ||
} | ||
} | ||
|
||
public void Dispose() | ||
{ | ||
switch (this.settings.dbengine) | ||
{ | ||
case "mysql": | ||
mysqldbmgr.Dispose(); | ||
break; | ||
case "postgres": | ||
break; | ||
} | ||
} | ||
|
||
public bool isInitalized() | ||
{ | ||
switch (this.settings.dbengine) | ||
{ | ||
case "mysql": | ||
return mysqldbmgr.initalized; | ||
case "postgres": | ||
return false; | ||
} | ||
return false; | ||
} | ||
|
||
public Dictionary<string, object> RetreiveSavedIDsFromServiceID(Service listService, object titleid, MediaType type) | ||
{ | ||
switch (this.settings.dbengine) | ||
{ | ||
case "mysql": | ||
return mysqldbmgr.RetreiveSavedIDsFromServiceID(listService, titleid, type); | ||
} | ||
return null; | ||
} | ||
|
||
public object RetreiveSavedTargetIDFromServiceID(Service targetservice, Service listService, object titleid, MediaType type) | ||
{ | ||
switch (this.settings.dbengine) | ||
{ | ||
case "mysql": | ||
return mysqldbmgr.RetreiveSavedTargetIDFromServiceID(targetservice, listService, titleid, type); | ||
} | ||
return null; | ||
} | ||
|
||
public void SaveIDtoDatabase(Service targetservice, Service listservice, object targettitleid, object servicetitleid, MediaType type) | ||
{ | ||
switch (this.settings.dbengine) | ||
{ | ||
case "mysql": | ||
mysqldbmgr.SaveIDtoDatabase(targetservice, listservice, targettitleid, servicetitleid, type); | ||
break; | ||
} | ||
} | ||
|
||
public object CheckIfEntryExists(Service targetservice, object targetid, MediaType type) | ||
{ | ||
switch (this.settings.dbengine) | ||
{ | ||
case "mysql": | ||
return mysqldbmgr.CheckIfEntryExists(targetservice, targetid, type); | ||
} | ||
return null; | ||
} | ||
|
||
public object CheckIfEntryExists(Service targetservice, object targetid, Service sourceservice, object sourceid, MediaType type) | ||
{ | ||
switch (this.settings.dbengine) | ||
{ | ||
case "mysql": | ||
return mysqldbmgr.CheckIfEntryExists(targetservice, targetid, sourceservice, sourceid, type); | ||
} | ||
return null; | ||
} | ||
|
||
} | ||
} |
Oops, something went wrong.