public void Add(InComingCommandEnvelopeQueueItemLocal itemToAdd)
        {
            InComingCommandEnvelopeQueueItemLocal existing = null;

            existing = _ctx.InComingCommandEnvelopeQueueItems.FirstOrDefault(p => p.EnvelopeId == itemToAdd.EnvelopeId);
            if (existing == null)
            {
                existing = new InComingCommandEnvelopeQueueItemLocal();
                _ctx.InComingCommandEnvelopeQueueItems.Add(itemToAdd);
                existing.NoOfRetry = 0;

            }
            existing.EnvelopeId = itemToAdd.EnvelopeId;
            existing.DocumentType = itemToAdd.DocumentType;
            existing.DateInserted = itemToAdd.DateInserted;
            existing.Info = itemToAdd.Info;
            existing.DocumentId = itemToAdd.DocumentId;
            existing.Processed = itemToAdd.Processed;
            existing.NoOfRetry = itemToAdd.NoOfRetry;
            _ctx.SaveChanges();

        }
        public void HandleCommandEnvelope( CommandEnvelope envelope)
        {
            try
            {
                var envelopeToSave = new InComingCommandEnvelopeQueueItemLocal
                {
                    EnvelopeId = envelope.Id,
                    DocumentType =(DocumentType) envelope.DocumentTypeId,
                    DateInserted = DateTime.Now,
                    DocumentId = envelope.DocumentId,
                    Processed = false,
                   
                    JsonEnvelope = JsonConvert.SerializeObject(envelope),
                    NoOfRetry = 0,
                   Info = ""
                };
                _incomingCommandEnvelopeQueueRepository.Add(envelopeToSave);
                foreach (var cmdItem in envelope.CommandsList.OrderBy(s => s.Order))
                {
                    var cmd = cmdItem.Command;
                    ResolveCommandItem rc = _resolveCommand.Get(cmd);
                    _executeCommandLocally.ExecuteCommand(rc.CommandType, cmd);
                    //   _auditLogWFManager.AuditLogEntry("HandleCommand", string.Format("Command {0} Successfully Executed. Command Type {1}   ", commandRouteItemId, commandType));
                    //



                }
                _incomingCommandEnvelopeQueueRepository.MarkAsProcessed(envelope.Id);
                if (_incomingCommandEnvelopeQueueRepository.GetByEnvelopeId(envelope.Id) != null)
                {
                    _configRepository.AddDeliveredCommandEnvelopeId(envelope.Id);
                }
            }
            catch (Exception ex)
            {
                
            }
           
        }