private Transaction FindOrBeginTransaction(SessionName session, TransactionSelector selector) { if (selector == null) { return(BeginTransaction(session, SINGLE_USE, true)); } // TODO: Check that the selected transaction actually belongs to the given session. return(selector.SelectorCase switch { TransactionSelector.SelectorOneofCase.SingleUse => BeginTransaction(session, selector.SingleUse, true), TransactionSelector.SelectorOneofCase.Begin => BeginTransaction(session, selector.Begin, false), TransactionSelector.SelectorOneofCase.Id => TryFindTransaction(selector.Id), _ => null, });
/* * Probe to test PartitionQuery and PartitionRead grpc call from Spanner stub. * * Args: * stub: An object of SpannerStub. * metrics: A list of metrics. */ public static void partition(Spanner.SpannerClient client, ref Dictionary <string, long> metrics) { long latency; //Start Session Session session = StartSession(client); TransactionOptions txn_options = new TransactionOptions(); TransactionOptions.Types.ReadOnly ro = new TransactionOptions.Types.ReadOnly(); txn_options.ReadOnly = ro; TransactionSelector txn_selector = new TransactionSelector(); txn_selector.Begin = txn_options; //Probing PartitionQuery call PartitionQueryRequest ptn_query_request = new PartitionQueryRequest(); ptn_query_request.Session = session.Name; ptn_query_request.Sql = "select * FROM users"; ptn_query_request.Transaction = txn_selector; stopwatch.Start(); client.PartitionQuery(ptn_query_request); stopwatch.Stop(); latency = stopwatch.ElapsedMilliseconds; metrics.Add("partition_query_latency_ms", latency); //Probing PartitionRead Call PartitionReadRequest ptn_read_request = new PartitionReadRequest(); ptn_read_request.Session = session.Name; ptn_read_request.Table = "users"; ptn_read_request.Transaction = txn_selector; KeySet keyset = new KeySet(); keyset.All = true; ptn_read_request.KeySet = keyset; stopwatch.Start(); client.PartitionRead(ptn_read_request); stopwatch.Stop(); latency = stopwatch.ElapsedMilliseconds; metrics.Add("partition_read_latency_ms", latency); //Delete Session EndSession(client, session); }
public ActionResult GetAll([FromQuery] TransactionSelector seletor) { try { if (seletor.PaymentType == null) { return(Json(_mapper.Map <IEnumerable>(_transactionSevice.GetAll()))); } else { return(Json(_mapper.Map <IEnumerable>(_transactionSevice.Get(seletor)))); } } catch (Exception ex) { return(StatusCode(500, new ResponseViewModel(ex.Message))); } }
public IEnumerable <TransactionEntity> Get(TransactionSelector selector) { return(_transactionRepository.Get(selector)); }