public IActionResult UnlinkShop(int shopId, bool clean = true) { var context = new UnlinkShopContext(shopId); var worker = new ProductsHandler(_settings.ElasticSearchClientSettings, context, _works, _dbHelper); return(_works.AddToQueue(worker.UnlinkShop, context, QueuePriority.Low, clean)); }
/// <summary> /// Generates a query to receive selected <c>products</c> from a Shopify store. The generated query will query the following on products: /// - id /// - title /// - descriptionHtml /// - images (with aliases defined by ShopifyClient.defaultImageResolutions) /// - altText /// - src /// - options /// - name /// - values /// - variants /// - id /// - available /// - price /// - title /// - weight /// - weightUnit /// - selectedOptions /// - name /// - values /// - image (with aliases defined by ShopifyClient.defaultImageResolutions) /// - altText /// - src /// - collections /// - image (with aliases defined by ShopifyClient.defaultImageResolutions) /// - altText /// - src /// - title /// - updatedAt /// /// </summary> /// <param name="callback">callback that will receive responses from server</param> /// <param name="productIds">a list of product ids you'd like to query</param> /// \code /// // Example usage querying two product ids using a List<string> /// List<string> productIds = new List<string>() { /// "Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0Lzk4OTUyNzYwOTk=", /// "Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0Lzk4OTUyNzkwNDM=" /// }; /// /// ShopifyBuy.Client().products((products, error) => { /// Debug.Log(products[0].title()); /// Debug.Log(products[1].title()); /// }, productIds); /// \endcode public void products(ProductsHandler callback, List <string> productIds) { QueryRootQuery query = new QueryRootQuery(); query.nodes(n => n .onProduct((p) => { DefaultQueries.products.Product(p, DefaultImageResolutions); }), ids: productIds ); Loader.Query(query, (response) => { var error = (ShopifyError)response; if (error != null) { callback(null, error); } else { List <Product> products = new List <Product> (); foreach (Shopify.Unity.Product product in response.data.nodes()) { products.Add(product); } callback(products, error); } }); }
public string submitAllProducts(string productsListSTR) { try { var list = JsonConvert.DeserializeObject <List <DataEntryDAL.CustomDataOBJ.PRODUCT> >(productsListSTR); ReturnObject <int> output = null; ProductsHandler handler = new ProductsHandler(); var result = handler.INSERT_ALL_PRODUCTS(list); output = new ReturnObject <int>(ErrorConstants.SUCCESS, result); if (result != -1) { return(JsonConvert.SerializeObject(output)); } else { return(JsonConvert.SerializeObject(new ReturnObject <string>(ErrorConstants.ERROR_FAILED_TO_ADD_FLYER_PRODUCTS, ErrorConstants.ERROR_FAILED_TO_ADD_FLYER_PRODUCTS_MSG))); } } catch (Exception ex) { return(JsonConvert.SerializeObject(new ReturnObject <string>(ErrorConstants.ERROR_EXCEPTION, ex.Message))); } }
public string getAllProductsList(int flyerID, int parentID) { ReturnObject <List <DataEntryDAL.CustomDataOBJ.PRODUCT> > output = null; try { ProductsHandler handler = new ProductsHandler(); var result = handler.getProductsList(flyerID, parentID); output = new ReturnObject <List <DataEntryDAL.CustomDataOBJ.PRODUCT> >(ErrorConstants.SUCCESS, result); if (result != null && result.Count > 0) { return(JsonConvert.SerializeObject(output)); } else { return(JsonConvert.SerializeObject(new ReturnObject <string>(ErrorConstants.ERROR_FAILED_TO_GET_FLYER_PRODUCTS, ErrorConstants.ERROR_FAILED_TO_GET_FLYER_PRODUCTS_MSG))); } } catch (Exception ex) { return(JsonConvert.SerializeObject(new ReturnObject <string>(ErrorConstants.ERROR_EXCEPTION, ex.Message))); } }
public string getAllProductOfferTypes() { ReturnObject <List <PROD_OFF_TYP> > output = null; try { ProductsHandler handler = new ProductsHandler(); List <PROD_OFF_TYP> typesList = handler.RETRIEVE_ALL_PRODUCT_OFFER_TYPES(); output = new ReturnObject <List <PROD_OFF_TYP> >(ErrorConstants.SUCCESS, typesList); if (typesList != null && typesList.Count > 0) { return(JsonConvert.SerializeObject(output)); } else { return(JsonConvert.SerializeObject(new ReturnObject <string>(ErrorConstants.ERROR_FAILED_GET_PRODUCT_OFFER_TYPES, ErrorConstants.ERROR_FAILED_GET_PRODUCT_OFFER_TYPES_MSG))); } } catch (Exception ex) { return(JsonConvert.SerializeObject(new ReturnObject <string>(ErrorConstants.ERROR_EXCEPTION, ex.Message))); } }
public string getFlyerProducts(int flyerID) { ReturnObject <List <GET_FLYER_PRODUCTS_DATAResult> > output = null; try { ProductsHandler handler = new ProductsHandler(); List <GET_FLYER_PRODUCTS_DATAResult> prodData = handler.GET_FLYER_PRODUCTS(flyerID); output = new ReturnObject <List <GET_FLYER_PRODUCTS_DATAResult> >(ErrorConstants.SUCCESS, prodData); if (prodData.Count > 0) { return(JsonConvert.SerializeObject(output)); } else { return(JsonConvert.SerializeObject(new ReturnObject <string>(ErrorConstants.ERROR_FAILED_TO_GET_FLYER_PRODUCTS, ErrorConstants.ERROR_FAILED_TO_GET_FLYER_PRODUCTS_MSG))); } } catch (Exception ex) { return(JsonConvert.SerializeObject(new ReturnObject <string>(ErrorConstants.ERROR_EXCEPTION, ex.Message))); } }
public string getTypeAllSpecs(int typeID) { List <PROD_TYPE_TEMPLATE> types = null; ReturnObject <List <PROD_TYPE_TEMPLATE> > typesObj = null; try { ProductsHandler handler = new ProductsHandler(); types = handler.getAllTypeSpecs(typeID); typesObj = new ReturnObject <List <PROD_TYPE_TEMPLATE> >(ErrorConstants.SUCCESS, types); if (types != null) { return(JsonConvert.SerializeObject(typesObj)); } else { return(JsonConvert.SerializeObject(new ReturnObject <string>(ErrorConstants.ERROR_FAILED_GET_TYPE_SPECS, ErrorConstants.ERROR_FAILED_GET_TYPE_SPECS_MSG))); } } catch (Exception ex) { return(JsonConvert.SerializeObject(new ReturnObject <string>(ErrorConstants.ERROR_EXCEPTION, ex.Message))); } }
public string getAllCategoryTypes(int categoryID) { List <PRODUCT_TYPE> types = null; ReturnObject <List <PRODUCT_TYPE> > typesObj = null; try { ProductsHandler handler = new ProductsHandler(); types = handler.getAllCategoryTypes(categoryID); typesObj = new ReturnObject <List <PRODUCT_TYPE> >(ErrorConstants.SUCCESS, types); if (types != null) { return(JsonConvert.SerializeObject(typesObj)); } else { return(JsonConvert.SerializeObject(new ReturnObject <string>(ErrorConstants.ERROR_NO_PRODUCT_TYPES_FOUND, ErrorConstants.ERROR_NO_PRODUCT_TYPES_FOUND_MSG))); } } catch (Exception ex) { return(JsonConvert.SerializeObject(new ReturnObject <string>(ErrorConstants.ERROR_EXCEPTION, ex.Message))); } }
public string getAllProductCategories() { List <PRODUCTS_CATEGORy> cats = null; ReturnObject <List <PRODUCTS_CATEGORy> > catsObj = new ReturnObject <List <PRODUCTS_CATEGORy> >(); try { ProductsHandler handler = new ProductsHandler(); cats = handler.getAllProductCategories(); catsObj = new ReturnObject <List <PRODUCTS_CATEGORy> >(ErrorConstants.SUCCESS, cats); if (cats != null) { return(JsonConvert.SerializeObject(catsObj)); } else { return(JsonConvert.SerializeObject(new ReturnObject <string>(ErrorConstants.ERROR_NO_PRODUCT_CATEGORIES_FOUND, ErrorConstants.ERROR_NO_PRODUCT_CATEGORIES_FOUND_MSG))); } } catch (Exception ex) { return(JsonConvert.SerializeObject(new ReturnObject <string>(ErrorConstants.ERROR_EXCEPTION, ex.Message))); } }
/// <summary> /// Generates a query to receive selected <c>products</c> from a Shopify store. The generated query will query the following on products: /// - id /// - title /// - descriptionHtml /// - images (with aliases defined by ShopifyClient.defaultImageResolutions) /// - altText /// - src /// - options /// - name /// - values /// - variants /// - id /// - available /// - price /// - title /// - weight /// - weightUnit /// - selectedOptions /// - name /// - values /// - image (with aliases defined by ShopifyClient.defaultImageResolutions) /// - altText /// - src /// - collections /// - image (with aliases defined by ShopifyClient.defaultImageResolutions) /// - altText /// - src /// - title /// - updatedAt /// /// </summary> /// <param name="callback">callback that will receive responses or errors from server</param> /// <param name="firstProductId">you must pass in at least one product id to query</param> /// <param name="otherProductIds"> /// after the first product id you can pass in as many product ids as you'd like. /// </param> /// \code /// // Example usage querying two product ids /// ShopifyBuy.Client().products((products, error) => { /// Debug.Log(products[0].title()); /// Debug.Log(products[1].title()); /// }, "Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0Lzk4OTUyNzYwOTk=", "Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0Lzk4OTUyNzkwNDM="); /// \endcode public void products(ProductsHandler callback, string firstProductId, params string[] otherProductIds) { List <string> productIds = new List <string> (); productIds.Add(firstProductId); productIds.AddRange(otherProductIds); products(callback, productIds); }
private void GetConnectionsForProducts(List <Product> products, ProductsHandler callback) { List <ConnectionQueryInfo> connectionInfos = new List <ConnectionQueryInfo> () { new ConnectionQueryInfo( getConnection: (p) => ((Product)p).images(), query: (p, imagesAfter) => { ((ProductQuery)p).images(ic => DefaultQueries.products.ImageConnection(ic), first: DefaultQueries.MaxPageSize, after: imagesAfter ); } ), new ConnectionQueryInfo( getConnection: (p) => ((Product)p).variants(), query: (p, variantsAfter) => { ((ProductQuery)p).variants(vc => DefaultQueries.products.ProductVariantConnection(vc, DefaultImageResolutions), first: DefaultQueries.MaxPageSize, after: variantsAfter ); } ), new ConnectionQueryInfo( getConnection: (p) => ((Product)p).collections(), query: (p, collectionsAfter) => { ((ProductQuery)p).collections(cc => DefaultQueries.products.CollectionConnection(cc), first: DefaultQueries.MaxPageSize, after: collectionsAfter ); } ) }; foreach (string alias in DefaultImageResolutions.Keys) { string currentAlias = alias; connectionInfos.Add(new ConnectionQueryInfo( getConnection: (p) => ((Product)p).images(currentAlias), query: (p, imagesAfter) => { ((ProductQuery)p).images(ic => DefaultQueries.products.ImageConnection(ic), first: DefaultQueries.MaxPageSize, after: imagesAfter, maxWidth: DefaultImageResolutions[currentAlias], maxHeight: DefaultImageResolutions[currentAlias], alias: currentAlias ); } )); } ConnectionLoader loader = new ConnectionLoader(Loader); List <Node> nodes = products.ConvertAll(p => (Node)p); loader.QueryConnectionsOnNodes(nodes, connectionInfos, BuildProductQueryOnNode, (nodesResult, error) => { callback(nodesResult.ConvertAll(n => (Product)n), error); }); }
public ActionResult InsertMemData() { if (ModelState.IsValid) { //this.products.ForEach(p => db.Products.Add(p)); //db.SaveChanges(); var pH = new ProductsHandler(); pH.SetProductsDB(products); return(RedirectToAction("Index", "EditProducts")); } else { return(View("Error")); // Todo: use error view to show error msg. } }
public ActionResult DoFileUpload(HttpPostedFileBase file) { //Undone: show error msg to user!! if (ModelState.IsValid) { if (file == null) { ModelState.AddModelError("File", "Please Upload Your file"); } else if (file.ContentLength > 0) { int MaxContentLength = 1024 * 1024 * 20; //20 MB string[] AllowedFileExtensions = new string[] { ".csv", ".txt" }; if (!AllowedFileExtensions.Contains(file.FileName.Substring(file.FileName.LastIndexOf('.')))) { ModelState.AddModelError("File", "Please upload file of type: " + string.Join(", ", AllowedFileExtensions)); } else if (file.ContentLength > MaxContentLength) { ModelState.AddModelError("File", "Your file is too large, maximum allowed size is: " + MaxContentLength + " MB"); } else { //TO:DO var fileName = Path.GetFileName(file.FileName); var path = Path.Combine(Server.MapPath("~/Content/Upload"), fileName); file.SaveAs(path); //Note: overwrite file with the same name ModelState.Clear(); ViewBag.Message = "File uploaded successfully"; //Todo: caution, overflow! long file, file.InputStream.Length is a long int //var b = new BinaryReader(file.InputStream); //byte[] binData = b.ReadBytes((int)file.InputStream.Length); //string s = new StreamReader(file.InputStream).ReadToEnd(); var pH = new ProductsHandler(); pH.SetProductsDB( pH.GetProductsStream(file.InputStream) ); return(RedirectToAction("Index", "EditProducts")); } } } return(View()); }
private void GetConnectionsForProducts(List <Product> products, ProductsHandler callback) { List <ConnectionQueryInfo> connectionInfos = new List <ConnectionQueryInfo> () { new ConnectionQueryInfo( getConnection: (p) => ((Product)p).images(), query: (p, imagesAfter) => { ((ProductQuery)p).images(ic => DefaultQueries.products.ImageConnection(ic, DefaultImageResolutions), first: DefaultQueries.MaxPageSize, after: imagesAfter ); } ), new ConnectionQueryInfo( getConnection: (p) => ((Product)p).variants(), query: (p, variantsAfter) => { ((ProductQuery)p).variants(vc => DefaultQueries.products.ProductVariantConnection(vc, DefaultImageResolutions), first: DefaultQueries.MaxPageSize, after: variantsAfter ); } ), new ConnectionQueryInfo( getConnection: (p) => ((Product)p).collections(), query: (p, collectionsAfter) => { ((ProductQuery)p).collections(cc => DefaultQueries.products.CollectionConnection(cc), first: DefaultQueries.MaxPageSize, after: collectionsAfter ); } ) }; ConnectionLoader loader = new ConnectionLoader(Loader); List <Node> nodes = products.ConvertAll(p => (Node)p); loader.QueryConnectionsOnNodes(nodes, connectionInfos, BuildProductQueryOnNode, (nodesResult, error) => { callback(nodesResult.ConvertAll(n => (Product)n), error); }); }