internal DocumentTransaction(uint transactionId, DocumentEngine engine, DocumentMonitor monitor, bool isInternal)
 {
     TransactionId         = transactionId;
     Engine                = engine;
     Monitor               = monitor;
     Storages              = new List <DocumentStorage>();
     TypeOfContext         = new ConcurrentDictionary <string, List <DocumentContext> >(StringComparer.OrdinalIgnoreCase);
     TypeOfLock            = new List <string>();
     TypeOfTruncate        = new List <string>();
     IsInternalTransaction = isInternal;
 }
        public DocumentEngine(DocumentProvider documentProvider, DocumentOption option)
        {
            Option   = option;
            Provider = documentProvider;
            Cache    = option.CacheInstance;
            Logger   = option.DocumentLogger;
            Watcher  = option.DocumentWatcher;
            ParseOf  = option.ParserOfTypes;
            Monitor  = new DocumentMonitor();

            if (Option.SupportDocumentWatcher)
            {
                Watcher?.WaitForChanged(this);
            }
        }
 public DocumentEngine()
 {
     Monitor = new DocumentMonitor();
 }