public async Task <IActionResult> AddOrUpdateVehicleDriverMappingAsync([FromBody] AddOrUpdateVehicleDriverMappingAc vehicleDriverMapping)
        {
            var user = await _userManager.FindByNameAsync(User.Identity.Name);

            return(Ok(await _vehicleDriverMappingRepository.AddOrUpdateVehicleDriverMappingAsync(vehicleDriverMapping, user)));
        }
        /// <summary>
        /// Method to add and update vehicle driver mapping - SS
        /// </summary>
        /// <param name="vehicleDriverMapping">vehicle driver detail</param>
        /// <param name="loggedInUser">logged in user</param>
        /// <returns>response</returns>
        public async Task <VehicleDriverMappingResponse> AddOrUpdateVehicleDriverMappingAsync(AddOrUpdateVehicleDriverMappingAc
                                                                                              vehicleDriverMapping, ApplicationUser loggedInUser)
        {
            var instituteId = await _instituteUserMappingHelperService.GetUserCurrentSelectedInstituteIdAsync(loggedInUser.Id, true);

            if (!await _iMSDbContext.VehicleMasters.AnyAsync(x => x.InstituteId == instituteId && x.Id == vehicleDriverMapping.VehicleId))
            {
                return new VehicleDriverMappingResponse()
                       {
                           HasError = true, Message = "Vehicle not found", ErrorType = VehicleDriverMappingResponseType.VehicleId
                       }
            }
            ;
            else
            {
                var driverIds = vehicleDriverMapping.Drivers.Select(x => x.DriverId).Distinct().ToList();

                var studentCount = await _iMSDbContext.DriverMasters.CountAsync(x => x.InstituteId == instituteId &&
                                                                                driverIds.Contains(x.Id));

                if (driverIds.Count != studentCount)
                {
                    return new VehicleDriverMappingResponse()
                           {
                               HasError = true, Message = "Driver not found", ErrorType = VehicleDriverMappingResponseType.DriverId
                           }
                }
                ;
                else
                {
                    var previous = await _iMSDbContext.VehicleDriverMappings.Where(x => x.VehicleId == vehicleDriverMapping.VehicleId).ToListAsync();

                    _iMSDbContext.VehicleDriverMappings.RemoveRange(previous);
                    await _iMSDbContext.SaveChangesAsync();

                    List <DomainModel.Models.VehicleDriverMapping> vehicleDriverMappings = new List <DomainModel.Models.VehicleDriverMapping>();
                    foreach (var driver in vehicleDriverMapping.Drivers)
                    {
                        vehicleDriverMappings.Add(new DomainModel.Models.VehicleDriverMapping()
                        {
                            CreatedOn   = DateTime.UtcNow,
                            DriverId    = driver.DriverId,
                            IsPrimary   = driver.IsPrimary,
                            VehicleId   = vehicleDriverMapping.VehicleId,
                            UpdatedById = loggedInUser.Id
                        });
                    }
                    _iMSDbContext.VehicleDriverMappings.AddRange(vehicleDriverMappings);
                    await _iMSDbContext.SaveChangesAsync();

                    return(new VehicleDriverMappingResponse()
                    {
                        HasError = false, Message = "Vehicle driver detail updated successfully"
                    });
                }
            }
        }