public decimal Get(int flighsId) { Flight flight = dbProvider.GetFlight(flighsId); RegisteredFlight registeredFlight = dbProvider.GetRigisteredFlight(flighsId, user.Id); return(DiscountUtil.GetPriceWithDiscount(flight, registeredFlight, user.statusUser)); }
public static decimal GetPriceWithDiscount(Flight flight, RegisteredFlight registeredFlight, StatusUser status) { return((decimal)(1 - (CalculateCoeffForDiscountDependOnDistance(flight) + CalculateCoeffForDiscountDependOnBookinge(flight, registeredFlight) + CalculateCoeffForDiscountDepentOfStatusUser(status))) * flight.Price); }
private static double CalculateCoeffForDiscountDependOnBookinge(Flight flight, RegisteredFlight registeredFlight) { if (registeredFlight == null) { return(0); } double coffForDiscount = 0; DateTime dateFlight = flight.DateFlight; DateTime dateBookingFlight = registeredFlight.DataOfBooking; if (dateBookingFlight.AddDays(30) < dateFlight) { coffForDiscount = 0.05; } else { coffForDiscount = 0; } return(coffForDiscount); }
public RegisteredFlight GetRigisteredFlight(int flightId, string userId) { RegisteredFlight registeredFlight = db.RegisteredFlights.FirstOrDefault(rFl => rFl.Flight.FlightId == flightId && rFl.ApplicationUser.Id == userId); return(registeredFlight); }