private T GetDocument <T>(string id) { if (id == null) { return(default(T)); } if (_session.IsDeleted(id)) { return(default(T)); } DocumentInfo doc; if (_session.DocumentsById.TryGetValue(id, out doc)) { return(_session.TrackEntity <T>(doc)); } if (_session.IncludedDocumentsById.TryGetValue(id, out doc)) { return(_session.TrackEntity <T>(doc)); } return(default(T)); }
public void HandleResponse(GetResponse response) { var getDocumentResult = JsonDeserializationClient.GetDocumentsResult((BlittableJsonReaderObject)response.Result); var finalResults = new Dictionary <string, T>(StringComparer.OrdinalIgnoreCase); foreach (BlittableJsonReaderObject document in getDocumentResult.Results) { var newDocumentInfo = DocumentInfo.GetNewDocumentInfo(document); _sessionOperations.DocumentsById.Add(newDocumentInfo); if (newDocumentInfo.Id == null) { continue; // is this possible? } if (_sessionOperations.IsDeleted(newDocumentInfo.Id)) { finalResults[newDocumentInfo.Id] = default(T); continue; } DocumentInfo doc; if (_sessionOperations.DocumentsById.TryGetValue(newDocumentInfo.Id, out doc)) { finalResults[newDocumentInfo.Id] = _sessionOperations.TrackEntity <T>(doc); continue; } finalResults[newDocumentInfo.Id] = default(T); } Result = finalResults; }