コード例 #1
0
ファイル: ProxyThread.cs プロジェクト: ZakharL/MRI
        private void HandleDeleteRequest(MongoDeleteMessage request)
        {
            _querySynchronizer.StartBlockingAction();

            try
            {
                var changes = MongoMessageHandler.GetChanges(request);
                SendRequestToServer(request);

                var checkErrorRequest = ReadClientRequest();
                if (checkErrorRequest.GetType() != typeof(MongoQueryMessage) &&
                    !MessageDataExtractor.IsHasErrorRequest(checkErrorRequest))
                {
                    //TODO: throw error. Und format
                }

                SendRequestToServer(checkErrorRequest);
                var hasErrorResponse = ReadServerResponse();

                if (!MessageDataExtractor.IsHasError(hasErrorResponse))
                {
                    MongoMessageHandler.ApplyDeleteChanges(changes);
                }

                SendResponseToClient(hasErrorResponse);
            }
            catch (Exception)
            {
                //TODO:
                throw;
            }
            finally
            {
                _querySynchronizer.StopBlockingAction();
            }
        }
コード例 #2
0
ファイル: MongoMessageHandler.cs プロジェクト: ZakharL/MRI
 public static List<ReferencePack> GetChanges(MongoDeleteMessage request)
 {
     return DataProviderFactory.GetDataProvider().Read(request.FullCollectionName, request.Document);
 }