public class ReportGenerator
private readonly FileLogger _logger;
public ReportGenerator(FileLogger logger)
public void GenerateReport(Guid id, string reportType)
var usersRepository = new UsersRepository();
var user = usersRepository.Get(id);
if (user.AccountStatus == "Disabled")
_logger.LogError($"An attempt to generate report for disabled account with id {id}");
throw new Exception("Report generation for disabled account is forbidden");
string report = string.Empty;
if (reportType == "html")
report = $"<html><p>Report generated for {user.FullName}, total sum: {user.TotalSum}</p></html>";
else if (reportType == "xml")
report = $"<user><name>{user.FullName}</name><totalSum>{user.TotalSum}</totalSum></user>";
var reportsRepository = new ReportsRepository();
reportsRepository.Save(report);