public async Task <IActionResult> Update([FromBody] DropshipItemModel model) { //Get username from jwt var username = HttpContext.User.Identity.Name; model.Username = username; //Get integration information var oauth = await oauthdb.RetrieveOAuth <OAuthShopifyModel>(username); if (oauth == null) { return(NotFound("Integration not configured properly")); } //Get aliexpress item details var sourceItem = await search.ItemSearch(model.Source); if (sourceItem == null) { return(NotFound("Aliexpress link was incorrect")); } if (sourceItem == null) { return(NotFound("Aliexpress source is incorrect")); } //Get shpoify item details var shopifyProducts = await shopify.GetProductsByID(username, new string[] { model.ListingID }, oauth); var product = shopifyProducts.FirstOrDefault(); if (product == null) { return(NotFound("Shopify listing is incorrect")); } //Apply rules to shopify item if (model.Rules.ApplyRules(sourceItem, product)) { //Update shopify item with rule results var updatedProduct = await shopify.UpdateProduct(username, product, oauth); } //Save the model in the DB await dbItems.UpdateRules(model); return(Ok()); }
public async Task <DropshipItem[]> GetProducts(string username, int offset = 0, int limit = 50) { var dropshipItems = new List <DropshipItem>(); var oauth = await oauthdb.RetrieveOAuth <OAuthShopifyModel>(username); if (oauth == null) { return(new DropshipItem[0]); } var items = await dbItems.GetMultipleByUsername(username); if (items.Length == 0) { return(new DropshipItem[0]); } var ids = new List <string>(); foreach (var item in items) { ids.Add(item.ListingID); } var shopifyItems = await shopify.GetProductsByID(username, ids.ToArray(), oauth); foreach (var shopifyItem in shopifyItems) { var item = items.First(x => x.ListingID == shopifyItem.ID); dropshipItems.Add(new DropshipItem() { Dropshipping = item, Product = shopifyItem }); } return(dropshipItems.ToArray()); }