Пример #1
0
        public virtual void LoadDocument(IDocumentRequest_v1 <T> documentRequest)
        {
            //Trace.WriteLine("MongoDocumentStore.LoadDocument key \"{0}\"", documentRequest.Key);
            if (!documentRequest.DocumentLoaded)
            {
                BsonDocument document = GetCollection().zFindOneById <BsonDocument>(GetDocumentBsonKey(documentRequest));
                if (document == null)
                {
                    throw new PBException("error mongo document not found key \"{0}\" {1}", documentRequest.Key, GetCollectionFullName());
                }

                if (_itemName != null)
                {
                    if (!document.Contains(_itemName))
                    {
                        throw new PBException("error LoadDocument : document does'nt contain element \"{0}\", key \"{1}\" {2}", _itemName, documentRequest.Key, GetCollectionFullName());
                    }
                    var element = document[_itemName];
                    if (element == null)
                    {
                        throw new PBException("error LoadDocument : element \"{0}\" is null, key \"{1}\" {2}", _itemName, documentRequest.Key, GetCollectionFullName());
                    }
                    if (!(element is BsonDocument))
                    {
                        throw new PBException("error LoadDocument : element \"{0}\" is not a document, key \"{1}\" {2}", _itemName, documentRequest.Key, GetCollectionFullName());
                    }
                    document = element as BsonDocument;
                }
                documentRequest.Document       = Deserialize(document);
                documentRequest.DocumentLoaded = true;
            }
        }
Пример #2
0
        protected BsonValue GetDocumentBsonKey(IDocumentRequest_v1 <T> documentRequest)
        {
            object key = documentRequest.Key;

            if (key == null)
            {
                throw new PBException("error key is null {0}", GetCollectionFullName());
            }
            return(BsonValue.Create(key));
        }
Пример #3
0
        public virtual void SaveDocument(IDocumentRequest_v1 <T> documentRequest)
        {
            BsonDocument document = Serialize(documentRequest.Document);

            if (_itemName != null)
            {
                document = new BsonDocument(_itemName, document);
            }

            GetCollection().zUpdate(GetQueryDocument(documentRequest), new UpdateDocument {
                { "$set", document }
            }, UpdateFlags.Upsert);
        }
Пример #4
0
 //public void LoadDocument(WebDataRequest_v2<T> dataRequest)
 public void LoadDocument(IDocumentRequest_v1 <T> dataRequest)
 {
     //if (!dataRequest.DocumentLoadedFromXml)
     if (!dataRequest.DocumentLoaded)
     {
         string file = GetFileDocument();
         if (!zFile.Exists(file))
         {
             throw new PBException("error impossible to load xml file does'nt exist \"{0}\"", file);
         }
         //////////////////////////////////////////////////////dataRequest.Data = LoadDocument(file, dataRequest.LoadImage);
         //dataRequest.DocumentLoadedFromXml = true;
         dataRequest.DocumentLoaded = true;
     }
 }
Пример #5
0
        //public void SaveDocument(WebDataRequest_v2<T> dataRequest)
        public void SaveDocument(IDocumentRequest_v1 <T> dataRequest)
        {
            string file = GetFileDocument();

            //////if (!dataRequest.ReloadFromWeb && File.Exists(file))
            //////    return;
            zfile.CreateFileDirectory(file);
            XmlWriterSettings settings = new XmlWriterSettings();

            settings.Encoding = Encoding.UTF8;
            settings.Indent   = true;
            Trace.WriteLine("save {0} to \"{1}\"", _nodeName, file);
            using (XmlWriter xw = XmlWriter.Create(file, settings))
            {
                xw.WriteStartElement(_nodeName);
                //////////////////////////////////////////////////////SaveDocument(xw, dataRequest.LoadImage);
                xw.WriteEndElement();
            }
        }
Пример #6
0
 public virtual bool DocumentExists(IDocumentRequest_v1 <T> documentRequest)
 {
     return(GetCollection().zCount(GetQueryDocument(documentRequest)) == 1);
 }
Пример #7
0
 protected QueryDocument GetQueryDocument(IDocumentRequest_v1 <T> documentRequest)
 {
     return(new QueryDocument {
         { "_id", GetDocumentBsonKey(documentRequest) }
     });
 }
Пример #8
0
 public bool DocumentExists(IDocumentRequest_v1 <T> dataRequest)
 {
     throw new PBException("not implemented");
 }