added bulk edit functionality.

This commit is contained in:
DESKTOP-GENO133\IvanPlex
2024-02-21 21:39:39 -07:00
parent 0d8822c496
commit 0fab57d19c
4 changed files with 200 additions and 2 deletions

View File

@@ -10,6 +10,7 @@ using CarCareTracker.MapProfile;
using System.Security.Claims;
using CarCareTracker.Logic;
using CarCareTracker.Filter;
using Microsoft.AspNetCore.Components.Web;
namespace CarCareTracker.Controllers
{
@@ -2250,6 +2251,119 @@ namespace CarCareTracker.Controllers
}
return Json(result);
}
[HttpPost]
public IActionResult GetGenericRecordModal(List<int> recordIds, ImportMode dataType)
{
return PartialView("_GenericRecordModal", new GenericRecordEditModel() { DataType = dataType, RecordIds = recordIds });
}
[HttpPost]
public IActionResult EditMultipleRecords(GenericRecordEditModel genericRecordEditModel)
{
var dateIsEdited = genericRecordEditModel.EditRecord.Date != default;
var descriptionIsEdited = !string.IsNullOrWhiteSpace(genericRecordEditModel.EditRecord.Description);
var mileageIsEdited = genericRecordEditModel.EditRecord.Mileage != default;
var costIsEdited = genericRecordEditModel.EditRecord.Cost != default;
var noteIsEdited = !string.IsNullOrWhiteSpace(genericRecordEditModel.EditRecord.Notes);
var tagsIsEdited = genericRecordEditModel.EditRecord.Tags.Any();
bool result = false;
foreach (int recordId in genericRecordEditModel.RecordIds)
{
switch (genericRecordEditModel.DataType)
{
case ImportMode.ServiceRecord:
{
var existingRecord = _serviceRecordDataAccess.GetServiceRecordById(recordId);
if (dateIsEdited)
{
existingRecord.Date = genericRecordEditModel.EditRecord.Date;
}
if (descriptionIsEdited)
{
existingRecord.Description = genericRecordEditModel.EditRecord.Description;
}
if (mileageIsEdited)
{
existingRecord.Mileage = genericRecordEditModel.EditRecord.Mileage;
}
if (costIsEdited)
{
existingRecord.Cost = genericRecordEditModel.EditRecord.Cost;
}
if (noteIsEdited)
{
existingRecord.Notes = genericRecordEditModel.EditRecord.Notes;
}
if (tagsIsEdited)
{
existingRecord.Tags = genericRecordEditModel.EditRecord.Tags;
}
result = _serviceRecordDataAccess.SaveServiceRecordToVehicle(existingRecord);
}
break;
case ImportMode.RepairRecord:
{
var existingRecord = _collisionRecordDataAccess.GetCollisionRecordById(recordId);
if (dateIsEdited)
{
existingRecord.Date = genericRecordEditModel.EditRecord.Date;
}
if (descriptionIsEdited)
{
existingRecord.Description = genericRecordEditModel.EditRecord.Description;
}
if (mileageIsEdited)
{
existingRecord.Mileage = genericRecordEditModel.EditRecord.Mileage;
}
if (costIsEdited)
{
existingRecord.Cost = genericRecordEditModel.EditRecord.Cost;
}
if (noteIsEdited)
{
existingRecord.Notes = genericRecordEditModel.EditRecord.Notes;
}
if (tagsIsEdited)
{
existingRecord.Tags = genericRecordEditModel.EditRecord.Tags;
}
result = _collisionRecordDataAccess.SaveCollisionRecordToVehicle(existingRecord);
}
break;
case ImportMode.UpgradeRecord:
{
var existingRecord = _upgradeRecordDataAccess.GetUpgradeRecordById(recordId);
if (dateIsEdited)
{
existingRecord.Date = genericRecordEditModel.EditRecord.Date;
}
if (descriptionIsEdited)
{
existingRecord.Description = genericRecordEditModel.EditRecord.Description;
}
if (mileageIsEdited)
{
existingRecord.Mileage = genericRecordEditModel.EditRecord.Mileage;
}
if (costIsEdited)
{
existingRecord.Cost = genericRecordEditModel.EditRecord.Cost;
}
if (noteIsEdited)
{
existingRecord.Notes = genericRecordEditModel.EditRecord.Notes;
}
if (tagsIsEdited)
{
existingRecord.Tags = genericRecordEditModel.EditRecord.Tags;
}
result = _upgradeRecordDataAccess.SaveUpgradeRecordToVehicle(existingRecord);
}
break;
}
}
return Json(result);
}
#endregion
}