private T ReadAndDeleteCommandFromTable() { var cmdQueueMap = new CommandQueueMap(null); var rec = cmdQueueMap.Load().FirstOrDefault(); if (rec == null) { return(null); } var fields = DeserialiseFields(rec.TemplateFields); var command = new T { TemplateName = rec.TemplateName, TemplateFieldValues = fields }; cmdQueueMap.Delete(rec); /* * T command; * using (var cmd = Connection.CreateCommand()) * { * cmd.CommandText = * @"SELECT TOP 1 Id, TemplateName] * ,[TemplateFields] * FROM [CommandQueues].[dbo].[CommandQueue] * WHERE [CommandType] = @CommandType * ORDER BY [TimeQueued]"; * cmd.Parameters.Add(new SqlParameter("CommandType", GetCommandName())); * * Guid id; * using (var reader = cmd.ExecuteReader()) * { * reader.Read(); * var templateFields = reader["TemplateFields"].ToString(); * var templateName = reader["TemplateName"].ToString().Trim(); * * var fields = DeserialiseFields(templateFields); * * command = new T {TemplateName = templateName, TemplateFieldValues = fields}; * id = (Guid) reader["Id"]; * } * * DeleteCommandFromQueueTable(id); * } */ return(command); }
private void InsertCommandIntoQueueTable(T command, string fields) { if (command == null) { throw new ArgumentNullException("command"); } if (string.IsNullOrWhiteSpace(fields)) { throw new ArgumentNullException("fields"); } var rec = new CommandQueueRec { Id = Guid.NewGuid(), TimeQueued = DateTime.UtcNow, TemplateName = command.TemplateName, TemplateFields = fields }; var cmdQueueMap = new CommandQueueMap(null); cmdQueueMap.Insert(rec); /* * using (var cmd = Connection.CreateCommand()) * { * cmd.CommandText = "INSERT INTO command_queue(id, time_queued command_type, template_name, template_fields) VALUES (@Id ,@TimeQueued, @CommandType, @TemplateName, @TemplateFields)"; * cmd.Parameters.Add(new SqlParameter("Id", Guid.NewGuid())); * cmd.Parameters.Add(new SqlParameter("TimeQueued", DateTime.Now)); * cmd.Parameters.Add(new SqlParameter("CommandType", GetCommandName())); * cmd.Parameters.Add(new SqlParameter("TemplateName", command.TemplateName)); * cmd.Parameters.Add(new SqlParameter("TemplateFields", fields)); * cmd.ExecuteNonQuery(); * } */ }