BatchAdjustResponse ICommonGameActionsProvider.BatchAdjust(BatchAdjust request) { var errorCode = GameApiErrorCode.NoError; var errorDescription = (string)null; var errorsList = new ConcurrentBag <BatchCommandTransactionError>(); var txCount = 0; try { txCount = request.Transactions.Count; request.Transactions.AsParallel().ForAll(transaction => { try { AdjustTransaction(transaction, request.BatchId); } catch (Exception ex) { errorsList.Add(CreateBatchTransactionError(ex, transaction.Id, transaction.UserId)); } }); } catch (Exception ex) { errorCode = _errors.GetErrorCodeByException(ex, out errorDescription); } return(new BatchAdjustResponse { BatchId = request.BatchId, TransactionCount = txCount, BatchTimestamp = DateTimeOffset.UtcNow.ToString("O"), Errors = errorsList.ToList(), ErrorCode = errorCode, ErrorDescription = errorDescription }); }
public BatchAdjustResponse Post(BatchAdjust request) { return(GameActions.BatchAdjust(request)); }