var sales = new List<SaleReceipt>
new() { EmployeeName = "Jenifer", Total = 1009.12 },
new() { EmployeeName = "Ava", Total = 1200.11 },
new() { EmployeeName = "Jessi", Total = 1000.00 },
new() { EmployeeName = "Roger", Total = 105.10 },
new() { EmployeeName = "Jenifer", Total = 1003.12 },
new() { EmployeeName = "Jessi", Total = 100 },
var employees = new List<Employee>
new() { EmployeeName = "Jenifer", Department = Department.Sales },
new() { EmployeeName = "Jessi", Department = Department.Sales },
new() { EmployeeName = "Roger", Department = Department.Sales },
new() { EmployeeName = "Ryan", Department = Department.Finance },
new() { EmployeeName = "Daniel", Department = Department.IT },
Console.WriteLine(CreateReport(new SalesReport { ReportName = "Sales Report" }));
string CreateReport(IReport<SaleReportItem> report)
var reportAsString = new StringBuilder();
reportAsString.AppendLine($" ====================== {report.ReportName} ======================");
reportAsString.AppendLine($" | {"Name".PadRight(20)} | {"Department".PadRight(15)} | {"Total".PadRight(15)} |");
reportAsString.AppendLine($" | -------------------- | --------------- | --------------- |");
foreach (var item in report.ReportItems)
reportAsString.AppendLine($" | {item.EmployeeName.PadRight(20)} | {item.Department.ToString().PadRight(15)} | {item.Total.ToString().PadRight(15)} |");
reportAsString.AppendLine($" ==========================================================");
return reportAsString.ToString();
public string EmployeeName { get; set; } = string.Empty;
public decimal? Total { get; set; }
public string ReportName { get; set; }
public IEnumerable<SaleReportItem> ReportItems { get; set; }
public string EmployeeName { get; set; } = string.Empty;
public Department Department { get; set; }
public decimal? Total { get; set; }
public string EmployeeName { get; set; }
public Department Department { get; set; }
string ReportName { get; set; }
IEnumerable<T> ReportItems { get; set; }