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());
        }