public async Task <IActionResult> AddVehicleMasterAsync([FromBody] AddVehicleMasterManagementAc addVehicleMaster)
        {
            var user = await _userManager.FindByNameAsync(User.Identity.Name);

            return(Ok(await _vehicleMasterManagementRepository.AddVehicleMasterAsync(addVehicleMaster, user)));
        }
        /// <summary>
        /// Method to add vehicle master - SS
        /// </summary>
        /// <param name="addVehicleMaster">vehicle detail</param>
        /// <param name="loggedInUser">logged in user</param>
        /// <returns>response</returns>
        public async Task <VehicleMasterManagementResponse> AddVehicleMasterAsync(AddVehicleMasterManagementAc addVehicleMaster,
                                                                                  ApplicationUser loggedInUser)
        {
            if (string.IsNullOrEmpty(addVehicleMaster.VehicleCode) && string.IsNullOrEmpty(addVehicleMaster.VehicleCode.Trim()))
            {
                return new VehicleMasterManagementResponse()
                       {
                           HasError = true, Message = "Vehicle code can't be empty", ErrorType = VehicleMasterManagementResponseType.VehicleCode
                       }
            }
            ;
            else if (string.IsNullOrEmpty(addVehicleMaster.VehicleType) && string.IsNullOrEmpty(addVehicleMaster.VehicleType.Trim()))
            {
                return new VehicleMasterManagementResponse()
                       {
                           HasError = true, Message = "Vehicle type can't be empty", ErrorType = VehicleMasterManagementResponseType.VehicleType
                       }
            }
            ;
            else if (string.IsNullOrEmpty(addVehicleMaster.FuelType) && string.IsNullOrEmpty(addVehicleMaster.FuelType.Trim()))
            {
                return new VehicleMasterManagementResponse()
                       {
                           HasError = true, Message = "Fuel type can't be empty", ErrorType = VehicleMasterManagementResponseType.FuelType
                       }
            }
            ;
            else if (string.IsNullOrEmpty(addVehicleMaster.VehicleRegistrationNumber) && string.IsNullOrEmpty(addVehicleMaster.VehicleRegistrationNumber.Trim()))
            {
                return new VehicleMasterManagementResponse()
                       {
                           HasError = true, Message = "Vehicle registration number can't be empty", ErrorType = VehicleMasterManagementResponseType.VehicleRegistrationNumber
                       }
            }
            ;
            else if (string.IsNullOrEmpty(addVehicleMaster.EngineNumber) && string.IsNullOrEmpty(addVehicleMaster.EngineNumber.Trim()))
            {
                return new VehicleMasterManagementResponse()
                       {
                           HasError = true, Message = "Engine number can't be empty", ErrorType = VehicleMasterManagementResponseType.EngineNumber
                       }
            }
            ;
            else
            {
                var instituteId = await _instituteUserMappingHelperService.GetUserCurrentSelectedInstituteIdAsync(loggedInUser.Id, true);

                if (await _iMSDbContext.VehicleMasters.AnyAsync(x => x.InstituteId == instituteId && x.VehicleCode.ToLowerInvariant() == addVehicleMaster.VehicleCode.ToLowerInvariant()))
                {
                    return new VehicleMasterManagementResponse()
                           {
                               HasError = true, Message = "Vehicle code already exist. Please use unique one", ErrorType = VehicleMasterManagementResponseType.VehicleCode
                           }
                }
                ;
                else
                {
                    var vehicle = new VehicleMaster()
                    {
                        AverageKMPL               = addVehicleMaster.AverageKMPL,
                        ChasisNumber              = addVehicleMaster.ChasisNumber,
                        CreatedOn                 = DateTime.UtcNow,
                        EngineNumber              = addVehicleMaster.EngineNumber,
                        ExtraFittings             = addVehicleMaster.ExtraFittings,
                        FitnessExpDate            = addVehicleMaster.FitnessExpDate,
                        FuelType                  = EnumHelperService.GetValueFromDescription <VehicleMasterFuelTypeEnum>(addVehicleMaster.FuelType),
                        InstituteId               = instituteId,
                        InsuranceDate             = addVehicleMaster.InsuranceDate,
                        InsuranceExpDate          = addVehicleMaster.InsuranceExpDate,
                        InsuranceNumber           = addVehicleMaster.InsuranceNumber,
                        NextMaintenanceDate       = addVehicleMaster.NextMaintenanceDate,
                        PermitValidityDate        = addVehicleMaster.PermitValidityDate,
                        UpdatedById               = loggedInUser.Id,
                        UpdatedOn                 = DateTime.UtcNow,
                        VehicleCode               = addVehicleMaster.VehicleCode,
                        VehicleRegistrationNumber = addVehicleMaster.VehicleRegistrationNumber,
                        VehicleType               = EnumHelperService.GetValueFromDescription <VehicleMasterTypeEnum>(addVehicleMaster.VehicleType)
                    };

                    _iMSDbContext.VehicleMasters.Add(vehicle);
                    await _iMSDbContext.SaveChangesAsync();

                    return(new VehicleMasterManagementResponse()
                    {
                        HasError = false, Message = "Vehicle added successfully", Data = new { Id = vehicle.Id }
                    });
                }
            }
        }