コード例 #1
0
        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);
            }
            

        }
コード例 #2
0
        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();


        }