private static bool VersionAlreadyApplied(FbConnection connection, int version) { bool alreadyApplied = false; bool tableExists = Convert.ToBoolean(connection.ExecuteScalar(@"SELECT count(*) FROM rdb$relations where rdb$relation_name = 'HANGFIRE.SCHEMA';")); if (tableExists) { alreadyApplied = Convert.ToBoolean(connection.ExecuteScalar(string.Format(@"SELECT 1 FROM ""HANGFIRE.SCHEMA"" WHERE ""VERSION"" = {0};", version))); } return(alreadyApplied); }
public int GetTablePK(string tblName) { int pk = 0; using (IDbConnection connection = new FbConnection(connectionString)) { pk = connection.ExecuteScalar <int>($"select ID from Get_PK('{tblName}')"); } return(pk); }
public int GetPK() { int pk = 0; using (IDbConnection connection = new FbConnection(connectionString)) { pk = connection.ExecuteScalar <int>($"select ID from Get_PK"); } return(pk); }
public string CreateExpiredJob( Job job, IDictionary <string, string> parameters, DateTime createdAt, TimeSpan expireIn) { if (job == null) { throw new ArgumentNullException("job"); } if (parameters == null) { throw new ArgumentNullException("parameters"); } string createJobSql = string.Format(@"INSERT INTO ""{0}.JOB"" (invocationdata, arguments, createdat, expireat) VALUES (@invocationData, @arguments, @createdAt, @expireAt) RETURNING id;", _options.Prefix); var invocationData = InvocationData.Serialize(job); var jobId = _connection.ExecuteScalar <int>( createJobSql, new { invocationData = JobHelper.ToJson(invocationData), arguments = invocationData.Arguments, createdAt = createdAt, expireAt = createdAt.Add(expireIn) }).ToString(); if (parameters.Count > 0) { var parameterArray = new object[parameters.Count]; int parameterIndex = 0; foreach (var parameter in parameters) { parameterArray[parameterIndex++] = new { jobId = Convert.ToInt32(jobId, CultureInfo.InvariantCulture), name = parameter.Key, value = parameter.Value }; } string insertParameterSql = string.Format(@"INSERT INTO ""{0}.JOBPARAMETER"" (jobid, name, ""VALUE"") VALUES (@jobId, @name, @value);", _options.Prefix); _connection.Execute(insertParameterSql, parameterArray); } return(jobId); }
private static int CreateExpirationEntry(FbConnection connection, FirebirdStorageOptions options, DateTime?expireAt) { string insertSqlNull = @" INSERT INTO """ + options.Prefix + @".COUNTER"" (""KEY"", ""VALUE"", expireat) VALUES ('key', 1, null) RETURNING id;"; string insertSqlValue = @" INSERT INTO """ + options.Prefix + @".COUNTER"" (""KEY"", ""VALUE"", expireat) VALUES ('key', 1, DATEADD(second, {0:N5}, " + string.Format(CultureInfo.InvariantCulture, @"DATEADD(minute, -{0:N5}*60, current_timestamp))) ", options.UtcOffset) + "RETURNING id;"; string insertSql = expireAt == null ? insertSqlNull : string.Format(insertSqlValue, ((long)(expireAt.Value - DateTime.UtcNow).TotalSeconds).ToString(CultureInfo.InvariantCulture)); var recordId = connection.ExecuteScalar <int>(insertSql); return(recordId); }