コード例 #1
0
        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));
        }
コード例 #2
0
        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;
        }