public async Task <OperationUpdateList> GetOperationsHistory(GetOperationsRequest request) { var data = _reader .Get(OperationHistoryNoSqlEntity.GeneratePartitionKey(request.WalletId, request.AssetId)) .Where(e => e.Entity.TimeStamp < request.LastDate) .Take(request.BatchSize) .Select(t => t.Entity) .OrderByDescending(e => e.TimeStamp) .ToList(); var cacheSize = _reader .Get(OperationHistoryNoSqlEntity.GeneratePartitionKey(request.WalletId, request.AssetId)).Count; if (data.Count == request.BatchSize || (cacheSize < _maxCachedEntities && cacheSize > 0)) { return new OperationUpdateList() { OperationUpdates = data } } ; return(await _operationHistoryService.GetBalanceUpdatesAsync(request)); } }
public override async Task <GetOperationsResponse> GetOperations(GetOperationsRequest request, ServerCallContext context) { var operationNames = await _ServiceQuery.GetOperation(request.Service, context.CancellationToken); GetOperationsResponse response = new GetOperationsResponse(); response.OperationNames.Add(operationNames.Distinct().ToArray()); return(response); }
public GetOperationsResponse GetOperations(GetOperationsRequest request) { int totalRecords; var operationConfigs = DataContext.KeyOperationConfigs .Include(x => x.KeyOperationGroup) .Include(x => x.Kpi) .Include(x => x.Kpi.Measurement) .ToList().Select(x => new KeyOperationConfig() { Desc = x.Desc, Id = x.Id, IsActive = x.IsActive, KeyOperationGroup = x.KeyOperationGroup ?? new KeyOperationGroup(), Kpi = x.Kpi ?? new Kpi(), Order = x.Order }).ToList(); var result = AddEconomicKpi(operationConfigs); var data = SortData(request.Search, request.SortingDictionary, out totalRecords, result); return(new GetOperationsResponse { TotalRecords = totalRecords, Operations = data.MapTo <GetOperationsResponse.Operation>() }); //if (request.OnlyCount) //{ // return new GetOperationsResponse { Count = DataContext.KeyOperationConfigs.Count() }; //} //else //{ // return new GetOperationsResponse // { // Operations = DataContext.KeyOperationConfigs.OrderByDescending(x => x.Id) // .Include(x => x.KeyOperationGroup).Skip(request.Skip).Take(request.Take).ToList().MapTo<GetOperationsResponse.Operation>() // }; //} }
public override Task <GetOperationsResponse> GetOperations(GetOperationsRequest request, ServerCallContext context) { return(base.GetOperations(request, context)); }
public async Task <OperationUpdateList> GetBalanceUpdatesAsync(GetOperationsRequest request) { try { using var activity = MyTelemetry.StartActivity($"Use DB context {DatabaseContext.Schema}") ?.AddTag("db-schema", DatabaseContext.Schema); await using var ctx = DatabaseContext.Create(_dbContextOptionsBuilder); var query = string.IsNullOrWhiteSpace(request.WalletId) ? ctx.OperationHistory : ctx.OperationHistory.Where(e => e.WalletId == request.WalletId); if (!string.IsNullOrEmpty(request.AssetId)) { query = query.Where(e => e.AssetId == request.AssetId); } if (!request.ShowServiceTypes) { query = query.Where(e => e.OperationType != OperationTypes.Unknown); } query = query .Where(e => e.TimeStamp < request.LastDate) .OrderByDescending(e => e.TimeStamp) .Take(request.BatchSize); var list = await query.ToListAsync(); var resp = new OperationUpdateList() { OperationUpdates = new List <OperationUpdate>() }; resp.OperationUpdates.AddRange(list.Select(e => new OperationUpdate(e))); if (Program.Settings.ShowSimplexAsDeposits) { foreach (var update in resp.OperationUpdates.Where(update => update.OperationType == OperationTypes.SimplexBuy)) { update.OperationType = OperationTypes.Deposit; } } if (Program.Settings.ShowRecurringBuysAsSwaps) { foreach (var update in resp.OperationUpdates.Where(update => update.OperationType == OperationTypes.RecurringBuy)) { update.OperationType = OperationTypes.Swap; } } //await _cacheManager.InitializeCacheForWalletAndAssetAsync(request.WalletId, request.AssetId); return(resp); } catch (Exception e) { _logger.LogError(e, "Cannot get OperationUpdate for walletId: {walletId}, batch: {batch}, lastDate: {lastDate}", request.WalletId, request.BatchSize, request.LastDate); e.WriteToActivity(); request.AddToActivityAsJsonTag("request"); throw; } }