Added statistics to underlying operating system version.

This commit is contained in:
2017-09-11 02:05:07 +01:00
parent db1ce5c15c
commit d4add54b53
4 changed files with 36 additions and 24 deletions

View File

@@ -55,9 +55,9 @@ namespace DiscImageChef.Core
AllStats = new Stats();
CurrentStats = new Stats()
{
OperatingSystems = new List<NameValueStats>
OperatingSystems = new List<OsStats>
{
new NameValueStats { name = Interop.DetectOS.GetRealPlatformID().ToString(), Value = 1 }
new OsStats { name = Interop.DetectOS.GetRealPlatformID().ToString(), Value = 1, version = Environment.OSVersion.Version.ToString() }
},
Versions = new List<NameValueStats>
{
@@ -74,9 +74,9 @@ namespace DiscImageChef.Core
AllStats = new Stats();
CurrentStats = new Stats()
{
OperatingSystems = new List<NameValueStats>
OperatingSystems = new List<OsStats>
{
new NameValueStats { name = Interop.DetectOS.GetRealPlatformID().ToString(), Value = 1 }
new OsStats { name = Interop.DetectOS.GetRealPlatformID().ToString(), Value = 1, version = Environment.OSVersion.Version.ToString() }
},
Versions = new List<NameValueStats>
{
@@ -99,10 +99,10 @@ namespace DiscImageChef.Core
{
long count = 0;
NameValueStats old = null;
foreach(NameValueStats nvs in AllStats.OperatingSystems)
OsStats old = null;
foreach(OsStats nvs in AllStats.OperatingSystems)
{
if(nvs.name == Interop.DetectOS.GetRealPlatformID().ToString())
if(nvs.name == Interop.DetectOS.GetRealPlatformID().ToString() && nvs.version == Environment.OSVersion.Version.ToString())
{
count = nvs.Value + 1;
old = nvs;
@@ -114,7 +114,7 @@ namespace DiscImageChef.Core
AllStats.OperatingSystems.Remove(old);
count++;
AllStats.OperatingSystems.Add(new NameValueStats { name = Interop.DetectOS.GetRealPlatformID().ToString(), Value = count });
AllStats.OperatingSystems.Add(new OsStats { name = Interop.DetectOS.GetRealPlatformID().ToString(), Value = count, version = Environment.OSVersion.Version.ToString() });
}
else if(CurrentStats != null)
AllStats.OperatingSystems = CurrentStats.OperatingSystems;

View File

@@ -39,7 +39,7 @@ namespace DiscImageChef.Metadata
public class Stats
{
[XmlArrayItem("OperatingSystem")]
public List<NameValueStats> OperatingSystems { get; set; }
public List<OsStats> OperatingSystems { get; set; }
[XmlArrayItem("Version")]
public List<NameValueStats> Versions { get; set; }
public CommandsStats Commands;
@@ -165,4 +165,14 @@ namespace DiscImageChef.Metadata
[XmlText]
public long Value { get; set; }
}
public class OsStats
{
[XmlAttribute]
public string name { get; set; }
[XmlAttribute]
public string version { get; set; }
[XmlText]
public long Value { get; set; }
}
}

View File

@@ -120,16 +120,16 @@ namespace DiscImageChef.Server.Controllers
oldStats.OperatingSystems = newStats.OperatingSystems;
else
{
foreach(NameValueStats newNvs in newStats.OperatingSystems)
foreach(OsStats newNvs in newStats.OperatingSystems)
{
NameValueStats removeNvs = null;
NameValueStats addNvs = null;
OsStats removeNvs = null;
OsStats addNvs = null;
foreach(NameValueStats oldNvs in oldStats.OperatingSystems)
foreach(OsStats oldNvs in oldStats.OperatingSystems)
{
if(oldNvs.name == newNvs.name)
if(oldNvs.name == newNvs.name && oldNvs.version == newNvs.version)
{
addNvs = new NameValueStats { name = oldNvs.name, Value = oldNvs.Value + newNvs.Value };
addNvs = new OsStats { name = oldNvs.name, Value = oldNvs.Value + newNvs.Value, version = oldNvs.version };
removeNvs = oldNvs;
break;
}
@@ -148,20 +148,20 @@ namespace DiscImageChef.Server.Controllers
else
{
if(oldStats.OperatingSystems == null)
oldStats.OperatingSystems = new System.Collections.Generic.List<NameValueStats>
oldStats.OperatingSystems = new System.Collections.Generic.List<OsStats>
{
new NameValueStats { name = "Linux", Value = 1 }
new OsStats { name = "Linux", Value = 1 }
};
else
{
NameValueStats removeNvs = null;
NameValueStats addNvs = null;
OsStats removeNvs = null;
OsStats addNvs = null;
foreach(NameValueStats oldNvs in oldStats.OperatingSystems)
foreach(OsStats oldNvs in oldStats.OperatingSystems)
{
if(oldNvs.name == "Linux")
{
addNvs = new NameValueStats { name = oldNvs.name, Value = oldNvs.Value + 1 };
addNvs = new OsStats { name = oldNvs.name, Value = oldNvs.Value + 1, version = oldNvs.version };
removeNvs = oldNvs;
break;
}
@@ -173,7 +173,7 @@ namespace DiscImageChef.Server.Controllers
oldStats.OperatingSystems.Add(addNvs);
}
else
oldStats.OperatingSystems.Add(new NameValueStats { name = "Linux", Value = 1 });
oldStats.OperatingSystems.Add(new OsStats { name = "Linux", Value = 1 });
}
}

View File

@@ -62,8 +62,10 @@ namespace DiscImageChef.Server
if(statistics.OperatingSystems != null)
{
operatingSystems = new List<NameValueStats>();
foreach(NameValueStats nvs in statistics.OperatingSystems)
operatingSystems.Add(new NameValueStats { name = Interop.DetectOS.GetPlatformName((Interop.PlatformID)Enum.Parse(typeof(Interop.PlatformID), nvs.name)), Value = nvs.Value });
foreach(OsStats nvs in statistics.OperatingSystems)
operatingSystems.Add(new NameValueStats { name = string.Format("{0}{1}{2}", Interop.DetectOS.GetPlatformName((Interop.PlatformID)Enum.Parse(typeof(Interop.PlatformID), nvs.name), nvs.version),
string.IsNullOrEmpty(nvs.version) ? "" : " ", nvs.version), Value = nvs.Value });
//operatingSystems.Add(new OsStats { name = Interop.DetectOS.GetPlatformName((Interop.PlatformID)Enum.Parse(typeof(Interop.PlatformID), nvs.name), nvs.version), Value = nvs.Value, version = nvs.version });
repOperatingSystems.DataSource = operatingSystems.OrderBy(os => os.name).ToList();
repOperatingSystems.DataBind();
}