public override string Execute(List <string> parameters) { if (parameters.Count != 2) { return(ErrorType.PARAMETER_IS_NOT_SUFFICIENT.ToString()); } CampaignContext campaignContext = new CampaignContext(); Campaign campaign = campaignContext.GetByName(parameters[1]); if (campaign == null) { return(ErrorType.CAMPAIGN_NOT_FOUND.ToString()); } OrderContext orderContext = new OrderContext(); List <Order> orders = orderContext.GetOrdersByCampaign(campaign); string statusDesc = ""; if (campaign.GetActive() == true) { statusDesc = "Not Ended"; } else { statusDesc = "Ended"; } double totalSales = orders.Sum(x => x.Quantity); double totalRevenue = orders.Sum(x => x.Price * x.Quantity); double averagePrice = totalRevenue / totalSales; double turnover = totalSales / campaign.TargetSalesCount; return($"Campaign {campaign.Name} info; Status {statusDesc}, Target Sales {campaign.TargetSalesCount},Total Sales {totalSales}, Turnover {turnover}, Average Item Price {averagePrice}"); }