diff --git a/DiscImageChef.Core/Statistics.cs b/DiscImageChef.Core/Statistics.cs index 48217140b..3a58d51ad 100644 --- a/DiscImageChef.Core/Statistics.cs +++ b/DiscImageChef.Core/Statistics.cs @@ -58,6 +58,10 @@ namespace DiscImageChef.Core OperatingSystems = new List { new NameValueStats { name = Interop.DetectOS.GetRealPlatformID().ToString(), Value = 1 } + }, + Versions = new List + { + new NameValueStats{ name = Version.GetVersion(), Value = 1 } } }; XmlSerializer xs = new XmlSerializer(AllStats.GetType()); @@ -73,6 +77,10 @@ namespace DiscImageChef.Core OperatingSystems = new List { new NameValueStats { name = Interop.DetectOS.GetRealPlatformID().ToString(), Value = 1 } + }, + Versions = new List + { + new NameValueStats{ name = Version.GetVersion(), Value = 1 } } }; } @@ -96,7 +104,7 @@ namespace DiscImageChef.Core { if(nvs.name == Interop.DetectOS.GetRealPlatformID().ToString()) { - count = nvs.Value; + count = nvs.Value + 1; old = nvs; break; } @@ -108,6 +116,33 @@ namespace DiscImageChef.Core count++; AllStats.OperatingSystems.Add(new NameValueStats { name = Interop.DetectOS.GetRealPlatformID().ToString(), Value = count }); } + else if(CurrentStats != null) + AllStats.OperatingSystems = CurrentStats.OperatingSystems; + + if(AllStats.Versions != null) + { + long count = 0; + + NameValueStats old = null; + foreach(NameValueStats nvs in AllStats.Versions) + { + if(nvs.name == Version.GetVersion()) + { + count = nvs.Value + 1; + old = nvs; + break; + } + } + + if(old != null) + AllStats.Versions.Remove(old); + + count++; + AllStats.Versions.Add(new NameValueStats { name = Version.GetVersion(), Value = count }); + } + else if(CurrentStats != null) + AllStats.Versions = CurrentStats.Versions; + FileStream fs = new FileStream(Path.Combine(Settings.Settings.StatsPath, "Statistics.xml"), FileMode.Create); XmlSerializer xs = new XmlSerializer(AllStats.GetType()); xs.Serialize(fs, AllStats); diff --git a/DiscImageChef.Core/Version.cs b/DiscImageChef.Core/Version.cs index 378b2bbd5..4cfd63927 100644 --- a/DiscImageChef.Core/Version.cs +++ b/DiscImageChef.Core/Version.cs @@ -52,5 +52,10 @@ namespace DiscImageChef.Core Version = typeof(Version).Assembly.GetName().Version.ToString() }; } + + public static string GetVersion() + { + return typeof(Version).Assembly.GetName().Version.ToString(); + } } } diff --git a/DiscImageChef.Metadata/Statistics.cs b/DiscImageChef.Metadata/Statistics.cs index f103dc329..31a31d5b4 100644 --- a/DiscImageChef.Metadata/Statistics.cs +++ b/DiscImageChef.Metadata/Statistics.cs @@ -40,6 +40,8 @@ namespace DiscImageChef.Metadata { [XmlArrayItem("OperatingSystem")] public List OperatingSystems { get; set; } + [XmlArrayItem("Version")] + public List Versions { get; set; } public CommandsStats Commands; [XmlArrayItem("Filesystem")] public List Filesystems { get; set; } diff --git a/DiscImageChef.Server/Default.aspx b/DiscImageChef.Server/Default.aspx index 36db06cef..a0d018efc 100644 --- a/DiscImageChef.Server/Default.aspx +++ b/DiscImageChef.Server/Default.aspx @@ -10,6 +10,30 @@

Welcome to DiscImageChef Server version


+
+ + + + + + + + +
DiscImageChef has run on times.
+
+
+
+ + + + + + + + +
DiscImageChef version has been used times.
+
+

Commands run:

@@ -30,18 +54,6 @@ verify command has been run times

-
- - - - - - - - -
DiscImageChef has run on times.
-
-

Filters found:

diff --git a/DiscImageChef.Server/Default.aspx.cs b/DiscImageChef.Server/Default.aspx.cs index 9832f6e9b..addb10ff5 100644 --- a/DiscImageChef.Server/Default.aspx.cs +++ b/DiscImageChef.Server/Default.aspx.cs @@ -34,6 +34,7 @@ namespace DiscImageChef.Server List virtualMedia; List operatingSystems; List devices; + List versions; protected void Page_Load(object sender, EventArgs e) { @@ -69,6 +70,22 @@ namespace DiscImageChef.Server else divOperatingSystems.Visible = false; + if(statistics.Versions != null) + { + versions = new List(); + foreach(NameValueStats nvs in statistics.Versions) + { + if(nvs.name == "previous") + versions.Add(new NameValueStats { name = "Previous than 3.4.99.0", Value = nvs.Value }); + else + versions.Add(nvs); + } + repVersions.DataSource = versions.OrderBy(ver => ver.name).ToList(); + repVersions.DataBind(); + } + else + divVersions.Visible = false; + if(statistics.Commands != null) { lblAnalyze.Text = statistics.Commands.Analyze.ToString(); diff --git a/DiscImageChef.Server/Default.aspx.designer.cs b/DiscImageChef.Server/Default.aspx.designer.cs index 53d1795b8..d6dc7c68f 100644 --- a/DiscImageChef.Server/Default.aspx.designer.cs +++ b/DiscImageChef.Server/Default.aspx.designer.cs @@ -19,6 +19,14 @@ namespace DiscImageChef.Server { protected System.Web.UI.HtmlControls.HtmlGenericControl content; + protected System.Web.UI.HtmlControls.HtmlGenericControl divOperatingSystems; + + protected System.Web.UI.WebControls.Repeater repOperatingSystems; + + protected System.Web.UI.HtmlControls.HtmlGenericControl divVersions; + + protected System.Web.UI.WebControls.Repeater repVersions; + protected System.Web.UI.HtmlControls.HtmlGenericControl divCommands; protected System.Web.UI.WebControls.Label lblAnalyze; @@ -51,10 +59,6 @@ namespace DiscImageChef.Server { protected System.Web.UI.WebControls.Label lblVerify; - protected System.Web.UI.HtmlControls.HtmlGenericControl divOperatingSystems; - - protected System.Web.UI.WebControls.Repeater repOperatingSystems; - protected System.Web.UI.HtmlControls.HtmlGenericControl divFilters; protected System.Web.UI.WebControls.Repeater repFilters;