public async Task <DropshipOrder[]> GetOrders(string username) { var orders = new List <DropshipOrder>(); //Get unfulfilled orders & dropship items from db var shopifyTask = shopify.GetOrders(username); var dropshipTask = dbItems.GetMultipleByUsername(username); if (shopifyTask.IsFaulted || dropshipTask.IsFaulted) { return(new DropshipOrder[0]); } var dropshipItems = await dropshipTask; var shopifyItems = await shopifyTask; foreach (var shopifyOrder in shopifyItems) { var dropshipItemsOnOrder = new List <DropshipItemModel>(); shopifyOrder.LineItems.ForEach(x => { var dropshipItem = dropshipItems.FirstOrDefault(ds => ds.ListingID == x.ProductID); if (dropshipItems != null) { dropshipItemsOnOrder.Add(dropshipItem); } }); if (dropshipItemsOnOrder.Count == 0) { continue; } orders.Add(new DropshipOrder() { Order = shopifyOrder, Items = dropshipItemsOnOrder.ToArray() }); } return(orders.ToArray()); }
static void Main(string[] args) { Logger logger = LogManager.GetCurrentClassLogger(); try { JObject o1 = JObject.Parse(File.ReadAllText($"{AppDomain.CurrentDomain.BaseDirectory}/appSettings.json")); string kellyConnString = o1.First.First.ToString(); ShopifyService Sservice = new ShopifyService(kellyConnString, logger); int result = 0; switch (args[0]) { case "/GP": Sservice.GetProducts(); break; case "/STOCK": if (args.Length > 1) result = int.Parse(args[1]); Sservice.UpdateStock(result); break; case "/PRICE": if (args.Length > 1) result = int.Parse(args[1]); Sservice.UpdatePrice(result); break; case "/ORDER": if (args.Length > 1) result = int.Parse(args[1]); Sservice.GetOrders(result); break; case "/UPLOAD": logger.Info("Updating product information at " + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")); if (args.Length > 1) result = int.Parse(args[1]); Sservice.UploadProduct(result,false); logger.Info("Finished at " + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")); break; case "/ALL": Sservice.GetProductImage(); Sservice.GetProducts(); Sservice.UploadProduct(result,true); //Sservice.generateDuplicateTable(); break; case "/IMAGE": Sservice.GetProductImage(); break; case "/PF": logger.Info("Getting product filters at " + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")); Sservice.GetProductFilter(); logger.Info("Finished at " + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")); break; case "/DELETE": logger.Info("Deleting products at " + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")); Sservice.DeleteDuplicate(); logger.Info("Finished at " + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")); break; case "/MISSING": Sservice.DeleteMissing(); break; case "/WEBHOOK": Sservice.CreateWebhook(); break; } } catch (Exception ex) { logger.Error(ex, "Stopped program because of exception"); throw; } finally { LogManager.Shutdown(); } }