Exemplo n.º 1
0
        public async Task <DropshipOverview> GetOverview(string username)
        {
            var accountTask      = GetAccount(username);
            var productsTask     = dbItems.GetMultipleByUsername(username);
            var integrationsTask = dbOAuth.GetMultipleByUsername(username);
            //var ordersTask = GetOrders(username);

            var account      = await accountTask;
            var items        = await productsTask;
            var integrations = await integrationsTask;

            var dropshipOverview = new DropshipOverview()
            {
                Account          = account,
                IntegrationCount = integrations.Length,
                ProductCount     = items.Length
            };

            return(dropshipOverview);
        }
        public async Task <IActionResult> Get(int limit = 50, int offset = 0)
        {
            //Get jwt username
            var username = HttpContext.User.Identity.Name;

            //Create return object
            var dropshipItems = new List <DropshipItem>();

            //Retrieve Dropship Item Models from db
            var items = await dbItems.GetMultipleByUsername(username);

            //Get integration oauth info
            var oauth = await oauthdb.RetrieveOAuth <OAuthShopifyModel>(username);

            //Add to return object
            items.ForEach(item => dropshipItems.Add(new DropshipItem()
            {
                Dropshipping = item
            }));

            var count = items.Length;

            if (items.Length != 0)
            {
                items = items.Skip(offset).Take(limit).ToArray();

                //Put all item ids
                var ids = new List <string>();
                items.ForEach(item => ids.Add(item.ListingID));

                var shopifyItems = await shopify.GetProductsByID(username, ids.ToArray(), oauth);

                shopifyItems.ForEach(shopifyItem =>
                {
                    var item = dropshipItems.FirstOrDefault(dropshipItem => dropshipItem.Dropshipping.ListingID == shopifyItem.ID);
                    if (item != null)
                    {
                        item.Product = shopifyItem;
                    }
                });
            }

            //Add total product count
            HttpContext.Response.Headers.Add(ApiConstants.HeaderItemCount, count.ToString());

            return(Json(dropshipItems));
        }