private void requestUploadProducts_Shopbase_Thread(object o) { // Break object get data object[] array = o as object[]; FileDesignDTO fileDesign = (FileDesignDTO)(array[0]); string domain = (string)array[1]; DataGrid dgv_designs_UploadShopify = (DataGrid)array[2]; List <string> listTags = (List <string>)array[3]; ShopifyTokenData store = (ShopifyTokenData)array[4]; int i = Convert.ToInt32(array[5]); // Init data temp List <string> fileImageList = new List <string>(); List <string> colorsList = new List <string>(); List <string> productType = new List <string>(); List <ProductImage> productImages = new List <ProductImage>(); BUS_UploadShopify busUploadShopify = new BUS_UploadShopify(); StatusDTO dtoStatus = new StatusDTO(); var colorsByType = new Dictionary <string, List <string> >(); try { Application.Current.Dispatcher.Invoke(() => { SP.WriteLogs(rtbLogsUploadProduct, domain + " uploading design số " + i + ": " + fileDesign.Filename.ToString()); string[] files = Directory.GetFiles(txtDesigns_UploadShopify.Text); Array.Sort(files, StringComparer.InvariantCulture); // Check if file is image and has description foreach (var oFile in files) { if (oFile.Contains(".png") || oFile.ToLower().Contains(".jpg")) { if (oFile.Contains(fileDesign.Filename.ToString())) { string prodType = oFile.Split('-')[1]; productType.Add(prodType); string color = ""; if (oFile.Split('-')[1] == "mug" || oFile.Split('-')[1] == "pillow") { color = SP.CapitalizeFirstLetter(oFile.Split('-')[oFile.Split('-').Length - 2].Replace(".png", "").Replace(".jpg", "")); } else { color = SP.CapitalizeFirstLetter(oFile.Split('-')[oFile.Split('-').Length - 3].Replace(".png", "").Replace(".jpg", "")); } fileImageList.Add(oFile); if (!colorsByType.ContainsKey(prodType)) { colorsByType.Add(prodType, new List <string>()); } colorsByType[prodType].Add(color); productImages.Add(new ProductImage(oFile, fileDesign.Filename, oFile.Split('-')[1], color)); if (File.Exists(pathDescriptionFormat + "\\" + oFile.Split('-')[1] + ".chel") && oFile.Split('-')[1].ToLower() == "mug" || oFile.Split('-')[1].ToLower() == "pillow") { continue; } if (sizePriceName.Text.Length == 0) { MessageBox.Show("Chưa chọn loại sản phẩm!"); return; } var desDocument = descriptionContent.Document; if (new TextRange(desDocument.ContentStart, desDocument.ContentEnd).IsEmpty) { MessageBox.Show("Chưa nhập description!"); return; } } } } var productTypes = productType.Distinct().ToList(); var ind = 0; while (true) { var stop = true; foreach (var prodType in productTypes) { var prodTypeColors = colorsByType.GetValueOrNull(prodType); if (prodTypeColors != null && ind < prodTypeColors.Count) { var newColor = prodTypeColors.ElementAt(ind); colorsList.Add(newColor); stop = false; } } ind++; if (stop) { break; } } // Group by product type list => unique list (set) var title = SP.CapitalizeFirstLetter(fileDesign.Filename.ToString()); var colors = colorsList.Distinct().ToList(); var sizePrices = new List <SizePrice>(); var items = this.sizePriceGrid.Items; foreach (var item in items) { sizePrices.Add((SizePrice)item); } var options = UploadShopifyHelper.GetOptions(productTypes.ToArray(), sizePrices.ToArray(), colors.ToArray()); var variants = UploadShopifyHelper.GetVariants(productTypes.ToArray(), productImages.ToArray(), pathPriceSizeFormat); TextRange textRange = new TextRange(descriptionContent.Document.ContentStart, descriptionContent.Document.ContentEnd); string body_html = textRange.Text.Replace("\"", "\\\"").Replace("\n", ""); var productState = new ProductState(title, body_html, Helper.GetProductType(sizePriceName.Text), listTags.ToArray()); var success = BUS_UploadShopbase.Upload_Shopbase(store, options, variants, productState, productImages.ToArray(), rtbLogsUploadProduct); if (success) { dgv_designs_UploadShopify.Dispatcher.Invoke(new Action(delegate { DataGridRow row = dgv_designs_UploadShopify.ItemContainerGenerator.ContainerFromItem(fileDesign) as DataGridRow; SolidColorBrush brush = new SolidColorBrush(System.Windows.Media.Color.FromArgb(255, 81, 211, 115)); row.Background = brush; })); } else { dgv_designs_UploadShopify.Dispatcher.Invoke(new Action(delegate { DataGridRow row = dgv_designs_UploadShopify.ItemContainerGenerator.ContainerFromItem(fileDesign) as DataGridRow; SolidColorBrush brush = new SolidColorBrush(System.Windows.Media.Color.FromArgb(255, 233, 80, 101)); row.Background = brush; })); } }); } catch (Exception ex) { MessageBox.Show(ex.ToString()); SP.WriteLogs(rtbLogsUploadProduct, ex.Message); } }
private void requestUploadProducts_Shopbase_Thread(object o) { // Break object get data object[] array = o as object[]; FileDesignDTO fileDesign = (FileDesignDTO)(array[0]); string domain = (string)array[1]; DataGrid dgv_designs_UploadShopify = (DataGrid)array[2]; List <string> listTags = (List <string>)array[3]; ShopifyTokenData store = (ShopifyTokenData)array[4]; int i = Convert.ToInt32(array[5]); // Init data temp List <string> fileImageList = new List <string>(); List <string> colorsList = new List <string>(); List <string> productType = new List <string>(); List <ProductImage> productImages = new List <ProductImage>(); BUS_UploadShopify busUploadShopify = new BUS_UploadShopify(); StatusDTO dtoStatus = new StatusDTO(); try { Application.Current.Dispatcher.Invoke(() => { SP.WriteLogs(rtbLogsUploadProduct, domain.Replace(".myshopify.com", "") + " uploading design số " + i + ": " + fileDesign.Filename.ToString()); string[] files = Directory.GetFiles(txtDesigns_UploadShopify.Text); // Check if file is image and has description foreach (var oFile in files) { if (oFile.Contains(".png") || oFile.ToLower().Contains(".jpg")) { if (oFile.Contains(fileDesign.Filename.ToString())) { productType.Add(oFile.Split('-')[1]); string color = ""; if (oFile.Split('-')[1] == "mug" || oFile.Split('-')[1] == "pillow") { fileImageList.Add(oFile); color = SP.CapitalizeFirstLetter(oFile.Split('-')[oFile.Split('-').Length - 2].Replace(".png", "").Replace(".jpg", "")); } else { fileImageList.Add(oFile); color = SP.CapitalizeFirstLetter(oFile.Split('-')[oFile.Split('-').Length - 3].Replace(".png", "").Replace(".jpg", "")); } colorsList.Add(color); productImages.Add(new ProductImage(oFile, fileDesign.Filename, oFile.Split('-')[1], color)); if (File.Exists(pathDescriptionFormat + "\\" + oFile.Split('-')[1] + ".chel") && oFile.Split('-')[1].ToLower() == "mug" || oFile.Split('-')[1].ToLower() == "pillow") { continue; } if (!File.Exists(pathDescriptionFormat + "\\" + oFile.Split('-')[1] + "-men" + ".chel")) { MessageBox.Show("chưa có description cho dòng áo: " + oFile.Split('-')[1] + "-men"); return; } if (!File.Exists(pathDescriptionFormat + "\\" + oFile.Split('-')[1] + "-women" + ".chel")) { MessageBox.Show("chưa có description cho dòng áo: " + oFile.Split('-')[1] + "-women"); return; } if (!File.Exists(pathPriceSizeFormat + "\\" + oFile.Split('-')[1] + ".chel")) { MessageBox.Show("chưa có price-size cho dòng áo: " + oFile.Split('-')[1]); return; } } } } // Group by product type list => unique list (set) var title = SP.CapitalizeFirstLetter(fileDesign.Filename.ToString()); SP.WriteLogs(rtbLogsUploadProduct, "Product title: " + title); var productTypeFromSize = Path.GetFileName(selectedFileNameSizePrice).Replace(".chel", ""); var productTypes = productType.Distinct().ToList(); var colors = colorsList.Distinct().ToList(); var sizePrices = new List <SizePrice>(); var items = this.sizePriceGrid.Items; foreach (var item in items) { sizePrices.Add((SizePrice)item); } var options = UploadShopifyHelper.GetOptions(productTypes.ToArray(), sizePrices.ToArray(), colors.ToArray()); var variants = UploadShopifyHelper.GetVariants(productTypes.ToArray(), productImages.ToArray(), pathPriceSizeFormat); TextRange textRange = new TextRange(descriptionContent.Document.ContentStart, descriptionContent.Document.ContentEnd); string body_html = "<h2 style=\\\"text-align: center; \\\">" + title + "</h2>" + textRange.Text.Replace("\"", "\\\"").Replace("\n", ""); var productState = new ProductState(title, body_html, productTypeFromSize, listTags.ToArray()); var success = BUS_UploadShopbase.Upload_Shopbase(store, options, variants, productState, productImages.ToArray(), rtbLogsUploadProduct); if (success) { dgv_designs_UploadShopify.Dispatcher.Invoke(new Action(delegate { DataGridRow row = dgv_designs_UploadShopify.ItemContainerGenerator.ContainerFromItem(fileDesign) as DataGridRow; SolidColorBrush brush = new SolidColorBrush(System.Windows.Media.Color.FromArgb(255, 81, 211, 115)); row.Background = brush; })); } else { dgv_designs_UploadShopify.Dispatcher.Invoke(new Action(delegate { DataGridRow row = dgv_designs_UploadShopify.ItemContainerGenerator.ContainerFromItem(fileDesign) as DataGridRow; SolidColorBrush brush = new SolidColorBrush(System.Windows.Media.Color.FromArgb(255, 233, 80, 101)); row.Background = brush; })); } }); } catch (Exception ex) { MessageBox.Show(ex.ToString()); SP.WriteLogs(rtbLogsUploadProduct, ex.Message); } }