public async Task <IActionResult> DeleteCarReservationWithFlight(int id) { try { FlightReservation fRes = await context.FlightReservations.FindAsync(id); Flight flight = await context.Flights.FindAsync(fRes.FlightId); ReservationCar cRes = await context.ReservationCar.SingleOrDefaultAsync(x => x.IdUser == fRes.UserId && x.Day1 == flight.TakeOff); if (cRes != null) { context.ReservationCar.Remove(cRes); await context.SaveChangesAsync(); } else { return(Ok()); } return(Ok()); }catch (Exception e) { return(NoContent()); } }
public async Task <IActionResult> CreateReservation(FilterCar filterCar) { if (filterCar.City1 != "" && filterCar.City2 != "" && filterCar.endDay != null && filterCar.startDay != null && filterCar.Mark != "" && filterCar.Number.ToString() != "") { ReservationCar rc = new ReservationCar(); rc.City1 = filterCar.City1; rc.City2 = filterCar.City2; rc.Day1 = filterCar.startDay; rc.Day2 = filterCar.endDay; // rc.Car = filterCar.Id; //ApplicationUser user = await _userManager.Users.Include(x => x.ReservationCars).ThenInclude(x => x.Car).ThenInclude(x => x.Reservations).SingleOrDefaultAsync(x => x.Id == filterCar.Id); // var pomUser = _userManager.Users.Include(x => x.ReservationCars).ThenInclude(x => x.Car).SingleOrDefault(x => x.Id == filterCar.IdUser); var pomCar = context.Cars.Include(x => x.CarCompany).ToList().SingleOrDefault(x => x.Id == filterCar.Id); var pomUser = await _userManager.FindByIdAsync(filterCar.IdUser); rc.IdCar = pomCar.Id; rc.IdUser = pomUser.Id; rc.IdCompany = pomCar.CarCompany.Id.ToString(); TimeSpan t = filterCar.endDay - filterCar.startDay; var elapsedDays = Math.Abs(t.Days); var price = elapsedDays * Int32.Parse(pomCar.RentPerDay); rc.Price = price; context.ReservationCar.Add(rc); bool saveFailed; do { saveFailed = false; try { await context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException ex) { saveFailed = true; return(null); } catch (Exception e) { throw; } } while (saveFailed); return(Ok()); } else { return(BadRequest()); } }
public async Task <ReservationCar> SetReservation(CarReservation parameters) { var car = await repo.GetOneCar(parameters.SelectedEnterprise.Id, parameters.SelectedCar.Id); var user = await repo5.GetUserAsync(parameters.Username); var temp = new ReservationCar(); var temp2 = new UserCarReservation(); temp2.SelectedEnterprise = new Enterprise(); temp2.SelectedCar = new Car(); temp2.RealizedPackage = new SpecialOffer(); temp2.IsRated = parameters.IsRated; temp2.NumberOfDays = parameters.NumberOfDays; temp2.Price = parameters.Price; temp2.RealizedPackage = parameters.RealizedPackage; temp2.DateTo = parameters.DateTo; temp2.DateFrom = parameters.DateFrom; temp2.RentedDay = parameters.RentedDay; temp.IsRated = parameters.IsRated; temp.NumberOfDays = parameters.NumberOfDays; temp.Price = parameters.Price; temp.RealizedPackage = parameters.RealizedPackage; temp.DateTo = parameters.DateTo; temp.DateFrom = parameters.DateFrom; temp.RentedDay = parameters.RentedDay; temp2.SelectedCar = parameters.SelectedCar; temp2.SelectedEnterprise = parameters.SelectedEnterprise; car.Reservations.Add(temp); //try //{ await unitOfWork.CompleteAsync(); // } //catch //{ //return null; //} var ret = SetForUser(temp2, user); return(temp); }
public async Task <IActionResult> CancelCarReservation(string id) { try { ReservationCar res = await context.ReservationCar.FindAsync(id); TimeSpan ts = res.Day1 - DateTime.Now; if (ts.TotalDays >= 2) { context.ReservationCar.Remove(res); await context.SaveChangesAsync(); } return(Ok()); }catch (Exception e) { return(NoContent()); } }
public async Task <ReservationCar> SetReservationForDiscount(CarReservation parameters) { var car = await repo.GetOneCar(parameters.SelectedEnterprise.Id, parameters.SelectedCar.Id); var temp = new ReservationCar(); temp.IsRated = parameters.IsRated; temp.NumberOfDays = parameters.NumberOfDays; temp.Price = parameters.Price; temp.RealizedPackage = parameters.RealizedPackage; temp.DateTo = parameters.DateTo; temp.DateFrom = parameters.DateFrom; temp.RentedDay = parameters.RentedDay; foreach (var discount in car.Discounts.ToList()) { if (temp.DateFrom == discount.DiscountFrom && temp.DateTo == discount.DiscountTo) { car.Discounts.Remove(discount); } } car.Reservations.Add(temp); try { await unitOfWork.CompleteAsync(); } catch { return(null); } return(temp); }
public async Task <IActionResult> CreateFastRate(DiscountUser discountUser) { ReservationCar rc = new ReservationCar(); var discountRez = context.DiscountCars.Find(discountUser.IdCar); var daLiPostoji = context.ReservationCar.ToList(); var postoji = daLiPostoji.Find(x => x.IdDiscountCar == discountRez.Id); if (postoji != null) { return(BadRequest()); } else { var car = context.Cars.Include(x => x.CarCompany).SingleOrDefault(x => x.Id == discountRez.carId); rc.Day1 = discountRez.StartDay; rc.Day2 = discountRez.EndDay; rc.City1 = car.CarCompany.Address; rc.City2 = car.CarCompany.Address; var pomUser = await userManager.FindByIdAsync(discountUser.IdUser); rc.IdCar = car.Id; rc.IdUser = pomUser.Id; rc.IdCompany = car.CarCompany.Id.ToString(); TimeSpan t = discountRez.StartDay - discountRez.EndDay; var elapsedDays = Math.Abs(t.Days); var price = elapsedDays * Int32.Parse(car.RentPerDay); rc.Price = price; rc.IdDiscountCar = discountRez.Id; context.ReservationCar.Add(rc); bool saveFailed; do { saveFailed = false; try { await context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException ex) { saveFailed = true; return(null); } catch (Exception e) { throw; } } while (saveFailed); } return(Ok()); }