public async Task <IActionResult> AddVehicleBreakDownAsync([FromBody] AddVehicleBreakDownManagementAc addVehicleBreakDown) { var user = await _userManager.FindByNameAsync(User.Identity.Name); return(Ok(await _vehicleBreakDownManagementRepository.AddVehicleBreakDownAsync(addVehicleBreakDown, user))); }
/// <summary> /// Method to add vehicle break down - SS /// </summary> /// <param name="addVehicleBreakDown">vehicle break down</param> /// <param name="loggedInUser">logged in user</param> /// <returns>response</returns> public async Task<VehicleBreakDownManagementResponse> AddVehicleBreakDownAsync(AddVehicleBreakDownManagementAc addVehicleBreakDown, ApplicationUser loggedInUser) { if (string.IsNullOrEmpty(addVehicleBreakDown.Code.Trim())) return new VehicleBreakDownManagementResponse() { HasError = true, Message = "Code can't be empty", ErrorType = VehicleBreakDownManagementResponseType.Code }; else { var instituteId = await _instituteUserMappingHelperService.GetUserCurrentSelectedInstituteIdAsync(loggedInUser.Id, true); if (!await _iMSDbContext.VehicleMasters.AnyAsync(x => x.Id == addVehicleBreakDown.VehicleId && x.InstituteId == instituteId)) return new VehicleBreakDownManagementResponse() { HasError = true, Message = "Vehicle not found", ErrorType = VehicleBreakDownManagementResponseType.VehicleId }; else { if (!await _iMSDbContext.DriverMasters.AnyAsync(x => x.Id == addVehicleBreakDown.DriverId && x.InstituteId == instituteId)) return new VehicleBreakDownManagementResponse() { HasError = true, Message = "Driver not found", ErrorType = VehicleBreakDownManagementResponseType.DriverId }; else { if (await _iMSDbContext.VehicleBreakDowns.AnyAsync(x => x.Code.ToLowerInvariant() == addVehicleBreakDown.Code.ToLowerInvariant() && x.Vehicle.InstituteId == instituteId)) return new VehicleBreakDownManagementResponse() { HasError = true, Message = "Vehicle break down code already exist. Please use unique one", ErrorType = VehicleBreakDownManagementResponseType.Code }; else { var BreakDown = new VehicleBreakDown() { BreakDownDate = addVehicleBreakDown.BreakDownDate, Address = addVehicleBreakDown.Address, Code = addVehicleBreakDown.Code, CreatedOn = DateTime.UtcNow, DriverId = addVehicleBreakDown.DriverId, BreakDownDuration = addVehicleBreakDown.BreakDownDuration, UpdatedById = loggedInUser.Id, UpdatedOn = DateTime.UtcNow, VehicleId = addVehicleBreakDown.VehicleId }; _iMSDbContext.VehicleBreakDowns.Add(BreakDown); await _iMSDbContext.SaveChangesAsync(); return new VehicleBreakDownManagementResponse() { HasError = false, Message = "Vehicle break down added successfully" }; } } } } }