public void HandleCommand(string commandType, ICommand command, long commandRouteItemId) { try { ResolveCommandItem rc = _resolveCommand.Get(command); if (_incomingCommandQueueRepository.ExitOldCommand()) { _incomingCommandQueueRepository.DeleteOldCommand(); } IncomingCommandQueueItemLocal cmd = new IncomingCommandQueueItemLocal { CommandId = command.CommandId, CommandType = rc.CommandType, DateInserted = DateTime.Now, DocumentId = command.DocumentId, Processed = false, DateReceived = DateTime.Now, JsonCommand = JsonConvert.SerializeObject(command), NoOfRetry = 0 }; _incomingCommandQueueRepository.Add(cmd); _executeCommandLocally.ExecuteCommand(rc.CommandType, command); _incomingCommandQueueRepository.MarkAsProcessed(command.CommandId); _auditLogWFManager.AuditLogEntry("HandleCommand", string.Format("Command {0} Successfully Executed. Command Type {1} ", commandRouteItemId, commandType)); } catch(Exception ex) { _errorLogService.Log("IncomingCommandHander", string.Format("Command {0} Failed to Execute. Command Type {1} error {2}", commandRouteItemId, commandType,ex.Message)); UnExecutedCommandLocal log = new UnExecutedCommandLocal { Command = JsonConvert.SerializeObject(command, new IsoDateTimeConverter()), CommandType = commandType, DocumentId=command.DocumentId, Reason=ex.AllMessages()+ ex.StackTrace, }; _unExecutedCommandRepository.Save(log); } //Config config = _configService.Load(); //config.LastDeliveredCommandRouteItemId = commandRouteItemId; //_configService.Save(config); if (_incomingCommandQueueRepository.GetByCommandId(command.CommandId) != null) { _configRepository.AddDeliveredCommand(commandRouteItemId); } }
public void Add(IncomingCommandQueueItemLocal itemToAdd) { IncomingCommandQueueItemLocal existing = null; existing = _ctx.IncomingCommandQueueItemLocals.FirstOrDefault(p => p.CommandId == itemToAdd.CommandId); if (existing == null) { existing = new IncomingCommandQueueItemLocal(); _ctx.IncomingCommandQueueItemLocals.Add(itemToAdd); existing.NoOfRetry = 0; } existing.CommandId = itemToAdd.CommandId; existing.CommandType = itemToAdd.CommandType; existing.DateInserted = itemToAdd.DateInserted; existing.DateReceived = itemToAdd.DateReceived; existing.DocumentId = itemToAdd.DocumentId; existing.Processed = itemToAdd.Processed; existing.NoOfRetry = itemToAdd.NoOfRetry; _ctx.SaveChanges(); }