public void Insert(Reservation reservation) { reservation.Station = null; reservation.User = null; db.Reservations.Add(reservation); db.SaveChanges(); }
public void Update(Reservation reservation) { Reservation rReservation = GetReservationById(reservation.ID); if (rReservation == null) return; rReservation.CompletedDate = reservation.CompletedDate; db.SaveChanges(); }
public bool Reserve() { var batteryStorageRepo = new BatteryStorageRepository(); var reservations = new List<Reservation>(); var batteries = new List<Battery>(); foreach (var station in _stations) { station.BatteryStorages = batteryStorageRepo.GetBatteryStorageByStationId(station.ID, true); if (station.BatteryStorages != null && (station.BatteryStorages.Available - station.BatteryStorages.Reserved) > 0) { var batteryCollection = station.BatteryStorages.BatteryCollections.FirstOrDefault(x => x.Battery.Status.Equals(1)); if (batteryCollection != null) { batteryCollection.Battery.Status = 2; var reservation = new Reservation { CreatedDate = DateTime.Now, ExpiredDate = DateTime.Now.AddMinutes(10), IsActive = true, Station = station, StationId = station.ID, User = _user, UserId = _user.ID }; batteries.Add(batteryCollection.Battery); reservations.Add(reservation); } else { return false; } } else { return false; } } UpdateBatteries(batteries); InsertReservations(reservations); UpdateStations(_stations); return true; }
public bool ReserveBattery(string stationValue, string userValue) { var userRepo = new UserRepository(); var reservationRepo = new ReservationRepository(); var batteryRepo = new BatteryRepository(); var station = _stationRepository.GetStationById(Convert.ToInt32(stationValue), true); var user = userRepo.GetUserById(Convert.ToInt32(userValue)); if (user == null || station == null) return false; var isBatteryAvailable = station.BatteryStorages.Available > 0; if (isBatteryAvailable) { var batteryCollection = station.BatteryStorages.BatteryCollections.FirstOrDefault(x => x.Battery.Status == 1); if (batteryCollection != null) { var battery = batteryCollection.Battery; battery.Status = 3; var reservation = new Reservation { UserId = user.ID, StationId = station.ID, CreatedDate = DateTime.Now, ExpiredDate = DateTime.Now.AddDays(1), IsActive = true }; reservationRepo.Insert(reservation); batteryRepo.Update(battery); return true; } } return false; }