| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- using Quadarax.Application.QLiberace.Base;
- using Quadarax.Application.QLiberace.Console.Commands.Base;
- using Quadarax.Foundation.Core.QConsole.Attributes;
- using Quadarax.Foundation.Core.QConsole;
- using Quadarax.Foundation.Core.QConsole.Argument;
- using Quadarax.Foundation.Core.QConsole.Value;
- using Quadarax.Foundation.Core.Value;
- namespace Quadarax.Application.QLiberace.Console.Commands
- {
- [CommandDefinition]
- internal class DbInstallCmd : DbMigrationCommand
- {
- #region *** Properties ***
- public override string Name => Constants.Commands.DbInstall.Name;
- public override string Description => Constants.Commands.DbInstall.Description;
-
- #endregion
- #region *** Fields ***
- private bool _isLatestUpdateEnabled;
- #endregion
- #region *** Constructor ***
- public DbInstallCmd(Engine engine) : base(engine)
- {
- }
- #endregion
-
- #region *** EXECUTE ***
- protected override Result OnExecute(QlbrcDbContext context)
- {
- WriteInfo("Ensuring database...");
- if (context.Database.EnsureCreated())
- WriteInfo("Database already exists.");
- else
- WriteInfo("Database created.");
- if (_isLatestUpdateEnabled)
- {
- WriteInfo("Checking pending migrations.");
- if (CheckPendingMigrations(context))
- {
- WriteInfo("New pending migrations detected.");
- ApplyMigration(context);
- }
- else
- {
- WriteInfo("Nothing found.");
- }
- }
- return new Result();
- }
-
- #endregion
- #region *** Private operations ***
- protected override void OnValidateArguments()
- {
- base.OnValidateArguments();
- if (ContainsArgument(Constants.Commands.DbInstall.Arguments.Latest.Name))
- _isLatestUpdateEnabled = GetArgumentValueOrDefault<bool>(Constants.Commands.DbInstall.Arguments.Latest.Name);
- }
- protected override IEnumerable<AbstractArgument> OnSetupArguments()
- {
- var arguments = new List<AbstractArgument>(base.OnSetupArguments());
- arguments.Add(new FlagArgument(Constants.Commands.DbInstall.Arguments.Latest.Name,
- Constants.Commands.DbInstall.Arguments.Latest.Description,
- Constants.Commands.DbInstall.Arguments.Latest.Hint, false));
- return arguments;
- }
- #endregion
- }
- }
|