public ReportChunk Generate(decimal feeMultiplier) { var chunkItems = Items .Select(i => new ReportChunk.ReportChunkItem() { Id = i.Id, Name = i.Name, Amount = i.Amount, Fee = CalculateFee(i.Type, i.Amount, feeMultiplier) }) .ToArray(); var chunk = new ReportChunk() { Items = chunkItems, TotalItems = chunkItems.Length, TotalAmounts = chunkItems.Sum(i => i.Amount), TotalFees = chunkItems.Sum(i => i.Fee) }; chunk.GrandTotal = chunk.TotalAmounts + chunk.TotalFees; return(chunk); }
public void Write(string username, ReportChunk chunk) => WriteCalls.Add(new WriteCall() { Username = username, Chunk = chunk });