public static bool CheckExistsNumSeats(string RideId, DateTime date, int numSeats) { try { if (!RedisRideDataProvider.ExistsRide(RideId)) { return(false); } using (var client = new RedisClient(RedisDataLayer.SingleHost)) { var numS = client.Get <object>(GetRideDateId(RideId, date)); var numSInt = client.Get <int>(GetRideDateId(RideId, date)); var rideSeats = RedisRideDataProvider.NumSeats(RideId); if (numS != null && numSInt >= numSeats) { return(true); } if (numS == null && numSeats <= rideSeats) { return(true); } return(false); } } catch (Exception e) { return(false); } }
public static bool AddCards(BusinessTrip trip, int numCards) { try { if (!CheckExistsNumSeats(trip, numCards)) { return(false); } foreach (var card in trip.CardsInTrip) { foreach (var ride in card.Rides) { var rideDate = ride.TakeOfDate.Date; var key = GetRideDateId(ride.Ride.Id, rideDate); using (var client = new RedisClient(RedisDataLayer.SingleHost)) { if (client.Get <object>(key) != null) { client.DecrBy(key, numCards); } else { var numSeats = RedisRideDataProvider.NumSeats(ride.Ride.Id); client.Set <int>(key, numSeats - numCards); } } } } return(true); } catch (Exception e) { return(false); } }