public JsonResult _SaveDetail(OrderDetail model, ProductDetailRequest productRequest) { if (productRequest != null && productRequest.IsNewProduct && productRequest.ProductName != null) { var product = StockTakeApiService.CreateProductOnStockTake(productRequest); model.ProductId = product.Result.ProductId; } model = _commonDbServices.SetDetails(model, productRequest.AccountId, Request.UrlReferrer.AbsolutePath, productRequest.ProcessByType); if (Request.UrlReferrer.AbsolutePath.Contains("SalesOrder") && model.ProductId > 0 && model.OrderDetailID < 1) { var minPrice = _productPriceService.GetProductPriceThresholdByAccountId(model.ProductId, productRequest != null ? productRequest.AccountId : 0); if (model.Price < minPrice.MinimumThresholdPrice) { minPrice.Success = false; model.OrderDetailStatusId = (int)OrderStatusEnum.AwaitingAuthorisation; if (productRequest.ThresholdAcknowledged) { UpdatedOrderDetails(model, productRequest.CaseQuantity, productRequest.PageSessionToken); return(Json(new { error = "" }, JsonRequestBehavior.AllowGet)); } return(Json(new { error = minPrice.FailureMessage, Threshold = minPrice }, JsonRequestBehavior.AllowGet)); } } UpdatedOrderDetails(model, productRequest.CaseQuantity, productRequest.PageSessionToken, productRequest.IsTransferAdd); return(Json(new { error = "" }, JsonRequestBehavior.AllowGet)); }
public IResponseBase Execute(IRequestParameter parameters) { var result = new Response <ProductDetailResponse>(); try { _request = (ProductDetailRequest)parameters; var cacheKey = string.Format(Config.CacheKeys.ProductDetails, _request.Id, _request.Color); result = CacheMemory.Get <Response <ProductDetailResponse> >(cacheKey); if (result == null || string.IsNullOrWhiteSpace(result.resultset.Product.ProductId)) { var config = BuildAPIConfig(parameters); result = GetResponse(config); if (!result.errors.Any() && !string.IsNullOrEmpty(result.resultset.Product.ProductId)) { CacheMemory.SetAndExpiresHoursAsync(cacheKey, result, 1); } } } catch (Exception ex) { _errors.Add(ex.Handle("ProductDetail.Execute", ErrorSeverity.FollowUp, ErrorType.RequestError)); } return(result); }
public JsonResult CreateProduct(BSDto product) { if ((product.IsNewProduct == true) && (product.ProductName != null)) { ProductDetailRequest productDetailRequest = new ProductDetailRequest(); productDetailRequest.IsNewProduct = product?.IsNewProduct ?? false; productDetailRequest.ProductName = product?.ProductName; productDetailRequest.TenantId = CurrentTenantId; productDetailRequest.TaxIds = product?.TaxId ?? 3; productDetailRequest.ProductDesc = product.ProductDesc; productDetailRequest.ProductDepartmentId = product.ProductDepartmentId; productDetailRequest.ProductGroupId = product.ProductGroupId; var products = StockTakeApiService.CreateProductOnStockTake(productDetailRequest); if (!string.IsNullOrEmpty(products?.Result?.FailureMessage)) { return(Json(products.Result.FailureMessage)); } product.ProductId = products.Result.ProductId; product.ProductName = product.ProductName; product.SKU = products.Result.ProductCode; product.GroupProduct = products.Result.ProductGroup; } product.Quantity = product.Quantity ?? 1; product.Price = product.Price ?? 0; var lst = Session["bsList"] as List <BSDto>; product.Id++; lst.Add(product); return(null); }
/// <summary> /// Get Product Details /// </summary> /// <param name="code"></param> /// <param name="currencyCode"></param> /// <param name="excludeTourGradeAvailability"></param> /// <param name="showUnavailable"></param> /// <returns></returns> public async Task <ProductDetailResponse> GetProductDetailInfo(ProductDetailRequest productDetailModel, ViatorSetting setting = null) { var uri = $"service/product"; string finalURL = $"{GenerateBaseURL(uri, setting)}&{GenerateQueryString(productDetailModel)}"; var response = await _httpClient.GetStringAsync(finalURL); var result = ProductDetailResponse.FromJson(response); return(result); }
/// <summary> /// 获取图文描述 /// </summary> /// <param name="request"></param> /// <returns></returns> public Task <List <string> > GetProductDescx(ProductDetailRequest request) { return(Task.Factory.StartNew(() => { ProductDescxResponse response = new HttpUtils().DoGet <ProductDescxResponse>(ConstantsUtils.TAOBAO_API_PRODUCTDESCX, new Dictionary <string, string>() { { "data", "{'item_num_id':" + request.ProductId + "}" }, { "type", "json" }, { "_", DateTime.Now.Ticks.ToString() } }); if (null != response && response.Data != null && null != response.Data.Images) { return response.Data.Images.Select(item => ToolUtils.GetThumbnail(item, "")).ToList(); } return new List <string>(); })); }
public async Task <ProductDetailResponse> ProductDetail(ProductDetailRequest request) { var detailTask = taobaoApiDataRepository.GetProductDetail(request); var imageTask = taobaoApiDataRepository.GetProductDescx(request); return(await Task.WhenAll(detailTask, imageTask).ContinueWith(tasks => { TbkDetailInfo apiDetail = detailTask.Result; if (null != detailTask && !string.IsNullOrWhiteSpace(apiDetail.NumIid)) { return new ProductDetailResponse() { Details = imageTask.Result, SPLM = apiDetail.CategoryId, SPMC = apiDetail.Title, Images = apiDetail.Images, Evaluates = apiDetail.Evaluates, DPMC = apiDetail.ShopName, DPZT = apiDetail.ShopIcon }; } else { NTbkItem sdkDetail = taobaoSdkDataRepository.GetDetail(request.ProductId); if (sdkDetail == null) { return new ProductDetailResponse(); } sdkDetail.SmallImages.Insert(0, sdkDetail.PictUrl); return new ProductDetailResponse() { SPMC = sdkDetail.Title, Images = sdkDetail.SmallImages?.Select(item => ToolUtils.GetThumbnail(item, size: ""))?.ToList(), Details = imageTask.Result }; } })); }
public static dbentities.Product DtoToEntity(this ProductDetailRequest request) { dbentities.Product entity = null; if (request != null) { entity = new dbentities.Product { ProductID = request.ProductId, ProductCode = request.ProductCode, IsActive = request.IsActive, CreatedBy = request.CreatedBy, CreatedTime = request.CreatedTime, ModifiedBy = request.ModifiedBy, ModifiedTime = request.ModifiedTime, ProductDescription = request.ProductDescription, Quantity = request.Quantity, CategoryID = request.CategoryId }; } return(entity); }
/// <summary> /// GetProductDetailByID /// </summary> /// <param name="request">ProductDetailRequest</param> /// <returns>GetProductDetailResponse</returns> public async Task <GetProductDetailResponse> GetProductDetailByID(ProductDetailRequest request) { var response = new GetProductDetailResponse(); try { var param = new ProductDetailByIDParameter() { ID = request.ID }; var result = _dataAccess.GetProductDetailByID(param); if (result != null) { response.ProductDetail = mapper.Map <GETPRODUCTDETAIL_BY_ID_Result, ProductDetailDto>(result); response.Success = true; } } catch (Exception ex) { response.Success = false; } return(await Task.FromResult(response)); }
public JsonResult UpdateProductDetails(ProductDetailRequest request) { bool isSucess = false; string messageAlert = string.Empty; bool productUpdateResult = false; var currentUserId = Session[LookupKey.SessionVariables.UserId].IsNull() ? 0 : Convert.ToInt64(Session[LookupKey.SessionVariables.UserId]); var passedProductResult = _productServices.GetAll().Where(m => m.ProductId == request.ProductId).FirstOrDefault(); request.CreatedTime = passedProductResult.CreatedTime; request.ModifiedBy = currentUserId; request.ModifiedTime = DateTime.Now; //if (ModelState.IsValid) //{ var codeProductDetailResult = _productServices.GetAll().Where(p => p.ProductCode == request.ProductCode && p.IsActive && p.ProductId != request.ProductId).FirstOrDefault(); #region Validate same product code if (!codeProductDetailResult.IsNull()) { return(Json(new { isSucess = isSucess, messageAlert = Messages.ProductCodeValidation }, JsonRequestBehavior.AllowGet)); } #endregion //Update Product Details productUpdateResult = _productServices.UpdateDetails(request); if (!productUpdateResult) { return(Json(new { isSucess = isSucess, messageAlert = Messages.ServerError }, JsonRequestBehavior.AllowGet)); } #region Product Price for (int i = 1; i <= 3; i++) { var price = 0.0m; switch (i) { case 1: price = request.BigBuyerPrice; break; case 2: price = request.ResellerPrice; break; case 3: price = request.RetailerPrice; break; default: price = 0; break; } var productPricesResult = _productServices.GetAllProductPrices().Where(m => m.ProductId == request.ProductId && m.PriceTypeId == i).FirstOrDefault(); if (!productPricesResult.IsNull()) { ProductPricesLogDetailRequest productPricesLogDetailRequest = new ProductPricesLogDetailRequest() { ProductId = request.ProductId, PriceTypeId = i, Price = price, ProductPriceLogsId = 0, CreatedBy = currentUserId, CreatedTime = DateTime.Now, }; _productServices.SaveProductLogPrices(productPricesLogDetailRequest); } ProductPricesDetailRequest productPricesDetailRequest = new ProductPricesDetailRequest() { ProductId = request.ProductId, PriceTypeId = i, Price = price }; _productServices.UpdateProductPrice(productPricesDetailRequest); } #endregion var productLogDetailRequest = new ProductLogDetailRequest() { ProductLogsId = 0, ProductId = request.ProductId, ProductCode = request.ProductCode, ProductDescription = request.ProductDescription, Quantity = request.Quantity, //UnitPrice = request.UnitPrice, IsActive = request.IsActive, CreatedBy = request.ModifiedBy, CreatedTime = DateTime.Now, ModifiedBy = null, ModifiedTime = null, CategoryId = request.CategoryId }; var productLogResult = _productServices.SaveProductLogs(productLogDetailRequest); if (productLogResult <= 0) { return(Json(new { isSucess = isSucess, messageAlert = Messages.ServerError }, JsonRequestBehavior.AllowGet)); } isSucess = true; var response = new { isSucess = isSucess, messageAlert = messageAlert }; return(Json(response, JsonRequestBehavior.AllowGet)); //} //else //{ // var errors = ModelState.Values.SelectMany(v => v.Errors) // .ToList(); // foreach (var err in errors) // { // Logging.Information("(Response-Model-Stocks) UpdateProductDetails : " + err.ErrorMessage); // } // return Json(new { isSucess = isSucess, messageAlert = Messages.ErrorOccuredDuringProcessing }, JsonRequestBehavior.AllowGet); //} }
/// <summary> /// Takes a list of products (as a SkuPidCatalog array) and filters out products that don't exist. /// </summary> private SkuPidCatalog[] VerifyProductsExist(SkuPidCatalog[] skuPidCatalogs) { // Handle empty list efficiently if (skuPidCatalogs.Length == 0) { return(skuPidCatalogs); } Product[] products = null; // Load the products from CSI using (var catalogueService = _catalogueServiceFactory.Create()) { var request = new ProductDetailRequest() { GetRatingsData = false, GetExtendedInfo = false, GetExternalResources = false, GetCdTracks = false, GetStorePrices = false, UpdateProductWithSales = false, GetReviews = false, GetProductAvailability = false, SearchAllCatalogues = true, Language = Language.English, GetEndecaData = false, OfferDetailLevel = SpecialOfferDetailLevel.None, PromotionsTestEffectiveDate = null, IsPreview = false }; var pidCatalogs = skuPidCatalogs .Select(spc => string.Format("{0}:{1}", spc.Pid, spc.Catalog)) .ToArray(); products = catalogueService.ServiceClient.GetProducts(pidCatalogs, request, Channel.Online); } // Create list of PIDs found string[] pidsFound = new string[0]; if (products != null) { pidsFound = products .Where(p => p != null && !string.IsNullOrWhiteSpace(p.PID) && !string.IsNullOrWhiteSpace(p.Title)) .Select(product => product.PID) .ToArray(); } // Collect results var verifiedSkuPidCatalogs = new List <SkuPidCatalog>(); foreach (var skuPidCatalog in skuPidCatalogs) { if (pidsFound.Contains(skuPidCatalog.Pid)) { verifiedSkuPidCatalogs.Add(skuPidCatalog); } } // Log SKUs that were removed var removedSkuPidCatalogs = skuPidCatalogs.Except(verifiedSkuPidCatalogs); if (removedSkuPidCatalogs.Any()) { Log.WarnFormat("The following SKUs were removed because the products don't exist: {0}", string.Join(", ", removedSkuPidCatalogs.Select(spc => spc.Sku))); } return(verifiedSkuPidCatalogs.ToArray()); }
public async Task <IHttpActionResult> CreateProductOnStockTake(ProductDetailRequest request) { var result = await StockTakeApiService.CreateProductOnStockTake(request); return(Ok(result)); }
public IHttpActionResult GetProductDetail(ProductDetailRequest RequestData) { var result = _businessLogic.GetProductDetailByID(RequestData); return(new ActionResult <GetProductDetailResponse>(result.Result, Request)); }
/// <summary> /// 获取详情描述6.0 /// </summary> public Task <TbkDetailInfo> GetProductDetail(ProductDetailRequest request) { return(Task.Factory.StartNew(() => { return new TbkDetailInfo(); string reqData = Uri.EscapeDataString(JsonConvert.SerializeObject(new TaobaoProductDetailRequest() { ItemNumId = request.ProductId.ToString(), DetailV = "3.0.7", ExParams = JsonConvert.SerializeObject(new ProductDetailExParams() { CountryCode = "CN", Id = request.ProductId.ToString(), ItemId = request.ProductId.ToString(), PhoneType = "iPhone7,1", Time = ToolUtils.GetUnixTime() }) })); int random = ToolUtils.GetRandomNum() % 3; string url = ""; if (random == 0) { url = $"{ConstantsUtils.TAOBAO_API_PRODUCTDETAIL}?id={request.ProductId}"; TaobaoProductDetailV5Response responseV5 = new HttpUtils().DoGet <TaobaoProductDetailV5Response>(url, null); if (null != responseV5 && responseV5.Data != null && responseV5.Data.ItemInfoModel != null && responseV5.Data.Seller != null) { var lstImage = responseV5.Data.ItemInfoModel.PicsPath?.Select(item => ToolUtils.GetThumbnail(item, "")).ToList(); return new TbkDetailInfo() { Title = responseV5.Data.ItemInfoModel.Title, CategoryId = responseV5.Data.ItemInfoModel.CategoryId, Evaluates = responseV5.Data.Seller.EvaluateInfo.Select(item => new Evaluate() { Title = item.Title, Score = item.Score }).ToList(), ShopIcon = ToolUtils.GetThumbnail(responseV5.Data.Seller.PicUrl, ""), NumIid = responseV5.Data.ItemInfoModel.ItemId, ShopName = responseV5.Data.Seller.ShopTitle, Images = lstImage ?? new List <string>() }; } } else { if (random == 1) { url = $"{ConstantsUtils.TAOBAO_API_PRODUCTDETAIL1}?data={reqData}"; } else { url = $"{ConstantsUtils.TAOBAO_API_PRODUCTDETAIL2}?data={reqData}"; } TaobaoProductDetailResponse responseV6 = new HttpUtils().DoGet <TaobaoProductDetailResponse>(url, null); if (null != responseV6 && null != responseV6.Data && null != responseV6.Data.Item && null != responseV6.Data.Seller) { var lstImage = responseV6.Data.Item.Images?.Select(item => ToolUtils.GetThumbnail(item, "")).ToList(); return new TbkDetailInfo() { NumIid = responseV6.Data.Item.ItemId, Title = responseV6.Data.Item.Title, CategoryId = responseV6.Data.Item.CategoryId, Images = lstImage ?? new List <string>(), ShopIcon = ToolUtils.GetThumbnail(responseV6.Data.Seller.ShopIcon, ""), ShopName = responseV6.Data.Seller.ShopName, Evaluates = responseV6.Data.Seller.Evaluates.Select(item => new Evaluate { Score = item.Score, Title = item.Title }).ToList() }; } } return new TbkDetailInfo(); })); }
public async Task <IHttpActionResult> VerifyProductInfoBySerial(ProductDetailRequest request) { var result = await _productService.GetProductInfoBySerial(request.SerialCode, request.TenantId); return(Ok(result)); }
public IActionResult UpdateProductDetails(ProductDetailRequest request) { bool isSucess = false; string messageAlert = string.Empty; bool productUpdateResult = false; var currentUserId = HttpContext.Session.GetString(LookupKey.SessionVariables.UserId).IsNull() ? 0 : Convert.ToInt64(HttpContext.Session.GetString(LookupKey.SessionVariables.UserId)); var passedProductResult = _productService.GetAllProductDetails().Where(m => m.ProductId == request.ProductId).FirstOrDefault(); request.CreatedTime = passedProductResult.CreatedTime; request.ModifiedBy = currentUserId; request.ModifiedTime = DateTime.Now; var codeProductDetailResult = _productService.GetAllProductDetails().Where(p => p.ProductCode == request.ProductCode && p.IsActive && p.ProductId != request.ProductId).FirstOrDefault(); #region Validate same product code if (!codeProductDetailResult.IsNull()) { return(Ok(new { isSucess = isSucess, messageAlert = Messages.ProductCodeValidation })); } #endregion //Update Product Details productUpdateResult = _productService.UpdateDetails(request); if (!productUpdateResult) { return(Ok(new { isSucess = isSucess, messageAlert = Messages.ServerError })); } var productHistoryDetailRequest = new ProductHistoryDetailRequest() { ProductHistoryId = 0, ProductId = request.ProductId, QuantityAmmend = 0, QuantityPrevious = codeProductDetailResult.Quantity, QuantityCurrent = codeProductDetailResult.Quantity, OrderTransactionTypeId = LookupKey.OrderTransactionType.UpdateProductDetailsId, OrderRemarks = request.OrderRemarks, CreatedBy = currentUserId, CreatedTime = DateTime.Now, ModifiedBy = null, ModifiedTime = null }; var productHistoryId = _productService.SaveProductHistory(productHistoryDetailRequest); if (productHistoryId <= 0) { return(Ok(new { isSucess = isSucess, messageAlert = Messages.ServerError })); } isSucess = true; var response = new { isSucess = isSucess, messageAlert = messageAlert }; return(Ok(response)); }