Пример #1
0
        [Route("GetProductSRPHotelDetails")]//GetProductSRPHotelDetails
        public async Task <ProductSRPHotelGetRes> GetProductSRPHotelDetails([FromBody] ProductSRPHotelGetReq request)
        {
            var response = new ProductSRPHotelGetRes();

            try
            {
                if (request != null)
                {
                    response = await _productRepository.GetProductSRPHotelDetails(request);

                    if (response == null)
                    {
                        response.ResponseStatus.Status       = "Failure";
                        response.ResponseStatus.ErrorMessage = "An error.";
                    }
                }
                else
                {
                    response.ResponseStatus.Status       = "Failure";
                    response.ResponseStatus.ErrorMessage = "Product details can not be blank.";
                }
            }
            catch (Exception ex)
            {
                response.ResponseStatus.Status       = "Failure";
                response.ResponseStatus.ErrorMessage = "An error occurs " + ex.Message;
            }
            return(response);
        }
Пример #2
0
        public async Task <ProductSRPHotelGetRes> GetProductSRPHotelDetails(ProductSRPHotelGetReq productSRPSearchReq, string ticket)
        {
            ProductSRPHotelGetRes productSRPHotelGetRes = new ProductSRPHotelGetRes();

            productSRPHotelGetRes = await serviceProxy.PostData(_configuration.GetValue <string>("ServiceProduct:GetProductSRPHotelDetails"), productSRPSearchReq, typeof(ProductSRPHotelGetRes), ticket);

            return(productSRPHotelGetRes);
        }
        public IActionResult Accomodation()
        {
            string QRFID = Request.Query["QRFId"].ToString();
            AccomodationAmendmentVM model = new AccomodationAmendmentVM();

            model.MenuViewModel.QRFID    = QRFID;
            model.MenuViewModel.MenuName = "Accomodation";

            #region Get Costing Officer Tour Info Header By QRFId
            NewQuoteViewModel modelQuote = new NewQuoteViewModel {
                QRFID = QRFID
            };
            model.COHeaderViewModel = coCommonLibrary.GetCOTourInfoHeader(ref modelQuote, token);
            //model.MenuViewModel.EnquiryPipeline = modelQuote.mdlMenuViewModel.EnquiryPipeline;
            #endregion

            ProductProviders      productProviders = new ProductProviders(_configuration);
            ProductSRPHotelGetRes response         = productProviders.GetProductSRPHotelDetails(new ProductSRPHotelGetReq()
            {
                QRFID = QRFID
            }, token).Result;
            model.ProductSRPRouteInfo = response.ProductSRPRouteInfo;
            return(View(model));
        }
Пример #4
0
        public async Task <ProductSRPHotelGetRes> GetProductSRPHotelDetails(ProductSRPHotelGetReq request)
        {
            ProductSRPHotelGetRes response = new ProductSRPHotelGetRes()
            {
                ProductSRPRouteInfo = new List <ProductSRPRouteInfo>(), QRFID = request.QRFID, ResponseStatus = new ResponseStatus()
            };

            try
            {
                var resQuote = await _MongoContext.mQuote.FindAsync(a => a.QRFID == request.QRFID).Result.FirstOrDefaultAsync();

                if (resQuote != null)
                {
                    var accomres = new mPosition();
                    var position = _MongoContext.mPosition.AsQueryable().Where(x => x.QRFID == request.QRFID && x.ProductType == "Hotel" && x.IsDeleted == false).ToList();
                    if (position != null && position.Count > 0)
                    {
                        if (resQuote.RoutingInfo != null && resQuote.RoutingInfo.Count > 0)
                        {
                            var prodidlist = position.Select(a => a.ProductID).ToList();
                            FilterDefinition <mProducts_Lite> filter;
                            filter = Builders <mProducts_Lite> .Filter.Empty;
                            filter = filter & Builders <mProducts_Lite> .Filter.Where(a => prodidlist.Contains(a.VoyagerProduct_Id));

                            var resultProdSRP = await _MongoContext.mProducts_Lite.Find(filter).ToListAsync();

                            int day       = 0;
                            int prevnight = 0;
                            foreach (var Route in resQuote.RoutingInfo.Where(a => a.Nights > 0))
                            {
                                if (day == 0)
                                {
                                    day = 1;
                                }
                                else
                                {
                                    day = prevnight + day;
                                }

                                response.ProductSRPRouteInfo.Add(new ProductSRPRouteInfo
                                {
                                    DayNo         = day,
                                    Day           = "Day " + day.ToString(),
                                    Duration      = Route.Nights,
                                    RoutingDaysID = resQuote.RoutingDays.Where(a => a.Days == "Day " + day.ToString()).FirstOrDefault().RoutingDaysID,
                                    FromCityId    = Route.FromCityID,
                                    FromCity      = Route.FromCityName,
                                    ToCityId      = Route.ToCityID,
                                    ToCity        = Route.ToCityName,
                                });
                                prevnight = Route.Nights;
                            }

                            foreach (var item in response.ProductSRPRouteInfo)
                            {
                                accomres = position.Where(a => a.RoutingDaysID == item.RoutingDaysID).FirstOrDefault();
                                item.ProductSRPDetails = resultProdSRP.Where(a => a.VoyagerProduct_Id == accomres.ProductID).Select(a => new ProductSRPDetails
                                {
                                    Address           = a.Address,
                                    BdgPriceCategory  = a.BdgPriceCategory,
                                    Chain             = a.Chain,
                                    CityName          = a.CityName,
                                    CountryName       = a.CountryName,
                                    DefaultSupplier   = a.DefaultSupplier,
                                    HotelImageURL     = a.HotelImageURL,
                                    HotelType         = a.HotelType,
                                    Location          = a.Location,
                                    PostCode          = a.PostCode,
                                    ProdDesc          = a.ProdDesc,
                                    ProdName          = a.ProdName,
                                    ProductCode       = a.ProductCode,
                                    ProductType       = a.ProductType,
                                    StarRating        = a.StarRating,
                                    Street            = a.Street,
                                    VoyagerProduct_Id = a.VoyagerProduct_Id,
                                    ProductType_Id    = a.ProductType_Id,
                                    Rooms             = a.Rooms
                                }).FirstOrDefault();

                                if (accomres != null)
                                {
                                    item.ProdId = accomres.ProductID;
                                }
                            }

                            response.ResponseStatus.Status = "Success";
                        }
                        else
                        {
                            response.ResponseStatus.ErrorMessage = "RoutingInfo not exists in mQuote.";
                            response.ResponseStatus.Status       = "Error";
                        }
                    }
                    else
                    {
                        response.ResponseStatus.ErrorMessage = "QRFID not exists in mPosition.";
                        response.ResponseStatus.Status       = "Error";
                    }
                }
                else
                {
                    response.ResponseStatus.ErrorMessage = "QRFID not exists in mQuote.";
                    response.ResponseStatus.Status       = "Error";
                }
            }
            catch (Exception)
            {
                throw;
            }
            return(response);
        }