コード例 #1
0
        private void dgListDesigns_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            try
            {
                if (dgListDesigns.SelectedItem == null)
                {
                    return;
                }

                FileDesignDTO fileDesign = dgListDesigns.SelectedItem as FileDesignDTO;

                storage.RectangleImage = fileDesign.FilePath;
            }
            catch (Exception err)
            {
                MessageBox.Show("Select cell error: " + err.Message);
            }
        }
コード例 #2
0
        private void UploadTOGGDrive(FileDesignDTO dgr, string folderId)
        {
            // get current row
            DataGridRow rowDetail = dgvImageInfo.ItemContainerGenerator.ContainerFromItem(dgr) as DataGridRow;

            string shareableLink = GoogleDriveFilesRepository.FileUpload(dgr.FilePath, folderId);

            if (shareableLink != null && shareableLink.Length > 0)
            {
                string id = dgr.Filename.Split('-')[0];
                imageUploads.Add(new ImageUploadDTO()
                {
                    ID = id, ImageLink = shareableLink
                });

                dgvImageInfo.Dispatcher.Invoke(new Action(delegate
                {
                    SolidColorBrush brush = new SolidColorBrush(System.Windows.Media.Color.FromArgb(255, 81, 211, 115));
                    rowDetail.Background  = brush;
                }));
            }
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
        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);
            }
        }
コード例 #5
0
        private void requestUploadProducts_Shopify_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];
            string        accessToken = (string)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>();
            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);

                    foreach (var oFile in files)
                    {
                        //MessageBox.Show(oFile.ToString());
                        if (oFile.Contains(".png") || oFile.ToLower().Contains(".jpg"))
                        {
                            if (oFile.Contains(fileDesign.Filename.ToString()))
                            {
                                productType.Add(oFile.Split('-')[1]);
                                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)
                    productType = productType.Distinct().ToList();

                    for (int j = 0; j < productType.Count; j++)
                    {
                        fileImageList.Clear();
                        colorsList.Clear();
                        foreach (var oFile in files)
                        {
                            if (oFile.Contains(".png") || oFile.ToLower().Contains(".jpg"))
                            {
                                if (oFile.Contains(fileDesign.Filename.ToString()) && oFile.Split('-')[1] == productType[j])
                                {
                                    if (oFile.Split('-')[1] == "mug" || oFile.Split('-')[1] == "pillow")
                                    {
                                        fileImageList.Add(oFile);
                                        colorsList.Add(SP.CapitalizeFirstLetter(oFile.Split('-')[oFile.Split('-').Length - 2].Replace(".png", "").Replace(".jpg", "")));
                                    }
                                    else
                                    {
                                        fileImageList.Add(oFile);
                                        colorsList.Add(SP.CapitalizeFirstLetter(oFile.Split('-')[oFile.Split('-').Length - 3].Replace(".png", "").Replace(".jpg", "")));
                                    }
                                }
                            }
                        }

                        // Group by color list => unique list (set)
                        colorsList = colorsList.Distinct().ToList();

                        // Upload Shopify check product exist
                        if (uploadShopifyHelper.getProductType(productType[j]) == "Not Found")
                        {
                            MessageBox.Show("Product Type Not Found");
                            return;
                        }

                        dtoStatus = busUploadShopify.Upload_Shopify(txtDesigns_UploadShopify.Text, colorsList, fileImageList, productType[j], fileDesign.Filename.ToString(), pathDescriptionFormat, pathPriceSizeFormat, domain, accessToken, listTags);

                        // Set status on process
                        if (!dtoStatus.status)
                        {
                            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;
                            }));

                            SP.WriteLogs(rtbLogsUploadProduct, domain.Replace(".myshopify.com", "") + " FAIL => số " + i + " " + dgv_designs_UploadShopify.Items.IndexOf(i).ToString().Replace(".png", "").Replace(".jpg", "") + " Sản phẩm: " + productType[j]);
                        }
                        else if (j == productType.Count - 1)
                        {
                            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;
                            }));

                            SP.WriteLogs(rtbLogsUploadProduct, domain.Replace(".myshopify.com", "") + " OK => số " + i + " Sản phẩm: " + productType[j]);
                        }
                        else if (j < productType.Count - 1)
                        {
                            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, 70, 189, 223));

                                row.Background = brush;
                            }));

                            SP.WriteLogs(rtbLogsUploadProduct, domain.Replace(".myshopify.com", "") + " OK => số " + i + " Sản phẩm: " + productType[j]);
                        }
                    }
                });
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                SP.WriteLogs(rtbLogsUploadProduct, ex.Message);
            }
        }