Example #1
0
        private IList<DSZSKUModel> GetSupplierSKUList()
        {
            IList<DSZSKUModel> skuList = null;
            using (var webClient = new ThirdStoreWebClient())
            {
                if (!Directory.Exists(ThirdStoreConfig.Instance.ThirdStoreDSZData))
                    Directory.CreateDirectory(ThirdStoreConfig.Instance.ThirdStoreDSZData);
                //var byCsv = webClient.DownloadData(Constants.DSZSKUListURL);
                var fileName = ThirdStoreConfig.Instance.ThirdStoreDSZData + "\\" + CommonFunc.ToCSVFileName("DSZData");
                //var fileName = ThirdStoreConfig.Instance.ThirdStoreDSZData + "\\DSZData_20200602125553.csv";

                //webClient.DownloadFile(@"https://idropship.com.au/pub/media/export_product_all_generic.csv", fileName);
                skuList = _csvContext.Read<DSZSKUModel>(fileName, _csvFileDescription).ToList();

                //webClient.DownloadFile(Constants.DSZSKUListURL, fileName);
                //skuList=_csvContext.Read<DSZSKUModel>(fileName, _csvFileDescription).ToList();

                //using (var ms = new MemoryStream(byCsv))
                //{
                //    ms.Position = 0;
                //    using (var sr = new StreamReader(ms))
                //    {
                //        //var csvFileDescription = new CsvFileDescription() { SeparatorChar = ',', FirstLineHasColumnNames = true, IgnoreUnknownColumns = true, TextEncoding = Encoding.Default };
                //        //var csvContext = new CsvContext();
                //        skuList = _csvContext.Read<DSZSKUModel>(sr, _csvFileDescription).ToList();

                //    }
                //}
                if(skuList!=null)
                    skuList = skuList.Where(s => !s.SKU.Contains("*") && !Regex.IsMatch(s.SKU, @"^V\d+")).ToList();
            }
            
            return skuList;
        }
Example #2
0
        private void DownloadItemImages(List<string> imageURLs, D_Item item)
        {
            if (imageURLs == null || imageURLs.Count == 0)
                return;

            var createTime = DateTime.Now;
            var createBy = _workContext.CurrentUserName;
            if (item.ItemImages.Count > 0)
            {
                var itemImages = GetItemImagesByItemID(item.ID);
                foreach (var existPic in itemImages)
                    DeleteItemImage(existPic);
            }

            int i = 0;
            using (var wc = new ThirdStoreWebClient())
            {
                foreach (var imageURL in imageURLs)
                {
                    try
                    {
                        var imgBytes = wc.DownloadData(imageURL);
                        using (var stream = new MemoryStream(imgBytes))
                        {
                            var fileName = item.SKU + "-" + i.ToString().PadLeft(2, '0') + ".jpg";
                            var imgObj = _imageService.SaveImage(stream, fileName);
                            item.ItemImages.Add(new M_ItemImage()
                            {
                                Image = imgObj,
                                DisplayOrder = i,
                                StatusID = 0,//TODO Get item active status id
                                CreateTime = createTime,
                                CreateBy = createBy,
                                EditTime = createTime,
                                EditBy = createBy
                            });
                        }
                    }
                    catch (Exception ex)
                    {
                        LogManager.Instance.Error(imageURL + " download failed. " + ex.Message);
                    }

                    i++;
                }
            }
        }
