public async Task <IActionResult> UpdateVehicleMaintenanceAsync([FromBody] UpdateVehicleMaintenanceManagementAc updateVehicleMaintenance) { var user = await _userManager.FindByNameAsync(User.Identity.Name); return(Ok(await _vehicleMaintenanceManagementRepository.UpdateVehicleMaintenanceAsync(updateVehicleMaintenance, user))); }
/// <summary> /// Method to update Vehicle Maintenance - SS /// </summary> /// <param name="updateVehicleMaintenance">Vehicle Maintenance</param> /// <param name="loggedInUser">logged in user</param> /// <returns>response</returns> public async Task <VehicleMaintenanceManagementResponse> UpdateVehicleMaintenanceAsync(UpdateVehicleMaintenanceManagementAc updateVehicleMaintenance, ApplicationUser loggedInUser) { if (string.IsNullOrEmpty(updateVehicleMaintenance.Code.Trim())) { return new VehicleMaintenanceManagementResponse() { HasError = true, Message = "Code can't be empty", ErrorType = VehicleMaintenanceManagementResponseType.Code } } ; else if (string.IsNullOrEmpty(updateVehicleMaintenance.ActionTaken.Trim())) { return new VehicleMaintenanceManagementResponse() { HasError = true, Message = "Action taken can't be empty", ErrorType = VehicleMaintenanceManagementResponseType.ActionTaken } } ; else { var instituteId = await _instituteUserMappingHelperService.GetUserCurrentSelectedInstituteIdAsync(loggedInUser.Id, true); if (!await _iMSDbContext.VehicleMasters.AnyAsync(x => x.InstituteId == instituteId && x.Id == updateVehicleMaintenance.VehicleId)) { return new VehicleMaintenanceManagementResponse() { HasError = true, Message = "Vehicle not found", ErrorType = VehicleMaintenanceManagementResponseType.VehicleId } } ; else { var maintenances = await _iMSDbContext.VehicleMaintenances.Where(x => x.Vehicle.InstituteId == instituteId && x.Id != updateVehicleMaintenance.Id).ToListAsync(); if (maintenances.Any(x => x.Code.ToLowerInvariant() == updateVehicleMaintenance.Code.ToLowerInvariant())) { return new VehicleMaintenanceManagementResponse() { HasError = true, Message = "Vehicle maintenance code already exist. Please unique one", ErrorType = VehicleMaintenanceManagementResponseType.Code } } ; else { var maintenance = await _iMSDbContext.VehicleMaintenances.FirstOrDefaultAsync(x => x.Id == updateVehicleMaintenance.Id && x.Vehicle.InstituteId == instituteId); if (maintenance == null) { return new VehicleMaintenanceManagementResponse() { HasError = true, Message = "Vehicle maintenance not found", ErrorType = VehicleMaintenanceManagementResponseType.Id } } ; else { maintenance.ActionTaken = updateVehicleMaintenance.ActionTaken; maintenance.Code = updateVehicleMaintenance.Code; maintenance.EstimateCost = updateVehicleMaintenance.EstimateCost; maintenance.MaintenanceDate = updateVehicleMaintenance.MaintenanceDate; maintenance.MaintenanceDoneBy = updateVehicleMaintenance.MaintenanceDoneBy; maintenance.NextMaintenanceDate = updateVehicleMaintenance.NextMaintenanceDate; maintenance.Remark = updateVehicleMaintenance.Remark; maintenance.UpdatedById = loggedInUser.Id; maintenance.UpdatedOn = DateTime.UtcNow; maintenance.VehicleId = updateVehicleMaintenance.VehicleId; _iMSDbContext.VehicleMaintenances.Update(maintenance); await _iMSDbContext.SaveChangesAsync(); return(new VehicleMaintenanceManagementResponse() { HasError = false, Message = "Vehicle maintenance updated successfully" }); } } } } }