示例#1
0
        public List <BookingPositionViewModel> BindHotelList(BookingDetailRes response, BookingSearchRes res)
        {
            List <BookingPositionViewModel> lstHotelposition = new List <BookingPositionViewModel>();

            if (response.Booking.Services != null && res.BookingRooms != null)
            {
                var hotelpositions = response.Booking.Services.Where(a => a.ProductType.ToUpper() == "HOTEL").ToList();
                var positionIds    = hotelpositions.Select(x => x.Position_Id).ToList();
                var rooms          = res.BookingRooms.Where(x => positionIds.Contains(x.PositionId) && x.PersonType == "ADULT").Select(y => new { y.PositionId, y.RoomNo, y.ProductTemplate, y.PersonType }).ToList();

                foreach (var hotel in hotelpositions)
                {
                    var pos = new BookingPositionViewModel();
                    pos.StartDate   = hotel.StartDate;
                    pos.Country     = hotel.Country;
                    pos.City        = hotel.City;
                    pos.ProductName = hotel.ProductName;
                    pos.Board       = hotel.MealPlan;
                    pos.Status      = hotel.Status;
                    pos.Single      = rooms.Where(x => x.PositionId == hotel.Position_Id && x.ProductTemplate == "SINGLE").Select(x => x.RoomNo).FirstOrDefault() ?? "";
                    pos.Triple      = rooms.Where(x => x.PositionId == hotel.Position_Id && x.ProductTemplate == "TRIPLE").Select(x => x.RoomNo).FirstOrDefault() ?? "";
                    pos.Double      = rooms.Where(x => x.PositionId == hotel.Position_Id && x.ProductTemplate == "DOUBLE").Select(x => x.RoomNo).FirstOrDefault() ?? "";
                    pos.Twin        = rooms.Where(x => x.PositionId == hotel.Position_Id && x.ProductTemplate == "TWIN").Select(x => x.RoomNo).FirstOrDefault() ?? "";

                    lstHotelposition.Add(pos);
                }
                return(lstHotelposition);
                // model.HotelPositions = lstHotelposition;
            }
            else
            {
                return(null);
                //model.HotelPositions = new List<BookingPositionViewModel>();
            }
        }
示例#2
0
        public async Task <BookingDetailRes> GetAllBookingData(BookingDetailReq bookingGetReq, string ticket)
        {
            BookingDetailRes bookingGetRes = new BookingDetailRes();

            bookingGetRes = await serviceProxy.PostData(_configuration.GetValue <string>("DistributionServiceBooking:GetAllBookingData"), bookingGetReq, typeof(BookingDetailRes), ticket, "Distribution");

            return(bookingGetRes);
        }
