Пример #1
0
        public async Task <ProductSRPSearchRes> GetProductDetailsBySearchCriteria([FromBody] ProductSRPSearchReq request)
        {
            var response = new ProductSRPSearchRes();

            try
            {
                if (request != null)
                {
                    var result = await _productRepository.GetProductDetailsBySearchCriteria(request);

                    if (result != null && result.Count > 0)
                    {
                        response.ResponseStatus.Status = "Success";
                        response.ProductSearchDetails  = result.ToList();
                    }
                    else
                    {
                        response.ResponseStatus.Status       = "Success";
                        response.ResponseStatus.ErrorMessage = "No Records Found.";
                    }
                }
                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 <ProductSRPSearchRes> GetProductSRPDetails(ProductSRPSearchReq productSRPSearchReq, string ticket)
        {
            ProductSRPSearchRes productSRPGetRes = new ProductSRPSearchRes();

            productSRPGetRes = await serviceProxy.PostData(_configuration.GetValue <string>("ServiceProduct:GetProductSRPDetails"), productSRPSearchReq, typeof(ProductSRPSearchRes), ticket);

            return(productSRPGetRes);
        }
Пример #3
0
        public IActionResult GetProductSRPDetail(string CompanyId)
        {
            ProductsSRPViewModel model = new ProductsSRPViewModel();

            #region Get Company info
            AgentGetReq request = new AgentGetReq()
            {
                CompanyId = CompanyId
            };
            AgentGetRes response = agentProviders.GetAgentDetailedInfo(request, token).Result;
            var         product  = response.AgentDetails.Products.Where(x => x.Supplier_Id == CompanyId).FirstOrDefault();
            #endregion

            if (product != null && !string.IsNullOrWhiteSpace(product.Product_Id))
            {
                #region Get ProductSRPDetails
                ProductProviders    productProviders = new ProductProviders(_configuration);
                ProductSRPSearchReq objProdReq       = new ProductSRPSearchReq()
                {
                    ProdId = product.Product_Id
                };
                ProductSRPSearchRes objProdRes = productProviders.GetProductSRPDetails(objProdReq, token).Result;
                var productSRPDetails          = objProdRes.ProductSearchDetails.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
                }).ToList();

                model.ProductSRPDetails = productSRPDetails;

                var userRoles = HttpContext.Request.Cookies["UserRoles"] ?? string.Join(",", UserRoles);
                if (userRoles != null && userRoles.Contains("Administrator"))
                {
                    model.PageName = "PrdSupplierMapping";
                }
            }
            return(PartialView("~/Areas/Product/Views/ProductSRP/_ProductInfo.cshtml", model));

            #endregion
        }
Пример #4
0
        public IActionResult ProductSearchResultPage(ProductSRPFilters filters)
        {
            ProductsSRPViewModel productsSRPViewModel = new ProductsSRPViewModel();
            ProductProviders     productProviders     = new ProductProviders(_configuration);
            ProductSRPSearchReq  objQRFAgentRequest   = new ProductSRPSearchReq()
            {
                ProdType       = filters.ProductType,
                ProdName       = filters.ProdName,
                ProdCode       = filters.ProdCode,
                CityName       = filters.CityName,
                Location       = filters.Location == "Select" ? null : filters.Location,
                BudgetCategory = filters.BudgetCategory == "Select" ? null : filters.BudgetCategory,
                Chain          = filters.Chain,
                StarRating     = filters.StarRating,
                Status         = filters.Status
            };
            ProductSRPSearchRes objProposalRes = productProviders.GetProductSRPDetails(objQRFAgentRequest, token).Result;

            productsSRPViewModel.ProductSRPDetails = objProposalRes.ProductSearchDetails.Select(a => new ProductSRPDetails
            {
                Address           = a.Address,
                BdgPriceCategory  = a.BdgPriceCategory,
                Chain             = a.Chain,
                CityName          = a.CityName,
                CountryName       = a.CountryName,
                DefaultSupplier   = a.DefaultSupplier,
                DefaultSupplierId = a.DefaultSupplierId,
                HotelImageURL     = a.HotelImageURL != null ? a.HotelImageURL.Replace("resources/", "ImageResources/") : 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
            }).ToList();

            var userRoles = HttpContext.Request.Cookies["UserRoles"] ?? string.Join(",", UserRoles);

            if (userRoles != null && userRoles.Contains("Administrator"))
            {
                productsSRPViewModel.PageName = "PrdSupplierMapping";
            }

            return(PartialView("_ProductInfo", productsSRPViewModel));
        }
