Files
SabreTools/RombaSharp/Features/DbStats.cs

60 lines
1.8 KiB
C#
Raw Normal View History

2020-08-01 13:25:32 -07:00
using System.Collections.Generic;
2020-12-07 13:57:26 -08:00
using SabreTools.Help;
2020-08-01 13:25:32 -07:00
using Microsoft.Data.Sqlite;
namespace RombaSharp.Features
{
internal class DbStats : BaseFeature
{
public const string Value = "DbStats";
public DbStats()
{
Name = Value;
Flags = new List<string>() { "dbstats" };
Description = "Prints db stats.";
2020-12-07 13:57:26 -08:00
_featureType = ParameterType.Flag;
2020-08-01 13:25:32 -07:00
LongDescription = "Print db stats.";
Features = new Dictionary<string, Feature>();
2021-02-03 11:10:19 -08:00
// Common Features
AddCommonFeatures();
2020-08-01 13:25:32 -07:00
}
2021-03-19 20:52:11 -07:00
public override bool ProcessFeatures(Dictionary<string, Feature> features)
2020-08-01 13:25:32 -07:00
{
2021-03-19 20:52:11 -07:00
// If the base fails, just fail out
if (!base.ProcessFeatures(features))
return false;
2020-08-01 13:25:32 -07:00
SqliteConnection dbc = new SqliteConnection(_connectionString);
dbc.Open();
// Total number of CRCs
string query = "SELECT COUNT(*) FROM crc";
SqliteCommand slc = new SqliteCommand(query, dbc);
logger.User($"Total CRCs: {(long)slc.ExecuteScalar()}");
2020-08-01 13:25:32 -07:00
// Total number of MD5s
query = "SELECT COUNT(*) FROM md5";
slc = new SqliteCommand(query, dbc);
logger.User($"Total MD5s: {(long)slc.ExecuteScalar()}");
2020-08-01 13:25:32 -07:00
// Total number of SHA1s
query = "SELECT COUNT(*) FROM sha1";
slc = new SqliteCommand(query, dbc);
logger.User($"Total SHA1s: {(long)slc.ExecuteScalar()}");
2020-08-01 13:25:32 -07:00
// Total number of DATs
query = "SELECT COUNT(*) FROM dat";
slc = new SqliteCommand(query, dbc);
logger.User($"Total DATs: {(long)slc.ExecuteScalar()}");
2020-08-01 13:25:32 -07:00
slc.Dispose();
dbc.Dispose();
2021-03-19 20:52:11 -07:00
return true;
2020-08-01 13:25:32 -07:00
}
}
}