Esempio n. 1
0
        private async Task <GenericReadModelResponse <string> > CreateBookingAsync(ProceedBookingRequest webRequest, string paxId)
        {
            var response            = new GenericReadModelResponse <string>();
            var bookingProductModel = new BookingProductModel
            {
                ProductId   = webRequest.ProductId,
                DateCheckIn = webRequest.BookDate,
                PaxIds      = new string[] { paxId },
                Nights      = 1
            };

            var apiRequest = new CreateBookingRequest();

            apiRequest.BookingProducts.Add(bookingProductModel);

            var apiResponse = await this._heroApiManager.CreateBookingAsync(apiRequest);

            if (apiResponse.IsError())
            {
                response.AddErrorMessages(apiResponse.GetErrorMessages());
                return(response);
            }

            response.Model = apiResponse.Model.Id;

            return(response);
        }
Esempio n. 2
0
        public async Task <IActionResult> Proceed([FromBody] ProceedBookingRequest request)
        {
            var createPaxResponse = await this.CreatePax(request);

            if (createPaxResponse.IsError())
            {
                return(this.ErrorResponseResult(createPaxResponse));
            }

            var createBookingResponse = await this.CreateBookingAsync(request, createPaxResponse.Model);

            if (createBookingResponse.IsError())
            {
                return(this.ErrorResponseResult(createBookingResponse));
            }

            var getTotalPriceResponse = await this.GetTotalPriceAsync(request.ProductId, request.BookDate);

            if (getTotalPriceResponse.IsError())
            {
                return(this.ErrorResponseResult(getTotalPriceResponse));
            }

            var createPaymentResponse = await this.CreatePaymentAsync(createBookingResponse.Model, getTotalPriceResponse.Model);

            if (createPaymentResponse.IsError())
            {
                return(this.ErrorResponseResult(createPaymentResponse));
            }

            var finalizeBookingResponse = await this.FinalizeBookingAsync(createBookingResponse.Model);

            if (finalizeBookingResponse.IsError())
            {
                return(this.ErrorResponseResult(finalizeBookingResponse));
            }

            return(this.SuccessResponseResult(new
            {
                BookingId = createBookingResponse.Model,
                PaxId = createPaxResponse.Model
            }));
        }
Esempio n. 3
0
        private async Task <GenericReadModelResponse <string> > CreatePax(ProceedBookingRequest webRequest)
        {
            var response   = new GenericReadModelResponse <string>();
            var apiRequest = new CreatePaxRequest
            {
                FirstName    = webRequest.FirstName,
                LastName     = webRequest.LastName,
                PhoneNumber  = webRequest.PhoneNumber,
                EmailAddress = webRequest.EmailAddress
            };

            var apiResponse = await this._heroApiManager.CreatePaxAsync(apiRequest);

            if (apiResponse.IsError())
            {
                response.AddErrorMessages(apiResponse.GetErrorMessages());
                return(response);
            }

            response.Model = apiResponse.Model.Id;

            return(response);
        }