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; } }
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)); }
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); }
//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; } }
//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(); } }
public virtual bool DocumentExists(IDocumentRequest_v1 <T> documentRequest) { return(GetCollection().zCount(GetQueryDocument(documentRequest)) == 1); }
protected QueryDocument GetQueryDocument(IDocumentRequest_v1 <T> documentRequest) { return(new QueryDocument { { "_id", GetDocumentBsonKey(documentRequest) } }); }
public bool DocumentExists(IDocumentRequest_v1 <T> dataRequest) { throw new PBException("not implemented"); }