public async Task <RoomOrderDetailsDTO> SaveRoomOrderDetails(RoomOrderDetailsDTO details) { try { var content = JsonConvert.SerializeObject(details); var bodyContent = new StringContent(content, Encoding.UTF8, "application/json"); var response = await _client.PostAsync("api/roomorder/Create", bodyContent); if (response.IsSuccessStatusCode) { var contentTemp = await response.Content.ReadAsStringAsync(); // Enitity to DTO convert is alrdy done in repository var result = JsonConvert.DeserializeObject <RoomOrderDetailsDTO>(contentTemp); return(result); } else { var contentTemp = await response.Content.ReadAsStringAsync(); // Enitity to DTO convert is alrdy done in repository var errorModel = JsonConvert.DeserializeObject <ErrorModel>(contentTemp); throw new Exception(errorModel.ErrorMessage); } } catch (Exception e) { throw new Exception(e.Message); } }
public async Task <RoomOrderDetailsDTO> SaveRoomOrderDetails(RoomOrderDetailsDTO details) { var content = JsonConvert.SerializeObject(details); var bodyContent = new StringContent(content, Encoding.UTF8, "application/json"); var response = await _client.PostAsync("api/roomorder/create", bodyContent); // Debug //string res = response.Content.ReadAsStringAsync().Result; if (response.IsSuccessStatusCode) { var contentTemp = await response.Content.ReadAsStringAsync(); var result = JsonConvert.DeserializeObject <RoomOrderDetailsDTO>(contentTemp); return(result); } else { var contentTemp = await response.Content.ReadAsStringAsync(); var errorModel = JsonConvert.DeserializeObject <ErrorModel>(contentTemp); throw new Exception(errorModel.ErrorMessage); } }
public async Task <IActionResult> Create([FromBody] RoomOrderDetailsDTO details) { try { if (ModelState.IsValid) { var result = await _repository.Create(details); return(Ok(result)); } else { return(BadRequest(new ErrorModel() { ErrorMessage = "Error while creating Room Details/Booking" })); } } catch (Exception e) { return(BadRequest(new ErrorModel() { ErrorMessage = e.Message })); } }
public async Task <IActionResult> PaymentSuccessful([FromBody] RoomOrderDetailsDTO details) { var service = new SessionService(); var sessionDetails = service.Get(details.StripeSessionId); if (sessionDetails.PaymentStatus == "paid") { var result = await _repository.MarkPaymentSuccessful(details.Id); if (result == null) { return(BadRequest(new ErrorModel() { ErrorMessage = "Can not mark payment as successful" })); } await _emailSender.SendEmailAsync(details.Email, "Booking Confirmed - Hidden Villa", "Your booking has been confirmed at Hidden Villa with order ID :" + details.Id); return(Ok(result)); } else { return(BadRequest(new ErrorModel() { ErrorMessage = "Can not mark payment as successful" })); } }
public async Task <RoomOrderDetailsDTO> GetRoomOrderDetails(int roomOrderId) { try { RoomOrderDetails roomOrder = await _db.RoomOrderDetails.Include(u => u.HotelRoom) .ThenInclude(x => x.HotelRoomImages).FirstOrDefaultAsync(u => u.Id == roomOrderId); RoomOrderDetailsDTO roomOrderDetailsDto = _mapper.Map <RoomOrderDetails, RoomOrderDetailsDTO>(roomOrder); roomOrderDetailsDto.HotelRoomDTO.TotalDays = roomOrderDetailsDto.CheckOutDate.Subtract(roomOrderDetailsDto.CheckInDate).Days; return(roomOrderDetailsDto); } catch (Exception e) { return(null); } }
public async Task <RoomOrderDetailsDTO> Create(RoomOrderDetailsDTO details) { try { details.CheckInDate = details.CheckInDate.Date; details.CheckOutDate = details.CheckOutDate.Date; var roomOrder = _mapper.Map <RoomOrderDetailsDTO, RoomOrderDetails>(details); roomOrder.Status = SD.Status_Pending; var result = await _db.RoomOrderDetails.AddAsync(roomOrder); await _db.SaveChangesAsync(); return(_mapper.Map <RoomOrderDetails, RoomOrderDetailsDTO>(result.Entity)); } catch (Exception e) { return(null); } }
public async Task <IActionResult> PaymentSuccessful([FromBody] RoomOrderDetailsDTO details) { try { var service = new SessionService(); //Stripe 사이트에서 sessionId로 세부정보 가져오는 코드 var sessionDetails = service.Get(details.StripeSessionId); if (sessionDetails.PaymentStatus == "paid") { var result = await _repository.MarkPaymentSuccessful(details.Id); if (result == null) { return(BadRequest(new ErrorModel() { ErrorMessage = "Cannot mark payment as successful" })); } await _emailSender.SendEmailAsync(details.Email, "Hidden villa payment msg", $"Your booking has been confirmed at HiddenVilla " + $" with order ID : {details.Id}"); return(Ok(result)); } else { return(BadRequest(new ErrorModel() { ErrorMessage = $"{sessionDetails.PaymentStatus}. Cannot mark payment as successful" })); } } catch (Exception e) { return(BadRequest(new ErrorModel() { ErrorMessage = e.Message })); } }