public void Add(ProsumerTradeStat prosumerInfo) { var proinfos = new ProsumerTradeStats(prosumerInfo); var last = GetLatestById(prosumerInfo.ProsumerId); int netImpact; if (last == null) { netImpact = (prosumerInfo.Producing - prosumerInfo.Consuming); } else { netImpact = (prosumerInfo.Producing - last.Producing) + (last.Consuming - prosumerInfo.Consuming); } var doc = base.Get(proinfos.Id); if (doc == null) { var recentdoc = base.GetAll().LastOrDefault(); proinfos.NetBalance = recentdoc?.NetBalance ?? 0; base.Add(proinfos); } else { doc.TradeStats.Add(prosumerInfo); doc.NetBalance += netImpact; base.Update(doc); } }
public void Post([FromBody] ProsumerTradeStat model) { _tradesRepo.Add(model); }