added csv exports for gas and tax tab.

This commit is contained in:
DESKTOP-GENO133\IvanPlex
2024-01-09 21:41:58 -07:00
parent eac181ff20
commit 3105622d63
4 changed files with 51 additions and 3 deletions

View File

@@ -143,7 +143,8 @@ namespace CarCareTracker.Controllers
} }
return Json($"/{fileNameToExport}"); return Json($"/{fileNameToExport}");
} }
} else if (mode == ImportMode.RepairRecord) }
else if (mode == ImportMode.RepairRecord)
{ {
var fileNameToExport = $"temp/{Guid.NewGuid()}.csv"; var fileNameToExport = $"temp/{Guid.NewGuid()}.csv";
var fullExportFilePath = _fileHelper.GetFullFilePath(fileNameToExport, false); var fullExportFilePath = _fileHelper.GetFullFilePath(fileNameToExport, false);
@@ -160,7 +161,8 @@ namespace CarCareTracker.Controllers
} }
return Json($"/{fileNameToExport}"); return Json($"/{fileNameToExport}");
} }
} else if (mode == ImportMode.UpgradeRecord) }
else if (mode == ImportMode.UpgradeRecord)
{ {
var fileNameToExport = $"temp/{Guid.NewGuid()}.csv"; var fileNameToExport = $"temp/{Guid.NewGuid()}.csv";
var fullExportFilePath = _fileHelper.GetFullFilePath(fileNameToExport, false); var fullExportFilePath = _fileHelper.GetFullFilePath(fileNameToExport, false);
@@ -178,6 +180,42 @@ namespace CarCareTracker.Controllers
return Json($"/{fileNameToExport}"); return Json($"/{fileNameToExport}");
} }
} }
else if (mode == ImportMode.TaxRecord) {
var fileNameToExport = $"temp/{Guid.NewGuid()}.csv";
var fullExportFilePath = _fileHelper.GetFullFilePath(fileNameToExport, false);
var vehicleRecords = _taxRecordDataAccess.GetTaxRecordsByVehicleId(vehicleId);
if (vehicleRecords.Any())
{
var exportData = vehicleRecords.Select(x => new TaxRecordExportModel { Date = x.Date.ToShortDateString(), Description = x.Description, Cost = x.Cost.ToString("C"), Notes = x.Notes });
using (var writer = new StreamWriter(fullExportFilePath))
{
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
csv.WriteRecords(exportData);
}
}
return Json($"/{fileNameToExport}");
}
}
else if (mode == ImportMode.GasRecord)
{
var fileNameToExport = $"temp/{Guid.NewGuid()}.csv";
var fullExportFilePath = _fileHelper.GetFullFilePath(fileNameToExport, false);
var vehicleRecords = _gasRecordDataAccess.GetGasRecordsByVehicleId(vehicleId);
bool useMPG = bool.Parse(_config[nameof(UserConfig.UseMPG)]);
bool useUKMPG = bool.Parse(_config[nameof(UserConfig.UseUKMPG)]);
vehicleRecords = vehicleRecords.OrderBy(x => x.Date).ThenBy(x => x.Mileage).ToList();
var convertedRecords = _gasHelper.GetGasRecordViewModels(vehicleRecords, useMPG, useUKMPG);
var exportData = convertedRecords.Select(x => new GasRecordExportModel { Date = x.Date.ToString(), Cost = x.Cost.ToString(), FuelConsumed = x.Gallons.ToString(), FuelEconomy = x.MilesPerGallon.ToString(), Odometer = x.Mileage.ToString() });
using (var writer = new StreamWriter(fullExportFilePath))
{
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
csv.WriteRecords(exportData);
}
}
return Json($"/{fileNameToExport}");
}
return Json(false); return Json(false);
} }
[HttpPost] [HttpPost]

View File

@@ -23,6 +23,14 @@
public string Notes { get; set; } public string Notes { get; set; }
public string Cost { get; set; } public string Cost { get; set; }
} }
public class TaxRecordExportModel
{
public string Date { get; set; }
public string Odometer { get; set; }
public string Description { get; set; }
public string Notes { get; set; }
public string Cost { get; set; }
}
public class GasRecordExportModel public class GasRecordExportModel
{ {
public string Date { get; set; } public string Date { get; set; }

View File

@@ -52,6 +52,7 @@
</button> </button>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<li><a class="dropdown-item" href="#" onclick="showBulkImportModal('GasRecord')">Import via CSV</a></li> <li><a class="dropdown-item" href="#" onclick="showBulkImportModal('GasRecord')">Import via CSV</a></li>
<li><a class="dropdown-item" href="#" onclick="exportVehicleData('GasRecord')">Export to CSV</a></li>
</ul> </ul>
</div> </div>
} else { } else {

View File

@@ -19,7 +19,8 @@
<span class="visually-hidden">Toggle Dropdown</span> <span class="visually-hidden">Toggle Dropdown</span>
</button> </button>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<li><a class="dropdown-item" href="#" onclick="showBulkImportModal('taxrecord')">Import via CSV</a></li> <li><a class="dropdown-item" href="#" onclick="showBulkImportModal('TaxRecord')">Import via CSV</a></li>
<li><a class="dropdown-item" href="#" onclick="exportVehicleData('TaxRecord')">Export to CSV</a></li>
</ul> </ul>
</div> </div>
} }