示例#3
0
        public List <BookingPositionViewModel> BindMealList(BookingDetailRes response, BookingSearchRes res, ProductRangeGetRes prodRangeGetRes, ProductCatGetRes prodCatGetRes)
        {
            List <BookingPositionViewModel> lstMealposition = new List <BookingPositionViewModel>();

            //ProductRangeGetReq prodRangeGetReq = new ProductRangeGetReq();
            //ProductRangeGetRes prodRangeGetRes = new ProductRangeGetRes();
            //ProductCatGetReq prodCatGetReq = new ProductCatGetReq();
            //ProductCatGetRes prodCatGetRes = new ProductCatGetRes();

            if (response.Booking.Services != null && res.BookingRooms != null)
            {
                var mealpositions = response.Booking.Services.Where(a => a.ProductType.ToUpper() == "MEAL").ToList();                                                                                           //BookingPositions
                var positionIds   = mealpositions.Select(x => x.Position_Id).ToList();
                var rooms         = res.BookingRooms.Where(x => positionIds.Contains(x.PositionId) && x.PersonType == "ADULT").Select(y => new { y.ProductRangeId, y.ProductTemplate, y.PositionId }).ToList(); //BookingRooms

                #region Get Product Range by Product Id list
                //var productRangeIds = rooms.Select(x => x.ProductRangeId).ToList();
                //prodRangeGetReq.ProductRangeIdList = productRangeIds;
                //prodRangeGetRes = objMasterProviders.GetProductRangeByParam(prodRangeGetReq, token).Result;
                var lstrange = prodRangeGetRes.ProductRangeDetails.Select(y => new { y.ProductCategoryId, y.ProductMenu, y.VoyagerProductRange_Id });
                #endregion

                #region Get Product Category by Product Category Id list
                //var productCategoryIds = lstrange.Select(x => x.ProductCategoryId).ToList();
                //prodCatGetReq.ProdCatIdList = productCategoryIds;
                //prodCatGetRes = objMasterProviders.GetProductCategoryByParam(prodCatGetReq, token).Result;
                var lstCategory = prodCatGetRes.ProdCategoryDetails.Select(y => new { y.ProductCategoryId, y.ProductCategoryName });
                #endregion


                foreach (var meal in mealpositions)
                {
                    var prodRangeId = rooms.Where(x => x.PositionId == meal.Position_Id).Select(y => y.ProductRangeId).FirstOrDefault() ?? "";
                    var prodCatId   = lstrange.Where(x => x.VoyagerProductRange_Id == prodRangeId).Select(y => y.ProductCategoryId).FirstOrDefault() ?? "";
                    var pos         = new BookingPositionViewModel();
                    pos.StartDate      = meal.StartDate;
                    pos.Country        = meal.Country;
                    pos.City           = meal.City;
                    pos.ProductName    = meal.ProductName;
                    pos.Status         = meal.Status;
                    pos.RestaurantType = lstCategory.Where(x => x.ProductCategoryId == prodCatId).Select(y => y.ProductCategoryName).FirstOrDefault() ?? "";
                    pos.Meal           = rooms.Where(x => x.PositionId == meal.Position_Id).Select(y => y.ProductTemplate).FirstOrDefault() ?? "";
                    pos.Menu           = lstrange.Where(x => x.VoyagerProductRange_Id == prodRangeId).Select(y => y.ProductMenu).FirstOrDefault() ?? "";

                    lstMealposition.Add(pos);
                }
                return(lstMealposition);
                //model.MealPositions = lstMealposition;
            }
            else
            {
                return(null);
                //model.MealPositions = new List<BookingPositionViewModel>();
            }
        }
        public async Task <IActionResult> GetBookingDetail([FromBody] BookingDetailReq request)
        {
            var response = new BookingDetailRes();

            try
            {
                if (!ModelState.IsValid)
                {
                    response.ResponseStatus.Status       = "Failure";
                    response.ResponseStatus.ErrorMessage = "Request is not valid";
                    return(BadRequest(response.ResponseStatus));
                }
                else
                {
                    if (request != null)
                    {
                        var userdetails = Helpers.CreateToken.ReadToken(HttpContext);

                        if (!string.IsNullOrWhiteSpace(request.BookingReference))
                        {
                            if (request.BookingReference.Length == 6)
                            {
                                var result = await _bookingRepository.GetBookingDetail(request, userdetails);

                                if (result != null)
                                {
                                    if (result.BookingReference == null)
                                    {
                                        response.ResponseStatus.Status       = "Failure";
                                        response.ResponseStatus.ErrorMessage = "User is not authorised to acess the booking " + request.BookingReference;
                                        //return NotFound(response.ResponseStatus);
                                        return(Unauthorized());
                                    }
                                    else
                                    {
                                        response.ResponseStatus.Status = "Success";
                                        response.Booking = result;
                                    }
                                }
                                else
                                {
                                    response.ResponseStatus.Status       = "Failure";
                                    response.ResponseStatus.ErrorMessage = "User is not authorised to update the booking " + request.BookingReference;
                                    return(NotFound(response.ResponseStatus));
                                }
                            }
                            else
                            {
                                response.ResponseStatus.Status       = "Failure";
                                response.ResponseStatus.ErrorMessage = "InValid Booking Reference";
                                return(BadRequest(response.ResponseStatus));
                            }
                        }
                        else
                        {
                            response.ResponseStatus.Status       = "Failure";
                            response.ResponseStatus.ErrorMessage = "Booking Reference cannot be blank";
                            return(BadRequest(response.ResponseStatus));
                        }
                    }
                    else
                    {
                        response.ResponseStatus.Status       = "Failure";
                        response.ResponseStatus.ErrorMessage = "Booking Reference Number can not be blank.";
                        return(BadRequest(response.ResponseStatus));
                    }
                }
            }
            catch (Exception ex)
            {
                response.ResponseStatus.Status       = "Failure";
                response.ResponseStatus.ErrorMessage = "An error occurs " + ex.Message.ToString();
                return(BadRequest(response.ResponseStatus));
            }
            return(Ok(response));
        }