Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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;
            }
        }