public async Task <IServiceResponse <bool> > UpateFareCalendar(int id, FareCalendarDTO FareCalendar) { return(await HandleApiOperationAsync(async() => { await _FareCalendarService.UpdateFareCalendar(id, FareCalendar); return new ServiceResponse <bool>(true); })); }
public async Task AddFareCalendar(FareCalendarDTO calendar) { _repo.Insert(new FareCalendar { Name = calendar.Name, StartDate = calendar.StartDate, EndDate = calendar.EndDate, RouteId = calendar.RouteId, VehicleModelId = calendar.VehicleModelId, TerminalId = calendar.TerminalId, FareAdjustmentType = calendar.FareAdjustmentType, FareParameterType = calendar.FareParameterType, FareType = calendar.FareType, FareValue = calendar.FareValue }); await _unitOfWork.SaveChangesAsync(); }
public async Task UpdateFareCalendar(int Id, FareCalendarDTO fareCalendarDto) { var calendar = await _repo.GetAsync(Id); if (calendar == null) { throw await _serviceHelper.GetExceptionAsync(ErrorConstants.FareCalendar_NOT_EXIST); } calendar.Name = fareCalendarDto.Name.Trim(); calendar.StartDate = fareCalendarDto.StartDate; calendar.EndDate = fareCalendarDto.EndDate; calendar.RouteId = fareCalendarDto.RouteId; calendar.TerminalId = fareCalendarDto.TerminalId; calendar.FareParameterType = fareCalendarDto.FareParameterType; calendar.FareAdjustmentType = fareCalendarDto.FareAdjustmentType; calendar.VehicleModelId = fareCalendarDto.VehicleModelId; calendar.FareType = fareCalendarDto.FareType; calendar.FareValue = fareCalendarDto.FareValue; await _unitOfWork.SaveChangesAsync(); }
public async Task <List <AvailableTripDetailDTO> > GetRouteVirtualBusesWithFareCalendar(int routeId) { var availabletrips = await GetRouteVirtualBuses(routeId); foreach (var trip in availabletrips) { var fareCalendar = new FareCalendarDTO(); fareCalendar = null; var farecalendarList = new List <FareCalendarDTO>(); farecalendarList = await _fareCalendarSvc.GetFareCalendaListByRoutesAsync(trip.RouteId, trip.DepartureDate); foreach (var calendar in farecalendarList) { if (calendar.VehicleModelId != null) { if (trip.VehicleModelId == calendar.VehicleModelId) { fareCalendar = calendar; } break; } fareCalendar = calendar; } if (fareCalendar == null) { var DepartureterminalId = await GetDepartureterminalIdFromRoute(trip.RouteId); farecalendarList = await _fareCalendarSvc.GetFareCalendaListByTerminalsAsync(DepartureterminalId, trip.DepartureDate); foreach (var calendar in farecalendarList) { if (calendar.VehicleModelId != null) { if (trip.VehicleModelId == calendar.VehicleModelId) { fareCalendar = calendar; } break; } fareCalendar = calendar; } } decimal fareDifference = 0; if (fareCalendar != null) { if (fareCalendar.FareAdjustmentType == FareAdjustmentType.Percentage) { fareDifference = (fareCalendar?.FareType == FareType.Increase ? 1 : -1) * ((fareCalendar?.FareValue).GetValueOrDefault(0.0m) * trip.FarePrice / 100); } else { fareDifference = (fareCalendar?.FareType == FareType.Increase ? 1 : -1) * (fareCalendar?.FareValue).GetValueOrDefault(0.0m); } } trip.FarePrice += fareDifference; } return(availabletrips); }
public async Task <FareDTO> GetFareByVehicleTrip(int routeId, int vehicleModel) { var departureDate = Clock.Now.Date; //var fareCalendar = _fareCalendarRepo.FirstOrDefault(c => departureDate >= c.StartDate && c.EndDate >= departureDate && routeId == c.RouteId); //var fareDifference = (fareCalendar?.FareType == FareType.Increase ? 1 : -1) * (fareCalendar?.FareValue).GetValueOrDefault(); var fares = from fare in GetAll() join route in _routeRepo.GetAll() on fare.RouteId equals route.Id join vehiclemodel in _vehicleModelRepo.GetAll() on fare.VehicleModelId equals vehiclemodel.Id where fare.RouteId == routeId && fare.VehicleModelId == vehicleModel select new FareDTO { Id = fare.Id, Name = fare.Name, Amount = fare.Amount, RouteId = route.Id, RouteName = route.Name, VehicleModelId = vehiclemodel.Id, VehicleModelName = vehiclemodel.Name, ChildrenDiscountPercentage = fare.ChildrenDiscountPercentage }; var computedfare = await fares.AsNoTracking().FirstOrDefaultAsync(); if (computedfare != null) { var fareCalendar = new FareCalendarDTO(); fareCalendar = null; var farecalendarList = new List <FareCalendarDTO>(); farecalendarList = await _fareCalendarSvc.GetFareCalendaListByRoutesAsync(routeId, departureDate); foreach (var calendar in farecalendarList) { if (calendar.VehicleModelId != null) { if (vehicleModel == calendar.VehicleModelId) { fareCalendar = calendar; } break; } fareCalendar = calendar; } if (fareCalendar == null) { var DepartureterminalId = await _routeSvc.GetDepartureterminalIdFromRoute(routeId); farecalendarList = await _fareCalendarSvc.GetFareCalendaListByTerminalsAsync(DepartureterminalId, departureDate); foreach (var calendar in farecalendarList) { if (calendar.VehicleModelId != null) { if (vehicleModel == calendar.VehicleModelId) { fareCalendar = calendar; } break; } fareCalendar = calendar; } } decimal fareDifference = 0; if (fareCalendar != null) { if (fareCalendar.FareAdjustmentType == FareAdjustmentType.Percentage) { fareDifference = (fareCalendar?.FareType == FareType.Increase ? 1 : -1) * ((fareCalendar?.FareValue).GetValueOrDefault(0.0m) * computedfare.Amount / 100); } else { fareDifference = (fareCalendar?.FareType == FareType.Increase ? 1 : -1) * (fareCalendar?.FareValue).GetValueOrDefault(0.0m); } } computedfare.Amount += fareDifference; } return(computedfare); }