public int GetToMontlyStats(MontlyStatsType type) { EnsureMontlyStatsTableExists(); var val = _dynaSql.SqlExecuteScalar($"Select count(id) from {MONTHLY_STATS_TABLE_NAME} where idType = {(int)type}"); int.TryParse(val, out int ret); return(ret); }
public void AddToMontlyStats(Dictionary <string, int> values, int year, int month, MontlyStatsType idType) { string cmd = null; try { EnsureMontlyStatsTableExists(); using (var conn = _dynaSql.ConnectionGet()) { conn.Open(); _dynaSql.SqlExecuteNonQuery(conn, "BEGIN TRANSACTION;"); cmd = $"insert or ignore into {MONTHLY_STATS_TABLE_NAME} (id, year, month, idType) values(@id, @year, @month, @idType)"; foreach (var val in values) { _dynaSql.SqlExecuteNonQuery(conn, cmd, new List <DynaSql.DynaParameter> { new DynaSql.DynaParameter { Name = "id", Value = val.Key }, new DynaSql.DynaParameter { Name = "year", Value = year.ToString() }, new DynaSql.DynaParameter { Name = "month", Value = month.ToString() }, new DynaSql.DynaParameter { Name = "idType", Value = ((int)idType).ToString() } }); } _dynaSql.SqlExecuteNonQuery(conn, "COMMIT TRANSACTION;"); conn.Close(); } } catch (Exception e) { Log.To.Main.AddException($"Failed running monthly stats. {cmd} on path {_dynaSql.ConnString}", e); throw; } }