private void HandleCompareExchangeInternal(CommandType commandType, BlittableJsonReaderObject batchResult) { if (batchResult.TryGet(nameof(ICompareExchangeValue.Key), out string key) == false) { ThrowMissingField(commandType, nameof(ICompareExchangeValue.Key)); } if (batchResult.TryGet(nameof(ICompareExchangeValue.Index), out long index) == false) { ThrowMissingField(commandType, nameof(ICompareExchangeValue.Index)); } var clusterSession = _session.GetClusterSession(); clusterSession.UpdateState(key, index); }
private void CompleteInternal <T>(QueryResult queryResult, Action <int, T> addToResult) { queryResult.Results.BlittableValidation(); if (NoTracking == false) { _session.RegisterIncludes(queryResult.Includes); } for (int i = 0; i < queryResult.Results.Length; i++) { var document = (BlittableJsonReaderObject)queryResult.Results[i]; var metadata = document.GetMetadata(); metadata.TryGetId(out var id); addToResult(i, Deserialize <T>(id, document, metadata, _fieldsToFetch, NoTracking, _session, _isProjectInto)); } if (NoTracking == false) { _session.RegisterMissingIncludes(queryResult.Results, queryResult.Includes, queryResult.IncludedPaths); if (queryResult.CounterIncludes != null) { _session.RegisterCounters( queryResult.CounterIncludes, queryResult.IncludedCounterNames); } if (queryResult.TimeSeriesIncludes != null) { _session.RegisterTimeSeries( queryResult.TimeSeriesIncludes); } if (queryResult.CompareExchangeValueIncludes != null) { _session.GetClusterSession().RegisterCompareExchangeValues(queryResult.CompareExchangeValueIncludes); } } }
private void CompleteInternal <T>(QueryResult queryResult, Action <int, T> addToResult) { queryResult.Results.BlittableValidation(); if (NoTracking == false) { _session.RegisterIncludes(queryResult.Includes); } for (int i = 0; i < queryResult.Results.Length; i++) { var document = (BlittableJsonReaderObject)queryResult.Results[i]; BlittableJsonReaderObject metadata; try { metadata = document.GetMetadata(); } catch (InvalidOperationException) { if (document.Count != _facetResultProperties.Length) { throw; } foreach (var prop in _facetResultProperties) { if (document.TryGetMember(prop.Name, out _) == false) { throw; } } throw new InvalidOperationException("Raw query with aggregation by facet should be called by " + $"{nameof(IRawDocumentQuery<T>.ExecuteAggregation)} or {nameof(IAsyncRawDocumentQuery<T>.ExecuteAggregationAsync)} method."); } metadata.TryGetId(out var id); addToResult(i, Deserialize <T>(id, document, metadata, _fieldsToFetch, NoTracking, _session, _isProjectInto)); } if (NoTracking == false) { _session.RegisterMissingIncludes(queryResult.Results, queryResult.Includes, queryResult.IncludedPaths); if (queryResult.CounterIncludes != null) { _session.RegisterCounters( queryResult.CounterIncludes, queryResult.IncludedCounterNames); } if (queryResult.TimeSeriesIncludes != null) { _session.RegisterTimeSeries( queryResult.TimeSeriesIncludes); } if (queryResult.CompareExchangeValueIncludes != null) { _session.GetClusterSession().RegisterCompareExchangeValues(queryResult.CompareExchangeValueIncludes); } if (queryResult.RevisionIncludes != null) { _session.RegisterRevisionIncludes(queryResult.RevisionIncludes); } } }