Parcourir la source

add VersionCommand

Dalibor Votruba il y a 4 ans
Parent
commit
add4c6aec6

+ 97 - 0
Console/Commands/Service/VersionCommand.cs

@@ -0,0 +1,97 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Text.Json;
+using BO.AppServer.Metadata.Dto;
+using BO.Connector.Console;
+using BO.Console.Commands.Base;
+using BO.Console.Options;
+using Quadarax.Foundation.Core.QConsole;
+using Quadarax.Foundation.Core.QConsole.Argument;
+using Quadarax.Foundation.Core.QConsole.Attributes;
+using Quadarax.Foundation.Core.Value;
+
+namespace BO.Console.Commands.Service
+{
+    [CommandDefinition]
+    internal class VersionCommand : AbstractListCommand
+    {
+        #region *** Constants ***
+        private const string CS_CMD_VERSIONGET_NAME = "version";
+        private const string CS_CMD_VERSIONGET_DESCR = "Get version information from server or from console.";
+
+
+        private const string CS_ARG_NAME_LOCAL = "local";
+        private const string CS_ARG_HINT_LOCAL = "<show_local>";
+        private const string CS_ARG_DESC_LOCAL = "Flag if set shows only local console assembly manifest.";
+
+        
+        #endregion
+
+        #region *** Properties ***
+
+        public override string Name => CS_CMD_VERSIONGET_NAME;
+        public override string Description => CS_CMD_VERSIONGET_DESCR;
+
+        #endregion
+
+        #region *** Constructor ***
+        public VersionCommand(Engine engine) : base(engine)
+        {
+        }
+        #endregion
+
+        #region *** EXECUTE ***
+        protected override Result OnExecute()
+        {
+
+            IEnumerable<AssemblyInfoDto> versions;
+            if (!WasArgumentSpecified(CS_ARG_NAME_LOCAL))
+            {
+                versions = Client.GetVersionsAsync().Result.OrderBy(x=>x.Name);
+                WriteDtoToConsole(versions, "Name", "AssemblyVersion","FileVersion");
+            }
+            else
+            {
+                var assemblies = AppDomain.CurrentDomain.GetAssemblies();
+                versions = new List<AssemblyInfoDto>();
+                foreach (var assembly in assemblies)
+                {
+                    var fiv = FileVersionInfo.GetVersionInfo(assembly.Location);
+                    ((List<AssemblyInfoDto>)versions).Add(new AssemblyInfoDto()
+                    {
+                        FileVersion = fiv.FileVersion,
+                        AssemblyVersion = assembly.GetName().Version?.ToString(),
+                        Name = assembly.GetName().Name
+                    });
+                }
+
+                versions = versions.OrderBy(x => x.Name).ToList();
+
+            }
+            WriteDtoToConsole(versions, "Name", "AssemblyVersion","FileVersion");                
+            return new Result();
+        }
+        #endregion
+
+        #region *** Private operations ***
+
+        protected override void OnInitialize()
+        {
+            if (!WasArgumentSpecified(CS_ARG_NAME_LOCAL))
+                base.OnInitialize();
+        }
+
+        protected override IEnumerable<AbstractArgument> OnSetupArguments()
+        {
+            var args =  base.OnSetupArguments().ToList();
+            args.Add(new FlagArgument(CS_ARG_NAME_LOCAL, CS_ARG_DESC_LOCAL, CS_ARG_HINT_LOCAL,false));
+            return args;
+        }
+
+        #endregion
+    }
+}

+ 1 - 5
Console/Console.csproj

@@ -1,4 +1,4 @@
-<Project Sdk="Microsoft.NET.Sdk">
+<Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
     <OutputType>Exe</OutputType>
@@ -20,8 +20,4 @@
     </None>
   </ItemGroup>
 
-  <ItemGroup>
-    <Folder Include="Commands\Service\" />
-  </ItemGroup>
-
 </Project>

+ 1 - 1
Console/Properties/launchSettings.json

@@ -2,7 +2,7 @@
   "profiles": {
     "Console": {
       "commandName": "Project",
-      "commandLineArgs": "mime_add -in:\"c:\\Temp\\BO\\mimes.json\" -dump -lst"
+      "commandLineArgs": "version -local"
     }
   }
 }