public async Task AddFare(FareDTO fareDto) { if (await IsDefinedFareAsync(fareDto.RouteId, fareDto.VehicleModelId)) { throw new LMEGenericException($"Fare already exist!"); } if (!await IsValidRoute(fareDto.RouteId)) { throw new LMEGenericException($"Route does not exist!"); } if (!await IsValidVehicleModel(fareDto.VehicleModelId)) { throw new LMEGenericException($"Route does not exist!"); } _repo.Insert(new Fare { Amount = fareDto.Amount, CreatorUserId = _serviceHelper.GetCurrentUserId(), RouteId = fareDto.RouteId, VehicleModelId = fareDto.VehicleModelId, ChildrenDiscountPercentage = fareDto.ChildrenDiscountPercentage }); await _unitOfWork.SaveChangesAsync(); }
public async Task <decimal?> GetTripFare(int subrouteId, Guid vehicleTripRegistrationId) { var vehicleTrip = await GetVehicleTripRegistrationDTO(vehicleTripRegistrationId); var subRoute = await _subRouteRepo.GetAsync(subrouteId); if (vehicleTrip == null) { throw await _serviceHelper.GetExceptionAsync(ErrorConstants.VEHICLETRIP_NOT_EXIST); } var tripFare = new FareDTO(); if (vehicleTrip.CurrentModelId != null) { tripFare = await _fareSvc.GetFareByVehicleTrip( subRoute.NameId, vehicleTrip.CurrentModelId.GetValueOrDefault()); } else { tripFare = await _fareSvc.GetFareByVehicleTrip( subRoute.NameId, vehicleTrip.VehicleModelId.GetValueOrDefault()); } return(tripFare?.Amount); }
public async Task <decimal?> GetPassengerFare(string passengerInfo) { PassengerType passengerType = PassengerType.Adult; decimal childDisc = 0; int? subrouteId = null; Guid vehicleTripId = new Guid(); if (passengerInfo != null) { var passInfo = passengerInfo.Split(','); passengerType = (PassengerType)Convert.ToInt32(passInfo[0]); subrouteId = passInfo[1] != null && passInfo[1] != "Select Subroute" && passInfo[1] != "" ? Convert.ToInt32(passInfo[1]) : 0; vehicleTripId = Guid.Parse(passInfo[2]); } var vehicleTrip = await GetVehicleTripRegistrationDTO(vehicleTripId); if (vehicleTrip == null) { throw await _serviceHelper.GetExceptionAsync(ErrorConstants.VEHICLETRIP_NOT_EXIST); } if (subrouteId != 0) { var subRoute = await _subRouteRepo.GetAsync(subrouteId.GetValueOrDefault()); var tripFare = new FareDTO(); if (vehicleTrip.CurrentModelId != null) { tripFare = await _fareSvc.GetFareByVehicleTrip( subRoute.NameId, vehicleTrip.CurrentModelId.GetValueOrDefault()); } else { tripFare = await _fareSvc.GetFareByVehicleTrip( subRoute.NameId, vehicleTrip.VehicleModelId.GetValueOrDefault()); } childDisc = (decimal)tripFare.ChildrenDiscountPercentage.GetValueOrDefault() / 100; return(passengerType == PassengerType.Adult ? tripFare.Amount : tripFare.Amount - tripFare.Amount * childDisc); } var fare = new FareDTO(); if (vehicleTrip.CurrentModelId != null) { fare = await _fareSvc.GetFareByVehicleTrip( vehicleTrip.RouteId.GetValueOrDefault(), vehicleTrip.CurrentModelId.GetValueOrDefault()); } else { fare = await _fareSvc.GetFareByVehicleTrip( vehicleTrip.RouteId.GetValueOrDefault(), vehicleTrip.VehicleModelId.GetValueOrDefault()); } childDisc = (decimal)fare.ChildrenDiscountPercentage.GetValueOrDefault() / 100; return(passengerType == PassengerType.Adult ? fare.Amount : fare.Amount - fare.Amount * childDisc); }
public async Task <IServiceResponse <bool> > UpateFare(int id, FareDTO fare) { return(await HandleApiOperationAsync(async() => { await _fareService.UpdateFare(id, fare); return new ServiceResponse <bool>(true); })); }
public async Task <IServiceResponse <bool> > AddFare(FareDTO fare) { return(await HandleApiOperationAsync(async() => { await _fareService.AddFare(fare); return new ServiceResponse <bool>(true); })); }
public async Task UpdateFare(int fareId, FareDTO dto) { var fare = await _repo.GetAsync(fareId); if (fare == null) { throw await _serviceHelper.GetExceptionAsync(ErrorConstants.FARE_NOT_EXIST); } if (fare.RouteId != dto.RouteId || fare.VehicleModelId != dto.VehicleModelId) { if (await IsDefinedFareAsync(dto.RouteId, dto.VehicleModelId)) { throw await _serviceHelper.GetExceptionAsync(ErrorConstants.FARE_EXIST); } } fare.Amount = dto.Amount; fare.RouteId = dto.RouteId; fare.VehicleModelId = dto.VehicleModelId; fare.ChildrenDiscountPercentage = dto.ChildrenDiscountPercentage; await _unitOfWork.SaveChangesAsync(); }