| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Linq;
- using System.Reflection;
- using BO.Console.Commands.Base;
- using Quadarax.Foundation.Core.Data.Extensions;
- using Quadarax.Foundation.Core.QConsole;
- using Quadarax.Foundation.Core.QConsole.Argument;
- using Quadarax.Foundation.Core.Resource.Extensions;
- using Quadarax.Foundation.Core.Value;
- namespace BO.Console.Commands.Install
- {
- internal class ClearDbCommand : DbBaseCommand
- {
- #region *** Constants ***
- private const string CS_CMD_CLEAR_NAME = "dbclear";
- private const string CS_CMD_CLEAR_DESCR = "clear BO database (keep structure and deletes data).";
- #endregion
- #region *** Properties ***
- public override string Name => CS_CMD_CLEAR_NAME;
- public override string Description => CS_CMD_CLEAR_DESCR;
- #endregion
- #region *** Constructor ***
- public ClearDbCommand(Engine engine) : base(engine)
- {
- }
- #endregion
- #region *** EXECUTE ***
- protected override Result OnExecute()
- {
- var result = new Result();
- using (var conn = OpenMasterConnection())
- {
- if (CheckIfDbExists(conn, DatabseName))
- {
- var script = Assembly.GetExecutingAssembly().GetEmbeddedFileContentAsString("BO.Console.Commands.Install.bo_clear_data.sql");
- WriteCaption($"Clearing all data in '{DatabseName}'");
- var resultExecute = conn.BatchExecute(script);
- WriteDebugInfo($"Deploy script returns: {resultExecute}");
- if (resultExecute == 0)
- throw new Exception($"Database '{DatabseName}' clearing FAILED.");
- var version = conn.ExecuteScalar<string>(CommandType.Text, "select value from sys.extended_properties where NAME = 'BO_Version'");
- WriteCaption($"Database '{DatabseName}' cleared in version '{version}'");
- }
- }
- return new Result();
- }
- #endregion
- #region *** Private operations ***
- #endregion
- }
- }
|