Example #3
0
        private void PreDownloadItemImages(List<string> imageURLs, D_Item newItem)
        {
            #region Pre-Download and Save Images grouped by SKU
            DirectoryInfo di = new DirectoryInfo(@"C:\Users\gdutj\Downloads\3rdStockSystem\DSImages20200615\" + newItem.SKU + "\\");

            if (!di.Exists)
            {
                di.Create();
            }

            using (var wc = new ThirdStoreWebClient())
            {
                int i = 1;
                foreach (var imageURL in imageURLs)
                {
                    try
                    {
                        var imageFileName = newItem.SKU + "-" + i.ToString().PadLeft(2, '0') + ".jpg";
                        var saveImageFileFullName = Path.Combine(di.FullName, imageFileName);

                        wc.DownloadFile(imageURL, saveImageFileFullName);
                    }
                    catch (Exception ex)
                    {
                        LogManager.Instance.Error(imageURL + " download failed. " + ex.Message);
                    }

                    i++;
                }
            }


            #endregion

            
        }
Example #4
0
        public IList <D_Item> GetDSData()
        {
            var retItems = new List <D_Item>();

            try
            {
                IList <SelloDSModel> dsDatas = null;
                using (var webClient = new ThirdStoreWebClient())
                {
                    if (!Directory.Exists(this.DSDataPath))
                    {
                        Directory.CreateDirectory(this.DSDataPath);
                    }
                    var fileName = this.DSDataPath + "\\" + CommonFunc.ToCSVFileName("SelloDSData");

                    webClient.DownloadFile(DSDataURL, fileName);
                    dsDatas = _csvContext.Read <SelloDSModel>(fileName, _csvFileDescription).ToList();
                    if (dsDatas != null)
                    {
                        foreach (var dsData in dsDatas)
                        {
                            var newItem = new D_Item();
                            if (dsData.sku.Length > 23)
                            {
                                LogManager.Instance.Info($"SKU {dsData.sku} length is larger than 23.");
                            }

                            newItem.SKU            = dsData.sku;
                            newItem.Name           = dsData.name;
                            newItem.Description    = dsData.description;
                            newItem.Cost           = dsData.special_price;
                            newItem.Price          = (newItem.Cost) * _commonSetting.DropshipMarkupRate;
                            newItem.Type           = ThirdStoreItemType.SINGLE.ToValue();
                            newItem.SupplierID     = ThirdStoreSupplier.S.ToValue();
                            newItem.GrossWeight    = (!string.IsNullOrWhiteSpace(dsData.weight) ? Convert.ToDecimal(dsData.weight) : 0);
                            newItem.NetWeight      = (!string.IsNullOrWhiteSpace(dsData.weight) ? Convert.ToDecimal(dsData.weight) : 0);
                            newItem.Length         = (!string.IsNullOrWhiteSpace(dsData.length) ? Convert.ToDecimal(dsData.length) / 100 : 0);
                            newItem.Width          = (!string.IsNullOrWhiteSpace(dsData.width) ? Convert.ToDecimal(dsData.width) / 100 : 0);
                            newItem.Height         = (!string.IsNullOrWhiteSpace(dsData.height) ? Convert.ToDecimal(dsData.height) / 100 : 0);
                            newItem.Ref3           = dsData.UPC?.Trim();
                            newItem.IsReadyForList = (dsData.sku.Length <= 23 && dsData.special_price > Convert.ToDecimal(ThirdStoreConfig.Instance.SyncDSPriceAbove) ? true : false);
                            newItem.IsActive       = true;

                            var imagesURL = GetImageURLList(dsData);
                            if (imagesURL.Count > 0)
                            {
                                newItem.Ref5 = imagesURL.Aggregate((current, next) => current + ";" + next);
                            }

                            retItems.Add(newItem);
                        }
                    }
                }

                return(retItems);
            }
            catch (Exception ex)
            {
                LogManager.Instance.Error(ex.Message);
                throw ex;
            }
        }
Example #5
0
        private void DownloadItemImages(DSZSKUModel dszData,D_Item item)
        {
            var createTime = DateTime.Now;
            var createBy= _workContext.CurrentUserName;
            if(item.ItemImages.Count>0)
            {
                var itemImages = GetItemImagesByItemID(item.ID);
                foreach (var existPic in itemImages)
                    DeleteItemImage(existPic);
            }

            var imagesURL = new List<string>();
            if (!string.IsNullOrEmpty(dszData.Image1))
                imagesURL.Add(dszData.Image1);
            if (!string.IsNullOrEmpty(dszData.Image2))
                imagesURL.Add(dszData.Image2);
            if (!string.IsNullOrEmpty(dszData.Image3))
                imagesURL.Add(dszData.Image3);
            if (!string.IsNullOrEmpty(dszData.Image4))
                imagesURL.Add(dszData.Image4);
            if (!string.IsNullOrEmpty(dszData.Image5))
                imagesURL.Add(dszData.Image5);
            if (!string.IsNullOrEmpty(dszData.Image6))
                imagesURL.Add(dszData.Image6);
            if (!string.IsNullOrEmpty(dszData.Image7))
                imagesURL.Add(dszData.Image7);
            if (!string.IsNullOrEmpty(dszData.Image8))
                imagesURL.Add(dszData.Image8);
            if (!string.IsNullOrEmpty(dszData.Image9))
                imagesURL.Add(dszData.Image9);
            if (!string.IsNullOrEmpty(dszData.Image10))
                imagesURL.Add(dszData.Image10);
            if (!string.IsNullOrEmpty(dszData.Image11))
                imagesURL.Add(dszData.Image11);
            if (!string.IsNullOrEmpty(dszData.Image12))
                imagesURL.Add(dszData.Image12);
            if (!string.IsNullOrEmpty(dszData.Image13))
                imagesURL.Add(dszData.Image13);
            if (!string.IsNullOrEmpty(dszData.Image14))
                imagesURL.Add(dszData.Image14);
            if (!string.IsNullOrEmpty(dszData.Image15))
                imagesURL.Add(dszData.Image15);

            int i = 0;
            using (var wc = new ThirdStoreWebClient())
            {
                foreach (var imageURL in imagesURL)
                {
                    try
                    {
                        var imgBytes = wc.DownloadData(imageURL);
                        using (var stream = new MemoryStream(imgBytes))
                        {
                            var fileName = dszData.SKU + "-" + i.ToString().PadLeft(2, '0') + ".jpg";
                            var imgObj = _imageService.SaveImage(stream, fileName);
                            item.ItemImages.Add(new M_ItemImage()
                            {
                                Image = imgObj,
                                DisplayOrder = i,
                                StatusID = 0,//TODO Get item active status id
                                CreateTime = createTime,
                                CreateBy = createBy,
                                EditTime = createTime,
                                EditBy = createBy
                            });
                        }
                    }
                    catch (Exception ex)
                    {
                        LogManager.Instance.Error(imageURL + " download failed. " + ex.Message);
                    }

                    i++;
                }
            }
        }
Example #6
0
        private void RestoreItemImages(List<string> imageURLs, D_Item newItem)
        {
            #region Fetch/Restore from Pre-Downloaded Images

            DirectoryInfo di = new DirectoryInfo(@"C:\Users\gdutj\Downloads\3rdStockSystem\DSImages20200615\" + newItem.SKU + "\\");
            if (di.Exists)
            {
                var imageFiles = di.GetFiles("*", SearchOption.AllDirectories);
                int j = 0;
                foreach (var fi in imageFiles)
                {
                    //Image img = Image.FromFile(imgFile);

                    using (var stream = new MemoryStream(System.IO.File.ReadAllBytes(fi.FullName)))
                    {
                        var fileName = newItem.SKU + "-" + j.ToString().PadLeft(2, '0') + ".jpg";
                        var imgObj = _imageService.SaveImage(stream, fileName);
                        newItem.ItemImages.Add(new M_ItemImage()
                        {
                            Image = imgObj,
                            DisplayOrder = j,
                            StatusID = 0,//TODO Get item active status id
                            CreateTime = DateTime.Now,
                            CreateBy = "System",
                            EditTime = DateTime.Now,
                            EditBy = "System"
                        });
                    }
                    j++;
                }
            }
            else
            {
                int i = 0;
                using (var wc = new ThirdStoreWebClient())
                {
                    foreach (var imageURL in imageURLs)
                    {
                        try
                        {
                            var imgBytes = wc.DownloadData(imageURL);
                            using (var stream = new MemoryStream(imgBytes))
                            {
                                var fileName = newItem.SKU + "-" + i.ToString().PadLeft(2, '0') + ".jpg";
                                var imgObj = _imageService.SaveImage(stream, fileName);
                                newItem.ItemImages.Add(new M_ItemImage()
                                {
                                    Image = imgObj,
                                    DisplayOrder = i,
                                    StatusID = 0,//TODO Get item active status id
                                    CreateTime = DateTime.Now,
                                    CreateBy = "System",
                                    EditTime = DateTime.Now,
                                    EditBy = "System"
                                });
                            }
                        }
                        catch (Exception ex)
                        {
                            LogManager.Instance.Error(imageURL + " download failed. " + ex.Message);
                        }

                        i++;
                    }
                }
            }

            #endregion
        }