public async Task <IActionResult> OnGet(int?id) { if (id == null) { return(NotFound()); } _logger.LogInformation(LoggingEvents.GetItem, "Get Reservation {ID}", id); Reservation = await _reservationService.GetReservation(id); if (Reservation == null) { _logger.LogInformation(LoggingEvents.GetItemNotFound, "Get Reservation {ID} NOT FOUND", id); return(NotFound()); } var user = await _userManager.GetUserAsync(HttpContext.User); if (user.Id != Reservation.UserId.Value) { return(RedirectToPage("./List")); } return(Page()); }
public async Task <ReservationHeader> GetReservation(int?id) { var reservation = await _dbContext.Reservations .Include(r => r.VehicleModel) .Include(r => r.Car) .Include(r => r.Address) .Include(r => r.User) .Where(r => r.Id == id.Value) .SingleOrDefaultAsync(); ReservationHeader reservationHeader = new ReservationHeader { Id = reservation.Id, AddressId = reservation.AddressId, Address = reservation.Address.ZipCode + " " + reservation.Address.City + " " + reservation.Address.StreetAddress, CarId = reservation.CarId, Car = reservation.Car?.PlateNumber, DropOffTime = reservation.DropOffTime, PickUpTime = reservation.PickUpTime, Price = reservation.Price, State = reservation.State, UserId = reservation.UserId, User = reservation.User?.UserName, VehicleModelId = reservation.VehicleModelId, VehicleType = reservation.VehicleModel?.VehicleType }; return(reservationHeader); }
public async Task <IActionResult> OnGetAsync(int?id) { if (id == null) { return(NotFound()); } _logger.LogInformation(LoggingEvents.GetItem, "Get Reservation {ID}", id); Reservation = await _reservationService.GetReservation(id); if (Reservation == null) { _logger.LogInformation(LoggingEvents.GetItemNotFound, "Get Reservation {ID} NOT FOUND", id); return(NotFound()); } return(Page()); }
public async Task <IActionResult> OnPostAsync(int?id) { if (id == null) { return(NotFound()); } _logger.LogInformation(LoggingEvents.GetItem, "Get Reservation {ID}", id); Reservation = await _reservationService.GetReservation(id); if (Reservation != null) { await _reservationService.DeleteReservation(id); _logger.LogInformation(LoggingEvents.DeleteItem, "Delete Reservation {ID}", id); } return(RedirectToPage("./Index")); }
public async Task <IActionResult> OnGetAsync(int?id) { if (id == null) { return(NotFound()); } _logger.LogInformation(LoggingEvents.GetItem, "Get Reservation {ID}", id); Reservation = await _reservationService.GetReservation(id); if (Reservation == null) { _logger.LogInformation(LoggingEvents.GetItemNotFound, "Get Reservation {ID} NOT FOUND", id); return(NotFound()); } var cars = await _carService.GetCars(Reservation.PickUpTime, Reservation.DropOffTime, Reservation.VehicleModelId); ViewData["CarId"] = new SelectList(cars, "Id", "PlateNumber"); return(Page()); }
public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { var cars = await _carService.GetCars(Reservation.PickUpTime, Reservation.DropOffTime, Reservation.VehicleModelId); ViewData["CarId"] = new SelectList(cars, "Id", "PlateNumber"); return(Page()); } _logger.LogInformation(LoggingEvents.GetItem, "Get Car {ID}", Reservation.CarId); var car = await _carService.GetCar(Reservation.CarId); if (car == null) { _logger.LogInformation(LoggingEvents.GetItemNotFound, "Get Car {ID} NOT FOUND", Reservation.CarId); return(NotFound()); } _logger.LogInformation(LoggingEvents.GetItem, "Get Reservation {ID}", Reservation.Id); Reservation = await _reservationService.GetReservation(Reservation.Id); if (Reservation == null) { _logger.LogInformation(LoggingEvents.GetItemNotFound, "Get Reservation {ID} NOT FOUND", Reservation.Id); return(NotFound()); } try { _logger.LogInformation(LoggingEvents.UpdateItem, "Update Reservation {ID} with Car {ID}", Reservation.Id, Reservation.CarId); await _reservationService.EditReservation(Reservation.Id, car.Id); } catch (DbUpdateConcurrencyException) { if (!_reservationService.ReservationExists(Reservation.Id)) { _logger.LogInformation(LoggingEvents.UpdateItemNotFound, "Update Reservation {ID} NOT FOUND", Reservation.Id); return(NotFound()); } else { return(StatusCode(409)); } } const string view = "/Views/Emails/ReservationEmailAccepted"; var user = await _userManager.Users .Where(u => u.Id == Reservation.UserId) .SingleOrDefaultAsync(); var culture = Thread.CurrentThread.CurrentCulture.Name; if (!string.IsNullOrEmpty(user.Culture)) { Thread.CurrentThread.CurrentCulture = new CultureInfo(user.Culture); Thread.CurrentThread.CurrentUICulture = new CultureInfo(user.Culture); } var model = new EmailReservationDto { UserName = user.Name ?? user.Email, Email = user.Email, VehicleType = Reservation.VehicleType, Address = Reservation.Address, PickUpTime = Reservation.PickUpTime, DropOffTime = Reservation.DropOffTime, Price = Reservation.Price, State = Dal.Entities.Reservation.ReservationStates.Accepted }; try { var message = await _render.RenderViewToStringAsync($"{view}Html.cshtml", model); //await _emailSender.SendEmailAsync(user.Email, "Reservation", message); QueueEmailMessage queueEmail = new QueueEmailMessage(user.Email, "", message, "Reservation"); await _cloudStorageService.SendMessage(queueEmail); } catch (InvalidOperationException) { return(RedirectToPage("./Index")); } if (!string.IsNullOrEmpty(culture)) { Thread.CurrentThread.CurrentCulture = new CultureInfo(culture); Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture); } return(RedirectToPage("./Index")); }