3.0.0.3 Control Repository Schema & Logs.
This commit is contained in:
+25
-6
@@ -72,7 +72,7 @@ namespace Sarand.BusinessMgr.Web.Control.Controllers.System
|
||||
Sbm.Database databaseInstance = EnumUtil.ParseEnum(StringUtil.EmptyOnNull(model.DatabaseFilter.Instance), Sbm.Database.Unknown);
|
||||
if (databaseInstance <= 0)
|
||||
return Json(responseData.SetMessage(messageTitle, $"Database instance must be specified."));
|
||||
ISacsDatabase db = GetDatabase(databaseInstance);
|
||||
ISacsDatabase db = GetDatabase(databaseInstance, model.DatabaseFilter.Context);
|
||||
if (db == null)
|
||||
return Json(responseData.SetMessage(messageTitle, $"Database unavailable for instance '{databaseInstance}'."));
|
||||
|
||||
@@ -123,12 +123,14 @@ namespace Sarand.BusinessMgr.Web.Control.Controllers.System
|
||||
/// <summary>
|
||||
/// Get database by type.
|
||||
/// </summary>
|
||||
private ISacsDatabase GetDatabase(Sbm.Database databaseInstance)
|
||||
private ISacsDatabase GetDatabase(Sbm.Database databaseInstance, String context)
|
||||
{
|
||||
switch (databaseInstance)
|
||||
{
|
||||
case Sbm.Database.Control:
|
||||
return App.GetControlDatabase();
|
||||
case Sbm.Database.BusMgr:
|
||||
return GetDatabaseByContext(context);
|
||||
case Sbm.Database.Template:
|
||||
return GetDatabaseByContext(Sbm.RepositoryContext_Template);
|
||||
case Sbm.Database.Demo:
|
||||
@@ -169,6 +171,7 @@ namespace Sarand.BusinessMgr.Web.Control.Controllers.System
|
||||
public AjaxResponse_ValidateDatabaseSchema(SbmModel_Control model) : base(model) { }
|
||||
// Database instance.
|
||||
public String Instance { get; set; }
|
||||
public String Context { get; set; }
|
||||
// Schema validation list.
|
||||
public List<DbSchemaItemResponseData> Items { get; } = new List<DbSchemaItemResponseData>();
|
||||
}
|
||||
@@ -194,13 +197,21 @@ namespace Sarand.BusinessMgr.Web.Control.Controllers.System
|
||||
return Json(responseData.SetMessage(messageTitle, "Database instance must be specified"));
|
||||
responseData.Instance = databaseInstance.ToString();
|
||||
|
||||
// Context.
|
||||
if (databaseInstance == Sbm.Database.BusMgr)
|
||||
{
|
||||
if (StringUtil.IsBlank(model.DatabaseFilter.Context))
|
||||
return Json(responseData.SetMessage(messageTitle, "BusMgr Database context must be specified"));
|
||||
responseData.Context = model.DatabaseFilter.Context;
|
||||
}
|
||||
|
||||
// Database connection.
|
||||
ISacsDatabase db = GetDatabase(databaseInstance);
|
||||
ISacsDatabase db = GetDatabase(databaseInstance, model.DatabaseFilter.Context);
|
||||
if (db == null)
|
||||
return Json(responseData.SetMessage(messageTitle, $"Unrecognised database instance specified: '{model.DatabaseFilter.Instance}'."));
|
||||
|
||||
// Retrieve XML database schema definition.
|
||||
Dictionary<String, String> xmlSchemas = GetSmlSchema(databaseInstance);
|
||||
Dictionary<String, String> xmlSchemas = GetSmlSchemas(databaseInstance);
|
||||
if (!xmlSchemas.Any())
|
||||
return Json(responseData.SetMessage(messageTitle, "Failed to extract XML schema definitions."));
|
||||
|
||||
@@ -253,7 +264,7 @@ namespace Sarand.BusinessMgr.Web.Control.Controllers.System
|
||||
return Json(responseData);
|
||||
}
|
||||
|
||||
private Dictionary<String, String> GetSmlSchema(Sbm.Database databaseInstance)
|
||||
private Dictionary<String, String> GetSmlSchemas(Sbm.Database databaseInstance)
|
||||
{
|
||||
Dictionary<String, String> schemas = new Dictionary<String, String>();
|
||||
switch (databaseInstance)
|
||||
@@ -264,6 +275,7 @@ namespace Sarand.BusinessMgr.Web.Control.Controllers.System
|
||||
schemas.Add("SbmDbDfn_Control.xml", SacsResourceHelper.GetManifestResourceAsText(assembly, "", "SbmDbDfn_Control.xml"));
|
||||
break;
|
||||
}
|
||||
case Sbm.Database.BusMgr:
|
||||
case Sbm.Database.Template:
|
||||
case Sbm.Database.Demo:
|
||||
{
|
||||
@@ -436,8 +448,15 @@ namespace Sarand.BusinessMgr.Web.Control.Controllers.System
|
||||
if (databaseInstance <= 0)
|
||||
return Json(responseData.SetMessage(messageTitle, "Database instance must be specified"));
|
||||
|
||||
// Context.
|
||||
if (databaseInstance == Sbm.Database.BusMgr)
|
||||
{
|
||||
if (StringUtil.IsBlank(model.DatabaseFilter.Context))
|
||||
return Json(responseData.SetMessage(messageTitle, "BusMgr Database context must be specified"));
|
||||
}
|
||||
|
||||
// Database connection.
|
||||
ISacsDatabase db = GetDatabase(databaseInstance);
|
||||
ISacsDatabase db = GetDatabase(databaseInstance, model.DatabaseFilter.Context);
|
||||
|
||||
// Table definition.
|
||||
DbDfnTable tableDfn = db.GetTableDfn(model.DatabaseTable.Name, true);
|
||||
|
||||
Reference in New Issue
Block a user