public async Task <IActionResult> UpdateVehicleRepairAsync([FromBody] UpdateVehicleRepairManagementAc updateVehicleRepair) { var user = await _userManager.FindByNameAsync(User.Identity.Name); return(Ok(await _vehicleRepairManagementRepository.UpdateVehicleRepairAsync(updateVehicleRepair, user))); }
/// <summary> /// Method to update vehicle repair - SS /// </summary> /// <param name="updateVehicleRepair">vehicle repair</param> /// <param name="loggedInUser">logged in user</param> /// <returns>response</returns> public async Task <VehicleRepairManagementResponse> UpdateVehicleRepairAsync(UpdateVehicleRepairManagementAc updateVehicleRepair, ApplicationUser loggedInUser) { if (string.IsNullOrEmpty(updateVehicleRepair.Code.Trim())) { return new VehicleRepairManagementResponse() { HasError = true, Message = "Code can't be empty", ErrorType = VehicleRepairManagementResponseType.Code } } ; else { var instituteId = await _instituteUserMappingHelperService.GetUserCurrentSelectedInstituteIdAsync(loggedInUser.Id, true); if (!await _iMSDbContext.VehicleMasters.AnyAsync(x => x.Id == updateVehicleRepair.VehicleId && x.InstituteId == instituteId)) { return new VehicleRepairManagementResponse() { HasError = true, Message = "Vehicle not found", ErrorType = VehicleRepairManagementResponseType.VehicleId } } ; else { var repairs = await _iMSDbContext.VehicleRepairs.Where(x => x.Vehicle.InstituteId == instituteId && x.Id != updateVehicleRepair.Id).ToListAsync(); if (repairs.Any(x => x.Code.ToLowerInvariant() == updateVehicleRepair.Code.ToLowerInvariant())) { return new VehicleRepairManagementResponse() { HasError = true, Message = "Vehicle repair code already exist, Please use unique one", ErrorType = VehicleRepairManagementResponseType.Code } } ; else { var repair = await _iMSDbContext.VehicleRepairs.FirstOrDefaultAsync(x => x.Id == updateVehicleRepair.Id && x.Vehicle.InstituteId == instituteId); if (repair == null) { return new VehicleRepairManagementResponse() { HasError = true, Message = "Vehicle repair not found", ErrorType = VehicleRepairManagementResponseType.Id } } ; else { repair.Code = updateVehicleRepair.Code; repair.Remarks = updateVehicleRepair.Remarks; repair.RepairCost = updateVehicleRepair.RepairCost; repair.RepairDate = updateVehicleRepair.RepairDate; repair.UpdatedById = loggedInUser.Id; repair.UpdatedOn = DateTime.UtcNow; repair.VehicleId = updateVehicleRepair.VehicleId; _iMSDbContext.VehicleRepairs.Update(repair); await _iMSDbContext.SaveChangesAsync(); return(new VehicleRepairManagementResponse() { HasError = false, Message = "Vehicle repair updated successfully" }); } } } } }