| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Text.Json;
- using BO.Connector.Console;
- using BO.Console.Options;
- using Quadarax.Foundation.Core.Console;
- using Quadarax.Foundation.Core.Data.Interface.Entity;
- using Quadarax.Foundation.Core.Logging;
- using Quadarax.Foundation.Core.Object.Extensions;
- using Quadarax.Foundation.Core.QConsole;
- using Quadarax.Foundation.Core.QConsole.Argument;
- using Quadarax.Foundation.Core.QConsole.Command.Base;
- namespace BO.Console.Commands.Base
- {
- internal abstract class BaseCommand : AbstractCommand, ILogHandler
- {
- #region *** Constants ***
- private const string CS_ARG_NAME_DUMP = "dump";
- private const string CS_ARG_HINT_DUMP = "<is_dump_reponses>";
- private const string CS_ARG_DESC_DUMP = "Flag if set dumps incomming json messages.";
- #endregion
- protected Connection Client { get; private set; }
- protected Configuration Configuration { get; private set; }
- protected BaseCommand(Engine engine) : base(engine)
- {
- }
- protected override void OnInitialize()
- {
- base.OnInitialize();
- Configuration = JsonSerializer.Deserialize<Configuration>(File.ReadAllText("console.json"));
- Client = new Connection(Configuration.ApiBaseUrl, Configuration.ApiTimeout, this, GetArgumentValueOrDefault<bool>(CS_ARG_NAME_DUMP));
- Client.Open(Configuration.ApiUser, Configuration.ApiUserPwd, Configuration.ApiMagic);
- }
- protected override IEnumerable<AbstractArgument> OnSetupArguments()
- {
- var args = base.OnSetupArguments().ToList();
- args.Add(new FlagArgument(CS_ARG_NAME_DUMP, CS_ARG_DESC_DUMP, CS_ARG_HINT_DUMP, false));
- return args;
- }
- public void Log(LogSeverityEnum type, string message, Exception e = null)
- {
- WriteInfo($"{type}: {message}" + (e == null ? "" : e.Message));
- }
- protected void WriteDtoToConsole(IDto dto)
- {
- var props = dto.GetAllPropertyValues();
- using(var wName = new ConsoleWriter(ConsoleColor.White))
- using(var wValue = new ConsoleWriter(ConsoleColor.Yellow))
- foreach (var prop in props)
- {
- wName.Write(prop.Key);
- wName.Write("\t:\t");
- wValue.WriteLine(prop.Value?.ToString());
- }
- }
- }
- }
|