Added statistics for runtime version.

This commit is contained in:
2017-06-04 02:24:04 +01:00
parent cc63232d7b
commit 5ce62b9a9f
6 changed files with 92 additions and 17 deletions

View File

@@ -58,6 +58,10 @@ namespace DiscImageChef.Core
OperatingSystems = new List<NameValueStats>
{
new NameValueStats { name = Interop.DetectOS.GetRealPlatformID().ToString(), Value = 1 }
},
Versions = new List<NameValueStats>
{
new NameValueStats{ name = Version.GetVersion(), Value = 1 }
}
};
XmlSerializer xs = new XmlSerializer(AllStats.GetType());
@@ -73,6 +77,10 @@ namespace DiscImageChef.Core
OperatingSystems = new List<NameValueStats>
{
new NameValueStats { name = Interop.DetectOS.GetRealPlatformID().ToString(), Value = 1 }
},
Versions = new List<NameValueStats>
{
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);

View File

@@ -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();
}
}
}

View File

@@ -40,6 +40,8 @@ namespace DiscImageChef.Metadata
{
[XmlArrayItem("OperatingSystem")]
public List<NameValueStats> OperatingSystems { get; set; }
[XmlArrayItem("Version")]
public List<NameValueStats> Versions { get; set; }
public CommandsStats Commands;
[XmlArrayItem("Filesystem")]
public List<NameValueStats> Filesystems { get; set; }

View File

@@ -10,6 +10,30 @@
<h1 align="center">Welcome to <i><a href="http://github.com/claunia/discimagechef" target="_blank">DiscImageChef</a></i> Server version <asp:Label id="lblVersion" runat="server"/></h1>
<br/>
<div id="content" runat="server">
<div id="divOperatingSystems" runat="server">
<table>
<asp:Repeater id="repOperatingSystems" runat="server">
<ItemTemplate>
<tr>
<td>DiscImageChef has run on <i><asp:Label runat="server" Text='<%# Eval("name") %>' /></i> <asp:Label runat="server" Text='<%# Eval("Value") %>' /> times.</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
<br/>
</div>
<div id="divVersions" runat="server">
<table>
<asp:Repeater id="repVersions" runat="server">
<ItemTemplate>
<tr>
<td>DiscImageChef version <i><asp:Label runat="server" Text='<%# Eval("name") %>' /></i> has been used <asp:Label runat="server" Text='<%# Eval("Value") %>' /> times.</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
<br/>
</div>
<div id="divCommands" runat="server">
<h4>Commands run:</h4>
<p>
@@ -30,18 +54,6 @@
<i>verify</i> command has been run <asp:Label id="lblVerify" runat="server"/> times
</p>
</div>
<div id="divOperatingSystems" runat="server">
<table>
<asp:Repeater id="repOperatingSystems" runat="server">
<ItemTemplate>
<tr>
<td>DiscImageChef has run on <i><asp:Label runat="server" Text='<%# Eval("name") %>' /></i> <asp:Label runat="server" Text='<%# Eval("Value") %>' /> times.</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
<br/>
</div>
<div id="divFilters" runat="server">
<h3>Filters found:</h3>
<table align="center" border="1">

View File

@@ -34,6 +34,7 @@ namespace DiscImageChef.Server
List<MediaItem> virtualMedia;
List<NameValueStats> operatingSystems;
List<DeviceItem> devices;
List<NameValueStats> 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<NameValueStats>();
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();

View File

@@ -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;