public async Task Store(TradeRisk tradeRisk) { Trade trade = new Trade { Category = tradeRisk.Category, Value = tradeRisk.Value, ClientSector = tradeRisk.ClientSector }; await Create(trade); }
public async Task <ActionResult> Post(List <Trade> portfolio) { try { List <RiskEvaluator> categories = await _tradeCategoriesService.GetRiskCategories(); TradeFactory factory = new TradeRiskFactory(); List <TradeRisk> tradeRisks = new List <TradeRisk>(); List <Object> invalidTrades = new List <Object>(); foreach (Trade trade in portfolio) { RiskEvaluator selectedTradeRisk = categories.Find(rules => rules.VerifyRules(trade)); if (selectedTradeRisk == null) { invalidTrades.Add(new { Value = trade.Value, ClientSector = trade.ClientSector, Message = "The category compatible with these parameters was not found." }); continue; } TradeRisk tradeRisk = factory.CreateTrade(selectedTradeRisk.Category, trade.Value, trade.ClientSector); await _tradeRiskService.Store(tradeRisk); tradeRisks.Add(tradeRisk); } _responseContext.SetResponseContext(new StoreTradesResponse(portfolio, tradeRisks, invalidTrades)); return(_responseContext.GetResponse()); } catch (Exception ex) { _responseContext.SetResponseContext(new ErrorResponse <TradesController>(_logger, ex)); return(_responseContext.GetResponse()); } }