public string[] CreateSettlementStatement(int year, int[] weeks, int?truckid = null) { System.Console.WriteLine($"Creating settlements {year}/{weeks[0]} {truckid?.ToString()}"); List <string> files = new List <string>(); Task.Run(async() => { FuelChargeRepository fuelRepository = new FuelChargeRepository(year, weeks); SettlementRepository settlementRepository = new SettlementRepository(); List <SettlementHistory> settlements = await settlementRepository.GetSettlementsByWeekAsync(year, weeks); if (settlements.Count() > 0) { if (truckid != null) { settlements = FilterSettlementsByTruck(settlements, (int)truckid).ToList(); } SettlementWorkbookGenerator generator = new SettlementWorkbookGenerator(settlements, fuelRepository); foreach (string driver in GetDrivers(settlements, truckid)) { string file = generator.Generate(year, weeks, driver); files.Add(file); } } else { System.Console.WriteLine($"No settlements found for the specified {year} and {string.Join(",", weeks)}"); } } ).Wait(); return(files.ToArray()); }
private static void Setup() { var settlementRepo = new SettlementRepository(); var fuelRepo = new FuelChargeRepository(); Task.WhenAll( settlementRepo.EnsureDatabaseAsync(), fuelRepo.EnsureDatabaseAsync() ).Wait(); System.Console.WriteLine("Setup database."); }
private static void SaveFuelCharges(string file) { System.Console.WriteLine($"Saving {file} fuel charges to database."); FuelChargeRepository repository = new FuelChargeRepository(); var loadTask = repository.LoadAsync(file); Task.Run(async() => { await repository.EnsureDatabaseAsync(); await loadTask; repository.SaveAsync(repository.Charges); System.Console.WriteLine($"Saved {repository.Charges?.Count()} charge(s)."); }).Wait(); }
public SettlementWorkbookGenerator(List <SettlementHistory> settlements, FuelChargeRepository fuelRepository = null) { this._settlements = settlements; this._fuelRepository = fuelRepository; }