Example #1
0
        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);
        }
Example #2
0
        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();
 *          }
 */
        }