diff --git a/Jenkinsfile b/Jenkinsfile
index 57893f2..5105580 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -11,10 +11,10 @@ pipeline {
steps {
/* calcolo numero versione... diverso x branch MASTER/DEVELOP */
script {
- withEnv(['NEXT_BUILD_NUMBER=693']) {
- // env.versionNumber = VersionNumber(versionNumberString : '3.4.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true)
- env.versionNumber = VersionNumber(versionNumberString : '3.4.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}')
- env.versionNumberBeta = VersionNumber(versionNumberString : '3.4.${BUILD_DATE_FORMATTED, "yyMM"}-beta.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}')
+ withEnv(['NEXT_BUILD_NUMBER=695']) {
+ // env.versionNumber = VersionNumber(versionNumberString : '3.5.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true)
+ env.versionNumber = VersionNumber(versionNumberString : '3.5.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}')
+ env.versionNumberBeta = VersionNumber(versionNumberString : '3.5.${BUILD_DATE_FORMATTED, "yyMM"}-beta.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}')
env.APP_NAME = 'SteamWareLib'
}
}
diff --git a/SteamWareLib/HwSwInfo.cs b/SteamWareLib/HwSwInfo.cs
new file mode 100644
index 0000000..bbedd6b
--- /dev/null
+++ b/SteamWareLib/HwSwInfo.cs
@@ -0,0 +1,244 @@
+using Microsoft.VisualBasic.Devices;
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+
+namespace SteamWare
+{
+ ///
+ /// Helper x estrarre dati sintetici su HW, Software, librerie installate...
+ ///
+ public class HwSwInfo
+ {
+ ///
+ /// Assembly di base
+ ///
+ protected static Assembly assembly = Assembly.GetExecutingAssembly();
+
+ ///
+ /// Restitusice l'elenco pareto (decrescente) delle dimensioni browser registrate
+ ///
+ public static string paretoBrowserSize
+ {
+ get
+ {
+ StringBuilder sb = new StringBuilder();
+ string redHash = memLayer.ML.redHash("COUNT:wh:*");
+ int numRec = memLayer.ML.redCountKey(redHash);
+ List> kvp = memLayer.ML.redGetCounterByKey(redHash, memLayer.kvpOrderBy.ValDesc);
+
+ // riordino elenco
+ sb.AppendLine(string.Format("Trovate {0} combinazioni", numRec));
+ foreach (var item in kvp)
+ {
+ sb.AppendLine(string.Format("{0}: {1}", item.Key.Replace(memLayer.ML.redHash("COUNT:wh:"), ""), item.Value));
+ }
+ return sb.ToString();
+ }
+ }
+ ///
+ /// Formatta un numero da int a size in Kb/Mb/Gb/Tb
+ ///
+ ///
+ ///
+ public static string memFormat(double rawSize)
+ {
+ string[] sizes = { "B", "KB", "MB", "GB", "TB" };
+ int order = 0;
+ while (rawSize >= 1024 && order < sizes.Length - 1)
+ {
+ order++;
+ rawSize = rawSize / 1024;
+ }
+
+ // Adjust the format string to your preferences. For example "{0:0.#}{1}" would
+ // show a single decimal place, and no space.
+ return String.Format("{0:0.##} {1}", rawSize, sizes[order]);
+ }
+ ///
+ /// Dati sui server redis...
+ ///
+ public static string redisServersData
+ {
+ get
+ {
+ StringBuilder sb = new StringBuilder();
+ try
+ {
+ var servData = memLayer.ML.redServInfo();
+ foreach (var item in servData)
+ {
+ sb.AppendLine(string.Format("Server: {0} | {1} | {2}", item, item.Version, item.ServerType));
+ // da completare con altre info?!?
+ var srvInfo = item.Info();
+ // esporto un pò di info x gruppo...
+ foreach (IGrouping> capitolo in srvInfo)
+ {
+ sb.AppendLine("----------------------------------------------");
+ sb.AppendLine(string.Format("Capitolo: {0}", capitolo.Key));
+ sb.AppendLine("----------------------------------------------");
+ foreach (var kvp in capitolo)
+ {
+ sb.AppendLine(string.Format("{0}:{1}", kvp.Key, kvp.Value));
+ }
+
+ sb.AppendLine();
+ }
+ }
+ }
+ catch (Exception exc)
+ {
+ logger.lg.scriviLog(string.Format("Errore in redisServersData{0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION);
+ }
+ return sb.ToString();
+ }
+ }
+ ///
+ /// Stringa timing in gg, ore, ... da timespan
+ ///
+ ///
+ ///
+ public static string ToDateString(TimeSpan time)
+ {
+ return string.Format("{0}gg, {1:00}:{2:00}:{3:00} (h:m:s)", time.Days, time.Hours, time.Minutes, time.Seconds);
+ }
+ ///
+ /// Statistiche server
+ ///
+ public static string ServerStats
+ {
+ get
+ {
+ StringBuilder sb = new StringBuilder();
+ try
+ {
+ // calcoli preliminari
+ TimeSpan uptime;
+ using (var uptimeCounter = new PerformanceCounter("System", "System Up Time"))
+ {
+ uptimeCounter.NextValue();
+ uptime = TimeSpan.FromSeconds(uptimeCounter.NextValue());
+ }
+ var computer = new ComputerInfo();
+
+ // compongo output
+ sb.AppendLine(string.Format("NAME: {0}", Environment.MachineName));
+ sb.AppendLine(Environment.OSVersion.VersionString);
+ sb.AppendLine(string.Format("OS 64bit: {0} | PROC 64bit: {1}", Environment.Is64BitOperatingSystem, Environment.Is64BitProcess));
+ sb.AppendLine(string.Format("SYS UPTIME: {0}", ToDateString(uptime)));
+ sb.AppendLine(string.Format("CPU: {0}", Environment.ProcessorCount));
+ sb.AppendLine(string.Format("RAM: {0}", memFormat(computer.TotalPhysicalMemory)));
+ sb.AppendLine(string.Format("Virtual Memory: {0}", memFormat(computer.TotalVirtualMemory)));
+ sb.AppendLine(string.Format("Available RAM: {0}", memFormat(computer.AvailablePhysicalMemory)));
+ sb.AppendLine(string.Format("Available Virtual Memory: {0}", memFormat(computer.AvailableVirtualMemory)));
+ sb.AppendLine(string.Format("DIR: {0}", Environment.CurrentDirectory));
+ sb.AppendLine(string.Format("USER: {0} | USER: {1}", Environment.UserDomainName, Environment.UserName));
+ }
+ catch (Exception exc)
+ {
+ logger.lg.scriviLog(string.Format("Errore in ServerStats{0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION);
+ }
+ return sb.ToString();
+ }
+ }
+ ///
+ /// Statistiche IIS
+ ///
+ public static string IISStats
+ {
+ get
+ {
+ StringBuilder sb = new StringBuilder();
+ using (var iis = Process.GetCurrentProcess())
+ {
+ //Process iis = Process.GetCurrentProcess();
+ sb.AppendLine(string.Format("UPTIME: {0}", ToDateString(DateTime.Now - iis.StartTime)));
+ sb.AppendLine(string.Format("Priority: {0}", iis.PriorityClass));
+ sb.AppendLine(string.Format("Physical Memory Used: {0}", memFormat(iis.WorkingSet64)));
+ sb.AppendLine(string.Format("Virtual Memory Used: {0}", memFormat(iis.VirtualMemorySize64)));
+ }
+ return sb.ToString();
+ }
+ }
+ ///
+ /// Nome MainAssembly
+ ///
+ public static string mainAssembly
+ {
+ get
+ {
+ string answ = "";
+ try
+ {
+ answ = assembly.FullName;
+ }
+ catch
+ { }
+ return answ;
+ }
+ }
+ ///
+ /// Runtime assembly
+ ///
+ public static string runtimeImg
+ {
+ get
+ {
+ string answ = "";
+ try
+ {
+ answ = assembly.ImageRuntimeVersion;
+ }
+ catch
+ { }
+ return answ;
+ }
+ }
+ ///
+ /// Versioni di ogni libreria compresa
+ ///
+ public static string librariesVers
+ {
+ get
+ {
+ string answ = "";
+ try
+ {
+ AssemblyName[] referencedAssemblyNames = assembly.GetReferencedAssemblies();
+ foreach (AssemblyName referencedAssemblyName in referencedAssemblyNames.OrderBy(n => n.Name))
+ {
+ answ += referencedAssemblyName.FullName + Environment.NewLine;
+ }
+ }
+ catch
+ { }
+ return answ;
+ }
+ }
+ ///
+ /// Num di librerie inserite
+ ///
+ public static int numLibraries
+ {
+ get
+ {
+ int numLib = 0; ;
+ try
+ {
+ AssemblyName[] referencedAssemblyNames = assembly.GetReferencedAssemblies();
+ foreach (AssemblyName referencedAssemblyName in referencedAssemblyNames.OrderBy(n => n.Name))
+ {
+ numLib++;
+ }
+ }
+ catch
+ { }
+ return numLib;
+ }
+ }
+
+ }
+}
diff --git a/SteamWareLib/SteamWare.csproj b/SteamWareLib/SteamWare.csproj
index ddffc42..20c848a 100644
--- a/SteamWareLib/SteamWare.csproj
+++ b/SteamWareLib/SteamWare.csproj
@@ -81,6 +81,7 @@
..\packages\SharpZipLib.1.2.0\lib\net45\ICSharpCode.SharpZipLib.dll
+
..\packages\MongoDB.Bson.2.9.3\lib\net452\MongoDB.Bson.dll
@@ -227,6 +228,7 @@
Code
+