Пример #5
0
        public async Task <List <mProducts_Lite> > GetProductDetailsBySearchCriteria(ProductSRPSearchReq request)
        {
            FilterDefinition <mProducts_Lite> filter;

            filter = Builders <mProducts_Lite> .Filter.Empty;
            List <mProducts_Lite> result = new List <mProducts_Lite>();

            try
            {
                if (!string.IsNullOrWhiteSpace(request.ProdId))
                {
                    filter = filter & Builders <mProducts_Lite> .Filter.Where(f => f.VoyagerProduct_Id == request.ProdId);
                }

                if (!string.IsNullOrWhiteSpace(request.ProdType))
                {
                    filter = filter & Builders <mProducts_Lite> .Filter.Eq(f => f.ProductType, request.ProdType.Trim());
                }

                if (!string.IsNullOrWhiteSpace(request.CityName))
                {
                    string[] CityCountry = request.CityName.Split(',');
                    if (CityCountry.Length > 0)
                    {
                        filter = filter & Builders <mProducts_Lite> .Filter.Regex(x => x.CountryName, new BsonRegularExpression(new Regex(CityCountry[1].Trim(), RegexOptions.IgnoreCase)));

                        if (CityCountry.Length > 1)
                        {
                            filter = filter & Builders <mProducts_Lite> .Filter.Regex(x => x.CityName, new BsonRegularExpression(new Regex(CityCountry[0].Trim(), RegexOptions.IgnoreCase)));

                            filter = filter & Builders <mProducts_Lite> .Filter.Where(x => x.Placeholder == false || x.Placeholder == null);
                        }
                    }
                }

                if (!string.IsNullOrWhiteSpace(request.ProdName))
                {
                    request.ProdName = request.ProdName.Replace("###", "");
                    filter           = filter & Builders <mProducts_Lite> .Filter.Regex(x => x.ProdName, new BsonRegularExpression(new Regex(request.ProdName.Trim(), RegexOptions.IgnoreCase)));
                }

                if (!string.IsNullOrWhiteSpace(request.ProdCode))
                {
                    filter = filter & Builders <mProducts_Lite> .Filter.Regex(x => x.ProductCode, new BsonRegularExpression(new Regex(request.ProdCode.Trim(), RegexOptions.IgnoreCase)));
                }

                if (!string.IsNullOrWhiteSpace(request.Status))
                {
                    if (request.Status == "Active")
                    {
                        filter = filter & Builders <mProducts_Lite> .Filter.Where(f => f.Status == null || f.Status == "" || f.Status == " ");
                    }
                    else if (request.Status == "Inactive")
                    {
                        filter = filter & Builders <mProducts_Lite> .Filter.Where(f => f.Status == "-" || f.Status == "X");
                    }
                }

                if (!string.IsNullOrWhiteSpace(request.BudgetCategory))
                {
                    filter = filter & Builders <mProducts_Lite> .Filter.Eq(x => x.BdgPriceCategory, request.BudgetCategory.Trim());
                }

                if (!string.IsNullOrWhiteSpace(request.StarRating))
                {
                    filter = filter & Builders <mProducts_Lite> .Filter.Eq(x => x.StarRating, request.StarRating.Trim());
                }

                if (!string.IsNullOrWhiteSpace(request.Location))
                {
                    filter = filter & Builders <mProducts_Lite> .Filter.Eq(f => f.Location, request.Location.Trim());
                }

                if (!string.IsNullOrWhiteSpace(request.Chain))
                {
                    filter = filter & Builders <mProducts_Lite> .Filter.Eq(x => x.Chain, request.Chain.Trim());
                }

                if (request.Facilities != null && request.Facilities.Count > 0)
                {
                    foreach (var item in request.Facilities)
                    {
                        filter = filter & Builders <mProducts_Lite> .Filter.Where(f => f.ProductFacilities.Select(a => a.FacilityDescription).ToList().Contains(item));
                    }
                }

                result = await _MongoContext.mProducts_Lite.Find(filter).ToListAsync();

                result = result.OrderBy(p => p.ProdName).ToList();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
            return(result ?? new List <mProducts_Lite>());
        }