mirror of
https://github.com/hargata/lubelog.git
synced 2025-12-11 04:37:03 -06:00
Allow extra fields to be added via API
This commit is contained in:
parent
f31b70a6dc
commit
b89902bbdb
@ -113,13 +113,13 @@ namespace CarCareTracker.Controllers
|
|||||||
return Json(response);
|
return Json(response);
|
||||||
}
|
}
|
||||||
var vehicleRecords = _serviceRecordDataAccess.GetServiceRecordsByVehicleId(vehicleId);
|
var vehicleRecords = _serviceRecordDataAccess.GetServiceRecordsByVehicleId(vehicleId);
|
||||||
var result = vehicleRecords.Select(x => new ServiceRecordExportModel { Date = x.Date.ToShortDateString(), Description = x.Description, Cost = x.Cost.ToString(), Notes = x.Notes, Odometer = x.Mileage.ToString() });
|
var result = vehicleRecords.Select(x => new GenericRecordExportModel { Date = x.Date.ToShortDateString(), Description = x.Description, Cost = x.Cost.ToString(), Notes = x.Notes, Odometer = x.Mileage.ToString(), ExtraFields = x.ExtraFields });
|
||||||
return Json(result);
|
return Json(result);
|
||||||
}
|
}
|
||||||
[TypeFilter(typeof(CollaboratorFilter))]
|
[TypeFilter(typeof(CollaboratorFilter))]
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
[Route("/api/vehicle/servicerecords/add")]
|
[Route("/api/vehicle/servicerecords/add")]
|
||||||
public IActionResult AddServiceRecord(int vehicleId, ServiceRecordExportModel input)
|
public IActionResult AddServiceRecord(int vehicleId, GenericRecordExportModel input)
|
||||||
{
|
{
|
||||||
var response = new OperationResponse();
|
var response = new OperationResponse();
|
||||||
if (vehicleId == default)
|
if (vehicleId == default)
|
||||||
@ -148,7 +148,8 @@ namespace CarCareTracker.Controllers
|
|||||||
Mileage = int.Parse(input.Odometer),
|
Mileage = int.Parse(input.Odometer),
|
||||||
Description = input.Description,
|
Description = input.Description,
|
||||||
Notes = string.IsNullOrWhiteSpace(input.Notes) ? "" : input.Notes,
|
Notes = string.IsNullOrWhiteSpace(input.Notes) ? "" : input.Notes,
|
||||||
Cost = decimal.Parse(input.Cost)
|
Cost = decimal.Parse(input.Cost),
|
||||||
|
ExtraFields = input.ExtraFields
|
||||||
};
|
};
|
||||||
_serviceRecordDataAccess.SaveServiceRecordToVehicle(serviceRecord);
|
_serviceRecordDataAccess.SaveServiceRecordToVehicle(serviceRecord);
|
||||||
if (_config.GetUserConfig(User).EnableAutoOdometerInsert)
|
if (_config.GetUserConfig(User).EnableAutoOdometerInsert)
|
||||||
@ -189,13 +190,13 @@ namespace CarCareTracker.Controllers
|
|||||||
return Json(response);
|
return Json(response);
|
||||||
}
|
}
|
||||||
var vehicleRecords = _collisionRecordDataAccess.GetCollisionRecordsByVehicleId(vehicleId);
|
var vehicleRecords = _collisionRecordDataAccess.GetCollisionRecordsByVehicleId(vehicleId);
|
||||||
var result = vehicleRecords.Select(x => new ServiceRecordExportModel { Date = x.Date.ToShortDateString(), Description = x.Description, Cost = x.Cost.ToString(), Notes = x.Notes, Odometer = x.Mileage.ToString() });
|
var result = vehicleRecords.Select(x => new GenericRecordExportModel { Date = x.Date.ToShortDateString(), Description = x.Description, Cost = x.Cost.ToString(), Notes = x.Notes, Odometer = x.Mileage.ToString(), ExtraFields = x.ExtraFields });
|
||||||
return Json(result);
|
return Json(result);
|
||||||
}
|
}
|
||||||
[TypeFilter(typeof(CollaboratorFilter))]
|
[TypeFilter(typeof(CollaboratorFilter))]
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
[Route("/api/vehicle/repairrecords/add")]
|
[Route("/api/vehicle/repairrecords/add")]
|
||||||
public IActionResult AddRepairRecord(int vehicleId, ServiceRecordExportModel input)
|
public IActionResult AddRepairRecord(int vehicleId, GenericRecordExportModel input)
|
||||||
{
|
{
|
||||||
var response = new OperationResponse();
|
var response = new OperationResponse();
|
||||||
if (vehicleId == default)
|
if (vehicleId == default)
|
||||||
@ -224,7 +225,8 @@ namespace CarCareTracker.Controllers
|
|||||||
Mileage = int.Parse(input.Odometer),
|
Mileage = int.Parse(input.Odometer),
|
||||||
Description = input.Description,
|
Description = input.Description,
|
||||||
Notes = string.IsNullOrWhiteSpace(input.Notes) ? "" : input.Notes,
|
Notes = string.IsNullOrWhiteSpace(input.Notes) ? "" : input.Notes,
|
||||||
Cost = decimal.Parse(input.Cost)
|
Cost = decimal.Parse(input.Cost),
|
||||||
|
ExtraFields = input.ExtraFields
|
||||||
};
|
};
|
||||||
_collisionRecordDataAccess.SaveCollisionRecordToVehicle(repairRecord);
|
_collisionRecordDataAccess.SaveCollisionRecordToVehicle(repairRecord);
|
||||||
if (_config.GetUserConfig(User).EnableAutoOdometerInsert)
|
if (_config.GetUserConfig(User).EnableAutoOdometerInsert)
|
||||||
@ -265,13 +267,13 @@ namespace CarCareTracker.Controllers
|
|||||||
return Json(response);
|
return Json(response);
|
||||||
}
|
}
|
||||||
var vehicleRecords = _upgradeRecordDataAccess.GetUpgradeRecordsByVehicleId(vehicleId);
|
var vehicleRecords = _upgradeRecordDataAccess.GetUpgradeRecordsByVehicleId(vehicleId);
|
||||||
var result = vehicleRecords.Select(x => new ServiceRecordExportModel { Date = x.Date.ToShortDateString(), Description = x.Description, Cost = x.Cost.ToString(), Notes = x.Notes, Odometer = x.Mileage.ToString() });
|
var result = vehicleRecords.Select(x => new GenericRecordExportModel { Date = x.Date.ToShortDateString(), Description = x.Description, Cost = x.Cost.ToString(), Notes = x.Notes, Odometer = x.Mileage.ToString(), ExtraFields = x.ExtraFields });
|
||||||
return Json(result);
|
return Json(result);
|
||||||
}
|
}
|
||||||
[TypeFilter(typeof(CollaboratorFilter))]
|
[TypeFilter(typeof(CollaboratorFilter))]
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
[Route("/api/vehicle/upgraderecords/add")]
|
[Route("/api/vehicle/upgraderecords/add")]
|
||||||
public IActionResult AddUpgradeRecord(int vehicleId, ServiceRecordExportModel input)
|
public IActionResult AddUpgradeRecord(int vehicleId, GenericRecordExportModel input)
|
||||||
{
|
{
|
||||||
var response = new OperationResponse();
|
var response = new OperationResponse();
|
||||||
if (vehicleId == default)
|
if (vehicleId == default)
|
||||||
@ -300,7 +302,8 @@ namespace CarCareTracker.Controllers
|
|||||||
Mileage = int.Parse(input.Odometer),
|
Mileage = int.Parse(input.Odometer),
|
||||||
Description = input.Description,
|
Description = input.Description,
|
||||||
Notes = string.IsNullOrWhiteSpace(input.Notes) ? "" : input.Notes,
|
Notes = string.IsNullOrWhiteSpace(input.Notes) ? "" : input.Notes,
|
||||||
Cost = decimal.Parse(input.Cost)
|
Cost = decimal.Parse(input.Cost),
|
||||||
|
ExtraFields = input.ExtraFields
|
||||||
};
|
};
|
||||||
_upgradeRecordDataAccess.SaveUpgradeRecordToVehicle(upgradeRecord);
|
_upgradeRecordDataAccess.SaveUpgradeRecordToVehicle(upgradeRecord);
|
||||||
if (_config.GetUserConfig(User).EnableAutoOdometerInsert)
|
if (_config.GetUserConfig(User).EnableAutoOdometerInsert)
|
||||||
@ -340,7 +343,7 @@ namespace CarCareTracker.Controllers
|
|||||||
Response.StatusCode = 400;
|
Response.StatusCode = 400;
|
||||||
return Json(response);
|
return Json(response);
|
||||||
}
|
}
|
||||||
var result = _taxRecordDataAccess.GetTaxRecordsByVehicleId(vehicleId);
|
var result = _taxRecordDataAccess.GetTaxRecordsByVehicleId(vehicleId).Select(x => new TaxRecordExportModel { Date = x.Date.ToShortDateString(), Description = x.Description, Cost = x.Cost.ToString(), Notes = x.Notes, ExtraFields = x.ExtraFields });
|
||||||
return Json(result);
|
return Json(result);
|
||||||
}
|
}
|
||||||
[TypeFilter(typeof(CollaboratorFilter))]
|
[TypeFilter(typeof(CollaboratorFilter))]
|
||||||
@ -373,7 +376,8 @@ namespace CarCareTracker.Controllers
|
|||||||
Date = DateTime.Parse(input.Date),
|
Date = DateTime.Parse(input.Date),
|
||||||
Description = input.Description,
|
Description = input.Description,
|
||||||
Notes = string.IsNullOrWhiteSpace(input.Notes) ? "" : input.Notes,
|
Notes = string.IsNullOrWhiteSpace(input.Notes) ? "" : input.Notes,
|
||||||
Cost = decimal.Parse(input.Cost)
|
Cost = decimal.Parse(input.Cost),
|
||||||
|
ExtraFields = input.ExtraFields
|
||||||
};
|
};
|
||||||
_taxRecordDataAccess.SaveTaxRecordToVehicle(taxRecord);
|
_taxRecordDataAccess.SaveTaxRecordToVehicle(taxRecord);
|
||||||
StaticHelper.NotifyAsync(_config.GetWebHookUrl(), vehicleId, User.Identity.Name, $"Added Tax Record via API - Description: {taxRecord.Description}");
|
StaticHelper.NotifyAsync(_config.GetWebHookUrl(), vehicleId, User.Identity.Name, $"Added Tax Record via API - Description: {taxRecord.Description}");
|
||||||
@ -424,7 +428,7 @@ namespace CarCareTracker.Controllers
|
|||||||
{
|
{
|
||||||
vehicleRecords = _odometerLogic.AutoConvertOdometerRecord(vehicleRecords);
|
vehicleRecords = _odometerLogic.AutoConvertOdometerRecord(vehicleRecords);
|
||||||
}
|
}
|
||||||
var result = vehicleRecords.Select(x => new OdometerRecordExportModel { Date = x.Date.ToShortDateString(), InitialOdometer = x.InitialMileage.ToString(), Odometer = x.Mileage.ToString(), Notes = x.Notes });
|
var result = vehicleRecords.Select(x => new OdometerRecordExportModel { Date = x.Date.ToShortDateString(), InitialOdometer = x.InitialMileage.ToString(), Odometer = x.Mileage.ToString(), Notes = x.Notes, ExtraFields = x.ExtraFields });
|
||||||
return Json(result);
|
return Json(result);
|
||||||
}
|
}
|
||||||
[TypeFilter(typeof(CollaboratorFilter))]
|
[TypeFilter(typeof(CollaboratorFilter))]
|
||||||
@ -456,7 +460,8 @@ namespace CarCareTracker.Controllers
|
|||||||
Date = DateTime.Parse(input.Date),
|
Date = DateTime.Parse(input.Date),
|
||||||
Notes = string.IsNullOrWhiteSpace(input.Notes) ? "" : input.Notes,
|
Notes = string.IsNullOrWhiteSpace(input.Notes) ? "" : input.Notes,
|
||||||
InitialMileage = (string.IsNullOrWhiteSpace(input.InitialOdometer) || int.Parse(input.InitialOdometer) == default) ? _odometerLogic.GetLastOdometerRecordMileage(vehicleId, new List<OdometerRecord>()) : int.Parse(input.InitialOdometer),
|
InitialMileage = (string.IsNullOrWhiteSpace(input.InitialOdometer) || int.Parse(input.InitialOdometer) == default) ? _odometerLogic.GetLastOdometerRecordMileage(vehicleId, new List<OdometerRecord>()) : int.Parse(input.InitialOdometer),
|
||||||
Mileage = int.Parse(input.Odometer)
|
Mileage = int.Parse(input.Odometer),
|
||||||
|
ExtraFields = input.ExtraFields
|
||||||
};
|
};
|
||||||
_odometerRecordDataAccess.SaveOdometerRecordToVehicle(odometerRecord);
|
_odometerRecordDataAccess.SaveOdometerRecordToVehicle(odometerRecord);
|
||||||
StaticHelper.NotifyAsync(_config.GetWebHookUrl(), vehicleId, User.Identity.Name, $"Added Odometer Record via API - Mileage: {odometerRecord.Mileage.ToString()}");
|
StaticHelper.NotifyAsync(_config.GetWebHookUrl(), vehicleId, User.Identity.Name, $"Added Odometer Record via API - Mileage: {odometerRecord.Mileage.ToString()}");
|
||||||
@ -494,7 +499,8 @@ namespace CarCareTracker.Controllers
|
|||||||
FuelEconomy = x.MilesPerGallon.ToString(),
|
FuelEconomy = x.MilesPerGallon.ToString(),
|
||||||
IsFillToFull = x.IsFillToFull.ToString(),
|
IsFillToFull = x.IsFillToFull.ToString(),
|
||||||
MissedFuelUp = x.MissedFuelUp.ToString(),
|
MissedFuelUp = x.MissedFuelUp.ToString(),
|
||||||
Notes = x.Notes
|
Notes = x.Notes,
|
||||||
|
ExtraFields = x.ExtraFields
|
||||||
});
|
});
|
||||||
return Json(result);
|
return Json(result);
|
||||||
}
|
}
|
||||||
@ -535,7 +541,8 @@ namespace CarCareTracker.Controllers
|
|||||||
IsFillToFull = bool.Parse(input.IsFillToFull),
|
IsFillToFull = bool.Parse(input.IsFillToFull),
|
||||||
MissedFuelUp = bool.Parse(input.MissedFuelUp),
|
MissedFuelUp = bool.Parse(input.MissedFuelUp),
|
||||||
Notes = string.IsNullOrWhiteSpace(input.Notes) ? "" : input.Notes,
|
Notes = string.IsNullOrWhiteSpace(input.Notes) ? "" : input.Notes,
|
||||||
Cost = decimal.Parse(input.Cost)
|
Cost = decimal.Parse(input.Cost),
|
||||||
|
ExtraFields = input.ExtraFields
|
||||||
};
|
};
|
||||||
_gasRecordDataAccess.SaveGasRecordToVehicle(gasRecord);
|
_gasRecordDataAccess.SaveGasRecordToVehicle(gasRecord);
|
||||||
if (_config.GetUserConfig(User).EnableAutoOdometerInsert)
|
if (_config.GetUserConfig(User).EnableAutoOdometerInsert)
|
||||||
|
|||||||
@ -300,7 +300,7 @@ namespace CarCareTracker.Controllers
|
|||||||
var vehicleRecords = _odometerRecordDataAccess.GetOdometerRecordsByVehicleId(vehicleId);
|
var vehicleRecords = _odometerRecordDataAccess.GetOdometerRecordsByVehicleId(vehicleId);
|
||||||
if (vehicleRecords.Any())
|
if (vehicleRecords.Any())
|
||||||
{
|
{
|
||||||
var exportData = vehicleRecords.Select(x => new OdometerRecordCsvExportModel {
|
var exportData = vehicleRecords.Select(x => new OdometerRecordExportModel {
|
||||||
Date = x.Date.ToShortDateString(),
|
Date = x.Date.ToShortDateString(),
|
||||||
Notes = x.Notes,
|
Notes = x.Notes,
|
||||||
InitialOdometer = x.InitialMileage.ToString(),
|
InitialOdometer = x.InitialMileage.ToString(),
|
||||||
@ -323,7 +323,7 @@ namespace CarCareTracker.Controllers
|
|||||||
var vehicleRecords = _supplyRecordDataAccess.GetSupplyRecordsByVehicleId(vehicleId);
|
var vehicleRecords = _supplyRecordDataAccess.GetSupplyRecordsByVehicleId(vehicleId);
|
||||||
if (vehicleRecords.Any())
|
if (vehicleRecords.Any())
|
||||||
{
|
{
|
||||||
var exportData = vehicleRecords.Select(x => new SupplyRecordCsvExportModel
|
var exportData = vehicleRecords.Select(x => new SupplyRecordExportModel
|
||||||
{
|
{
|
||||||
Date = x.Date.ToShortDateString(),
|
Date = x.Date.ToShortDateString(),
|
||||||
Description = x.Description,
|
Description = x.Description,
|
||||||
@ -350,7 +350,7 @@ namespace CarCareTracker.Controllers
|
|||||||
var vehicleRecords = _taxRecordDataAccess.GetTaxRecordsByVehicleId(vehicleId);
|
var vehicleRecords = _taxRecordDataAccess.GetTaxRecordsByVehicleId(vehicleId);
|
||||||
if (vehicleRecords.Any())
|
if (vehicleRecords.Any())
|
||||||
{
|
{
|
||||||
var exportData = vehicleRecords.Select(x => new TaxRecordCsvExportModel {
|
var exportData = vehicleRecords.Select(x => new TaxRecordExportModel {
|
||||||
Date = x.Date.ToShortDateString(),
|
Date = x.Date.ToShortDateString(),
|
||||||
Description = x.Description,
|
Description = x.Description,
|
||||||
Cost = x.Cost.ToString("C"),
|
Cost = x.Cost.ToString("C"),
|
||||||
@ -373,7 +373,7 @@ namespace CarCareTracker.Controllers
|
|||||||
var vehicleRecords = _planRecordDataAccess.GetPlanRecordsByVehicleId(vehicleId);
|
var vehicleRecords = _planRecordDataAccess.GetPlanRecordsByVehicleId(vehicleId);
|
||||||
if (vehicleRecords.Any())
|
if (vehicleRecords.Any())
|
||||||
{
|
{
|
||||||
var exportData = vehicleRecords.Select(x => new PlanRecordCsvExportModel
|
var exportData = vehicleRecords.Select(x => new PlanRecordExportModel
|
||||||
{
|
{
|
||||||
DateCreated = x.DateCreated.ToString("G"),
|
DateCreated = x.DateCreated.ToString("G"),
|
||||||
DateModified = x.DateModified.ToString("G"),
|
DateModified = x.DateModified.ToString("G"),
|
||||||
@ -401,7 +401,7 @@ namespace CarCareTracker.Controllers
|
|||||||
bool useMPG = _config.GetUserConfig(User).UseMPG;
|
bool useMPG = _config.GetUserConfig(User).UseMPG;
|
||||||
bool useUKMPG = _config.GetUserConfig(User).UseUKMPG;
|
bool useUKMPG = _config.GetUserConfig(User).UseUKMPG;
|
||||||
var convertedRecords = _gasHelper.GetGasRecordViewModels(vehicleRecords, useMPG, useUKMPG);
|
var convertedRecords = _gasHelper.GetGasRecordViewModels(vehicleRecords, useMPG, useUKMPG);
|
||||||
var exportData = convertedRecords.Select(x => new GasRecordCsvExportModel
|
var exportData = convertedRecords.Select(x => new GasRecordExportModel
|
||||||
{
|
{
|
||||||
Date = x.Date.ToString(),
|
Date = x.Date.ToString(),
|
||||||
Cost = x.Cost.ToString(),
|
Cost = x.Cost.ToString(),
|
||||||
|
|||||||
@ -320,21 +320,21 @@ namespace CarCareTracker.Helper
|
|||||||
_csv.NextRecord();
|
_csv.NextRecord();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public static void WriteOdometerRecordExportModel(CsvWriter _csv, IEnumerable<OdometerRecordCsvExportModel> genericRecords)
|
public static void WriteOdometerRecordExportModel(CsvWriter _csv, IEnumerable<OdometerRecordExportModel> genericRecords)
|
||||||
{
|
{
|
||||||
var extraHeaders = genericRecords.SelectMany(x => x.ExtraFields).Select(y => y.Name).OrderBy(x => x).Distinct();
|
var extraHeaders = genericRecords.SelectMany(x => x.ExtraFields).Select(y => y.Name).OrderBy(x => x).Distinct();
|
||||||
//write headers
|
//write headers
|
||||||
_csv.WriteField(nameof(OdometerRecordCsvExportModel.Date));
|
_csv.WriteField(nameof(OdometerRecordExportModel.Date));
|
||||||
_csv.WriteField(nameof(OdometerRecordCsvExportModel.InitialOdometer));
|
_csv.WriteField(nameof(OdometerRecordExportModel.InitialOdometer));
|
||||||
_csv.WriteField(nameof(OdometerRecordCsvExportModel.Odometer));
|
_csv.WriteField(nameof(OdometerRecordExportModel.Odometer));
|
||||||
_csv.WriteField(nameof(OdometerRecordCsvExportModel.Notes));
|
_csv.WriteField(nameof(OdometerRecordExportModel.Notes));
|
||||||
_csv.WriteField(nameof(OdometerRecordCsvExportModel.Tags));
|
_csv.WriteField(nameof(OdometerRecordExportModel.Tags));
|
||||||
foreach (string extraHeader in extraHeaders)
|
foreach (string extraHeader in extraHeaders)
|
||||||
{
|
{
|
||||||
_csv.WriteField($"extrafield_{extraHeader}");
|
_csv.WriteField($"extrafield_{extraHeader}");
|
||||||
}
|
}
|
||||||
_csv.NextRecord();
|
_csv.NextRecord();
|
||||||
foreach (OdometerRecordCsvExportModel genericRecord in genericRecords)
|
foreach (OdometerRecordExportModel genericRecord in genericRecords)
|
||||||
{
|
{
|
||||||
_csv.WriteField(genericRecord.Date);
|
_csv.WriteField(genericRecord.Date);
|
||||||
_csv.WriteField(genericRecord.InitialOdometer);
|
_csv.WriteField(genericRecord.InitialOdometer);
|
||||||
@ -349,21 +349,21 @@ namespace CarCareTracker.Helper
|
|||||||
_csv.NextRecord();
|
_csv.NextRecord();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public static void WriteTaxRecordExportModel(CsvWriter _csv, IEnumerable<TaxRecordCsvExportModel> genericRecords)
|
public static void WriteTaxRecordExportModel(CsvWriter _csv, IEnumerable<TaxRecordExportModel> genericRecords)
|
||||||
{
|
{
|
||||||
var extraHeaders = genericRecords.SelectMany(x => x.ExtraFields).Select(y => y.Name).OrderBy(x => x).Distinct();
|
var extraHeaders = genericRecords.SelectMany(x => x.ExtraFields).Select(y => y.Name).OrderBy(x => x).Distinct();
|
||||||
//write headers
|
//write headers
|
||||||
_csv.WriteField(nameof(TaxRecordCsvExportModel.Date));
|
_csv.WriteField(nameof(TaxRecordExportModel.Date));
|
||||||
_csv.WriteField(nameof(TaxRecordCsvExportModel.Description));
|
_csv.WriteField(nameof(TaxRecordExportModel.Description));
|
||||||
_csv.WriteField(nameof(TaxRecordCsvExportModel.Cost));
|
_csv.WriteField(nameof(TaxRecordExportModel.Cost));
|
||||||
_csv.WriteField(nameof(TaxRecordCsvExportModel.Notes));
|
_csv.WriteField(nameof(TaxRecordExportModel.Notes));
|
||||||
_csv.WriteField(nameof(TaxRecordCsvExportModel.Tags));
|
_csv.WriteField(nameof(TaxRecordExportModel.Tags));
|
||||||
foreach (string extraHeader in extraHeaders)
|
foreach (string extraHeader in extraHeaders)
|
||||||
{
|
{
|
||||||
_csv.WriteField($"extrafield_{extraHeader}");
|
_csv.WriteField($"extrafield_{extraHeader}");
|
||||||
}
|
}
|
||||||
_csv.NextRecord();
|
_csv.NextRecord();
|
||||||
foreach (TaxRecordCsvExportModel genericRecord in genericRecords)
|
foreach (TaxRecordExportModel genericRecord in genericRecords)
|
||||||
{
|
{
|
||||||
_csv.WriteField(genericRecord.Date);
|
_csv.WriteField(genericRecord.Date);
|
||||||
_csv.WriteField(genericRecord.Description);
|
_csv.WriteField(genericRecord.Description);
|
||||||
@ -378,24 +378,24 @@ namespace CarCareTracker.Helper
|
|||||||
_csv.NextRecord();
|
_csv.NextRecord();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public static void WriteSupplyRecordExportModel(CsvWriter _csv, IEnumerable<SupplyRecordCsvExportModel> genericRecords)
|
public static void WriteSupplyRecordExportModel(CsvWriter _csv, IEnumerable<SupplyRecordExportModel> genericRecords)
|
||||||
{
|
{
|
||||||
var extraHeaders = genericRecords.SelectMany(x => x.ExtraFields).Select(y => y.Name).OrderBy(x => x).Distinct();
|
var extraHeaders = genericRecords.SelectMany(x => x.ExtraFields).Select(y => y.Name).OrderBy(x => x).Distinct();
|
||||||
//write headers
|
//write headers
|
||||||
_csv.WriteField(nameof(SupplyRecordCsvExportModel.Date));
|
_csv.WriteField(nameof(SupplyRecordExportModel.Date));
|
||||||
_csv.WriteField(nameof(SupplyRecordCsvExportModel.PartNumber));
|
_csv.WriteField(nameof(SupplyRecordExportModel.PartNumber));
|
||||||
_csv.WriteField(nameof(SupplyRecordCsvExportModel.PartSupplier));
|
_csv.WriteField(nameof(SupplyRecordExportModel.PartSupplier));
|
||||||
_csv.WriteField(nameof(SupplyRecordCsvExportModel.PartQuantity));
|
_csv.WriteField(nameof(SupplyRecordExportModel.PartQuantity));
|
||||||
_csv.WriteField(nameof(SupplyRecordCsvExportModel.Description));
|
_csv.WriteField(nameof(SupplyRecordExportModel.Description));
|
||||||
_csv.WriteField(nameof(SupplyRecordCsvExportModel.Notes));
|
_csv.WriteField(nameof(SupplyRecordExportModel.Notes));
|
||||||
_csv.WriteField(nameof(SupplyRecordCsvExportModel.Cost));
|
_csv.WriteField(nameof(SupplyRecordExportModel.Cost));
|
||||||
_csv.WriteField(nameof(SupplyRecordCsvExportModel.Tags));
|
_csv.WriteField(nameof(SupplyRecordExportModel.Tags));
|
||||||
foreach (string extraHeader in extraHeaders)
|
foreach (string extraHeader in extraHeaders)
|
||||||
{
|
{
|
||||||
_csv.WriteField($"extrafield_{extraHeader}");
|
_csv.WriteField($"extrafield_{extraHeader}");
|
||||||
}
|
}
|
||||||
_csv.NextRecord();
|
_csv.NextRecord();
|
||||||
foreach (SupplyRecordCsvExportModel genericRecord in genericRecords)
|
foreach (SupplyRecordExportModel genericRecord in genericRecords)
|
||||||
{
|
{
|
||||||
_csv.WriteField(genericRecord.Date);
|
_csv.WriteField(genericRecord.Date);
|
||||||
_csv.WriteField(genericRecord.PartNumber);
|
_csv.WriteField(genericRecord.PartNumber);
|
||||||
@ -413,24 +413,24 @@ namespace CarCareTracker.Helper
|
|||||||
_csv.NextRecord();
|
_csv.NextRecord();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public static void WritePlanRecordExportModel(CsvWriter _csv, IEnumerable<PlanRecordCsvExportModel> genericRecords)
|
public static void WritePlanRecordExportModel(CsvWriter _csv, IEnumerable<PlanRecordExportModel> genericRecords)
|
||||||
{
|
{
|
||||||
var extraHeaders = genericRecords.SelectMany(x => x.ExtraFields).Select(y => y.Name).OrderBy(x => x).Distinct();
|
var extraHeaders = genericRecords.SelectMany(x => x.ExtraFields).Select(y => y.Name).OrderBy(x => x).Distinct();
|
||||||
//write headers
|
//write headers
|
||||||
_csv.WriteField(nameof(PlanRecordCsvExportModel.DateCreated));
|
_csv.WriteField(nameof(PlanRecordExportModel.DateCreated));
|
||||||
_csv.WriteField(nameof(PlanRecordCsvExportModel.DateModified));
|
_csv.WriteField(nameof(PlanRecordExportModel.DateModified));
|
||||||
_csv.WriteField(nameof(PlanRecordCsvExportModel.Description));
|
_csv.WriteField(nameof(PlanRecordExportModel.Description));
|
||||||
_csv.WriteField(nameof(PlanRecordCsvExportModel.Notes));
|
_csv.WriteField(nameof(PlanRecordExportModel.Notes));
|
||||||
_csv.WriteField(nameof(PlanRecordCsvExportModel.Type));
|
_csv.WriteField(nameof(PlanRecordExportModel.Type));
|
||||||
_csv.WriteField(nameof(PlanRecordCsvExportModel.Priority));
|
_csv.WriteField(nameof(PlanRecordExportModel.Priority));
|
||||||
_csv.WriteField(nameof(PlanRecordCsvExportModel.Progress));
|
_csv.WriteField(nameof(PlanRecordExportModel.Progress));
|
||||||
_csv.WriteField(nameof(PlanRecordCsvExportModel.Cost));
|
_csv.WriteField(nameof(PlanRecordExportModel.Cost));
|
||||||
foreach (string extraHeader in extraHeaders)
|
foreach (string extraHeader in extraHeaders)
|
||||||
{
|
{
|
||||||
_csv.WriteField($"extrafield_{extraHeader}");
|
_csv.WriteField($"extrafield_{extraHeader}");
|
||||||
}
|
}
|
||||||
_csv.NextRecord();
|
_csv.NextRecord();
|
||||||
foreach (PlanRecordCsvExportModel genericRecord in genericRecords)
|
foreach (PlanRecordExportModel genericRecord in genericRecords)
|
||||||
{
|
{
|
||||||
_csv.WriteField(genericRecord.DateCreated);
|
_csv.WriteField(genericRecord.DateCreated);
|
||||||
_csv.WriteField(genericRecord.DateModified);
|
_csv.WriteField(genericRecord.DateModified);
|
||||||
@ -448,25 +448,25 @@ namespace CarCareTracker.Helper
|
|||||||
_csv.NextRecord();
|
_csv.NextRecord();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public static void WriteGasRecordExportModel(CsvWriter _csv, IEnumerable<GasRecordCsvExportModel> genericRecords)
|
public static void WriteGasRecordExportModel(CsvWriter _csv, IEnumerable<GasRecordExportModel> genericRecords)
|
||||||
{
|
{
|
||||||
var extraHeaders = genericRecords.SelectMany(x => x.ExtraFields).Select(y => y.Name).OrderBy(x => x).Distinct();
|
var extraHeaders = genericRecords.SelectMany(x => x.ExtraFields).Select(y => y.Name).OrderBy(x => x).Distinct();
|
||||||
//write headers
|
//write headers
|
||||||
_csv.WriteField(nameof(GasRecordCsvExportModel.Date));
|
_csv.WriteField(nameof(GasRecordExportModel.Date));
|
||||||
_csv.WriteField(nameof(GasRecordCsvExportModel.Odometer));
|
_csv.WriteField(nameof(GasRecordExportModel.Odometer));
|
||||||
_csv.WriteField(nameof(GasRecordCsvExportModel.FuelConsumed));
|
_csv.WriteField(nameof(GasRecordExportModel.FuelConsumed));
|
||||||
_csv.WriteField(nameof(GasRecordCsvExportModel.Cost));
|
_csv.WriteField(nameof(GasRecordExportModel.Cost));
|
||||||
_csv.WriteField(nameof(GasRecordCsvExportModel.FuelEconomy));
|
_csv.WriteField(nameof(GasRecordExportModel.FuelEconomy));
|
||||||
_csv.WriteField(nameof(GasRecordCsvExportModel.IsFillToFull));
|
_csv.WriteField(nameof(GasRecordExportModel.IsFillToFull));
|
||||||
_csv.WriteField(nameof(GasRecordCsvExportModel.MissedFuelUp));
|
_csv.WriteField(nameof(GasRecordExportModel.MissedFuelUp));
|
||||||
_csv.WriteField(nameof(GasRecordCsvExportModel.Notes));
|
_csv.WriteField(nameof(GasRecordExportModel.Notes));
|
||||||
_csv.WriteField(nameof(GasRecordCsvExportModel.Tags));
|
_csv.WriteField(nameof(GasRecordExportModel.Tags));
|
||||||
foreach (string extraHeader in extraHeaders)
|
foreach (string extraHeader in extraHeaders)
|
||||||
{
|
{
|
||||||
_csv.WriteField($"extrafield_{extraHeader}");
|
_csv.WriteField($"extrafield_{extraHeader}");
|
||||||
}
|
}
|
||||||
_csv.NextRecord();
|
_csv.NextRecord();
|
||||||
foreach (GasRecordCsvExportModel genericRecord in genericRecords)
|
foreach (GasRecordExportModel genericRecord in genericRecords)
|
||||||
{
|
{
|
||||||
_csv.WriteField(genericRecord.Date);
|
_csv.WriteField(genericRecord.Date);
|
||||||
_csv.WriteField(genericRecord.Odometer);
|
_csv.WriteField(genericRecord.Odometer);
|
||||||
|
|||||||
@ -38,12 +38,9 @@
|
|||||||
public string Cost { get; set; }
|
public string Cost { get; set; }
|
||||||
public string Notes { get; set; }
|
public string Notes { get; set; }
|
||||||
public string Tags { get; set; }
|
public string Tags { get; set; }
|
||||||
}
|
|
||||||
public class SupplyRecordCsvExportModel: SupplyRecordExportModel
|
|
||||||
{
|
|
||||||
public List<ExtraField> ExtraFields { get; set; }
|
public List<ExtraField> ExtraFields { get; set; }
|
||||||
}
|
}
|
||||||
public class ServiceRecordExportModel
|
public class GenericRecordExportModel
|
||||||
{
|
{
|
||||||
public string Date { get; set; }
|
public string Date { get; set; }
|
||||||
public string Odometer { get; set; }
|
public string Odometer { get; set; }
|
||||||
@ -51,9 +48,6 @@
|
|||||||
public string Notes { get; set; }
|
public string Notes { get; set; }
|
||||||
public string Cost { get; set; }
|
public string Cost { get; set; }
|
||||||
public string Tags { get; set; }
|
public string Tags { get; set; }
|
||||||
}
|
|
||||||
public class GenericRecordExportModel: ServiceRecordExportModel
|
|
||||||
{
|
|
||||||
public List<ExtraField> ExtraFields { get; set; }
|
public List<ExtraField> ExtraFields { get; set; }
|
||||||
}
|
}
|
||||||
public class OdometerRecordExportModel
|
public class OdometerRecordExportModel
|
||||||
@ -63,9 +57,6 @@
|
|||||||
public string Odometer { get; set; }
|
public string Odometer { get; set; }
|
||||||
public string Notes { get; set; }
|
public string Notes { get; set; }
|
||||||
public string Tags { get; set; }
|
public string Tags { get; set; }
|
||||||
}
|
|
||||||
public class OdometerRecordCsvExportModel: OdometerRecordExportModel
|
|
||||||
{
|
|
||||||
public List<ExtraField> ExtraFields { get; set; }
|
public List<ExtraField> ExtraFields { get; set; }
|
||||||
}
|
}
|
||||||
public class TaxRecordExportModel
|
public class TaxRecordExportModel
|
||||||
@ -75,9 +66,6 @@
|
|||||||
public string Notes { get; set; }
|
public string Notes { get; set; }
|
||||||
public string Cost { get; set; }
|
public string Cost { get; set; }
|
||||||
public string Tags { get; set; }
|
public string Tags { get; set; }
|
||||||
}
|
|
||||||
public class TaxRecordCsvExportModel: TaxRecordExportModel
|
|
||||||
{
|
|
||||||
public List<ExtraField> ExtraFields { get; set; }
|
public List<ExtraField> ExtraFields { get; set; }
|
||||||
}
|
}
|
||||||
public class GasRecordExportModel
|
public class GasRecordExportModel
|
||||||
@ -91,9 +79,6 @@
|
|||||||
public string MissedFuelUp { get; set; }
|
public string MissedFuelUp { get; set; }
|
||||||
public string Notes { get; set; }
|
public string Notes { get; set; }
|
||||||
public string Tags { get; set; }
|
public string Tags { get; set; }
|
||||||
}
|
|
||||||
public class GasRecordCsvExportModel: GasRecordExportModel
|
|
||||||
{
|
|
||||||
public List<ExtraField> ExtraFields { get; set; }
|
public List<ExtraField> ExtraFields { get; set; }
|
||||||
}
|
}
|
||||||
public class ReminderExportModel
|
public class ReminderExportModel
|
||||||
@ -115,9 +100,6 @@
|
|||||||
public string Priority { get; set; }
|
public string Priority { get; set; }
|
||||||
public string Progress { get; set; }
|
public string Progress { get; set; }
|
||||||
public string Cost { get; set; }
|
public string Cost { get; set; }
|
||||||
}
|
|
||||||
public class PlanRecordCsvExportModel: PlanRecordExportModel
|
|
||||||
{
|
|
||||||
public List<ExtraField> ExtraFields { get; set; }
|
public List<ExtraField> ExtraFields { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user