Exemplo n.º 1
0
 public void UpdateItem(D_Item item)
 {
     if (item != null)
     {
         _itemRepository.Update(item);
     }
 }
Exemplo n.º 2
0
 public void DeleteItem(D_Item item)
 {
     if (item != null)
     {
         _itemRepository.Delete(item);
     }
 }
Exemplo n.º 3
0
    /** Event to remove item when it is Right-clicked.
     */
    public void OnClickRemoveItem(D_Item item, int amount)
    {
        inventory.RemoveItem(item, amount);
        DropItem(item, amount);

        RefreshInventoryItems();
    }
Exemplo n.º 4
0
 public void InsertItem(D_Item item)
 {
     if (item != null)
     {
         _itemRepository.Insert(item);
     }
 }
Exemplo n.º 5
0
    /** Add a certain item to our inventory.
     * This will search if the item is already present in the inventory.
     * If it is, we add to the amount instead of creating a new slot.
     */
    public void AddItem(D_Item item, int amountToAdd)
    {
        // TODO: Change List to Dictionnary for better searching.
        bool hasItem = false;

        if (item.IsStackable())
        {
            // Search if Item is already present.
            for (int i = 0; i < itemsContainer.Count; i++)
            {
                if (itemsContainer[i].item == item)
                {
                    itemsContainer[i].AddAmount(amountToAdd);
                    hasItem = true;
                    break;
                }
            }

            // Add new instance of item if it's not already in inventory.
            if (!hasItem)
            {
                itemsContainer.Add(new InventorySlot(item, amountToAdd));
            }
        }
        else
        {
            itemsContainer.Add(new InventorySlot(item, amountToAdd));
        }
    }
Exemplo n.º 6
0
    /** This will drop the item into the world space by creating a gameobject prefab
     * of said item.
     * This function will use a small factory design pattern to drop the appropriate item.
     */
    private void DropItem(D_Item item, int amount)
    {
        GameObject itemToDrop = item.itemPrefab;

        itemToDrop.GetComponent <Item>().amount = amount;

        Instantiate(itemToDrop, GameObject.FindGameObjectWithTag("Player").transform.position, Quaternion.identity);
    }
Exemplo n.º 7
0
        public void UpdateItem(D_Item item)
        {
            if (item == null)
                throw new ArgumentNullException("item null");

            var currentTime = DateTime.Now;
            var currentUser = Constants.SystemUser;
            if (_workContext.CurrentUser != null)
                currentUser = _workContext.CurrentUser.Email;
            item.EditBy = currentUser;
            item.EditTime = currentTime;

            _itemRepository.Update(item);
        }
Exemplo n.º 8
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++;
                }
            }
        }
Exemplo n.º 9
0
        public void InsertItem(D_Item item)
        {
            if (item == null)
                throw new ArgumentNullException("item null");

            var currentTime = DateTime.Now;
            var currentUser = Constants.SystemUser;
            if (_workContext.CurrentUser != null)
                currentUser = _workContext.CurrentUser.Email;
            if (item.CreateTime.Equals(DateTime.MinValue))
                item.CreateTime = currentTime;
            item.EditBy = currentUser;
            if (item.EditTime.Equals(DateTime.MinValue))
                item.EditTime = currentTime;

            _itemRepository.Insert(item);
        }
Exemplo n.º 10
0
 public void InitData(BattleAnalyseData heroData, BattleAnalyseData TotleData)
 {
     if (heroData == null)
     {
         FillItem.mDMono.gameObject.CustomSetActive(false);
         EmptyItem.CustomSetActive(true);
         A_Item.Clean();
         D_Item.Clean();
         H_Item.Clean();
     }
     else
     {
         FillItem.ShowUI(heroData.heroID);
         EmptyItem.CustomSetActive(false);
         FillItem.mDMono.gameObject.CustomSetActive(true);
         A_Item.Fill(heroData.totalDamage, TotleData.totalDamage);
         D_Item.Fill(heroData.totalDamaged, TotleData.totalDamaged);
         H_Item.Fill(heroData.totalHealth, TotleData.totalHealth);
     }
 }
Exemplo n.º 11
0
    public void RemoveItem(D_Item item, int amountToRemove)
    {
        // TODO: Change List to Dictionnary for better searching.

        // Search if Item is already present.
        for (int i = 0; i < itemsContainer.Count; i++)
        {
            if (itemsContainer[i].item == item)
            {
                if (itemsContainer[i].amount <= amountToRemove)
                {
                    // Remove item from inventory if amount to remove is greater than what we have.
                    itemsContainer.Remove(itemsContainer[i]);
                }
                else
                {
                    // Substract item amount.
                    itemsContainer[i].RemoveAmount(amountToRemove);
                }
                break;
            }
        }
    }
Exemplo n.º 12
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

            
        }
Exemplo n.º 13
0
        private Tuple<string, string> buildPieceKernalOr(VariableTracker vt, D_PieceKernalOr pieceWrap, D_Item item)
        {
            StringBuilder cls = new StringBuilder();
            StringBuilder method = new StringBuilder();
            Tuple<string, string> v;
            foreach (var addition in pieceWrap.PieceKernalAdditions)
            {
                v = buildPieceKernalAddition(vt, addition, item);
                cls.AppendLine(v.Item1);
                method.AppendLine(v.Item2);
            }

            return new Tuple<string, string>(cls.ToString(), method.ToString());
        }
Exemplo n.º 14
0
 private Tuple<string, string> buildPieceKernalAddition(VariableTracker vt, D_PieceKernalAddition pieceWrap, D_Item item)
 {
     StringBuilder cls = new StringBuilder();
     StringBuilder method = new StringBuilder();
     Tuple<string, string> v;
     foreach (var contents in pieceWrap.PieceContents)
     {
         v = buildPieceContents(vt, contents, item);
         cls.AppendLine(v.Item1);
         method.AppendLine(v.Item2);
     }
     for (int i = 0; i < pieceWrap.PieceContents.Count; i++) {
         method.AppendLine("}");
     }
     return new Tuple<string, string>(cls.ToString(), method.ToString());
 }
Exemplo n.º 15
0
        private Tuple<string, string> buildPieceInformation(VariableTracker vt, D_PieceInformation pieceInformation, D_Item item)
        {
            StringBuilder cls = new StringBuilder();
            StringBuilder method = new StringBuilder();
            Tuple<string, string> v;

            switch (pieceInformation.PieceInformationClause)
            {
                case D_PieceInformation.D_PieceInformationClause.JustPiece:
                    v = buildJustPiece(vt, pieceInformation.JustPiece, item);
                    cls.AppendLine(v.Item1);
                    method.AppendLine(v.Item2);
                    break;
                case D_PieceInformation.D_PieceInformationClause.PieceWithParam:
                    v = buildPieceWithParam(vt, pieceInformation.PieceWithParam, item);
                    cls.AppendLine(v.Item1);
                    method.AppendLine(v.Item2);
                    break;
                default:
                    throw new ArgumentOutOfRangeException();
            }

            return new Tuple<string, string>(cls.ToString(), method.ToString());
        }
Exemplo n.º 16
0
        public bool UpdateLocalItem()
        {
            try
            {
                var createTime = DateTime.Now;
                var createBy   = Constants.SystemUser;
                var skuList    = GetSupplierSKUList();

                var localItemList = GetItemsBySupplier(1);//TODO Get Dropshipzone Supplier ID
                //var skuNullCount = skuList.Where(sl => sl==null).ToList();
                #region Update Item
                var updateItemList = from sl in skuList
                                     join li in localItemList on sl.SKU.ToUpper() equals li.SKU.ToUpper()
                                     select new
                {
                    li.ID,
                    SKU = sl.SKU.ToUpper(),
                    sl.Title,
                    sl.InventoryQty,
                    sl.Price,
                    sl.Description,
                    sl.IsBulkyItem,
                    sl.RrpPrice,
                    sl.Category,
                    sl.Discontinued,
                    sl.EANCode,
                    sl.Brand,
                    sl.MPN,
                    sl.Weight,
                    sl.Length,
                    sl.Width,
                    sl.Height,
                    sl.VIC,
                    sl.NSW,
                    sl.SA,
                    sl.QLD,
                    sl.TAS,
                    sl.WA,
                    sl.NT,
                    sl.Image1,
                    sl.Image2,
                    sl.Image3,
                    sl.Image4,
                    sl.Image5,
                    sl.Image6,
                    sl.Image7,
                    sl.Image8,
                    sl.Image9,
                    sl.Image10,
                    sl.Image11,
                    sl.Image12,
                    sl.Image13,
                    sl.Image14,
                    sl.Image15
                };

                foreach (var updateItem in updateItemList)
                {
                    var item = localItemList.FirstOrDefault(li => li.ID == updateItem.ID);
                    item.Title        = updateItem.Title;
                    item.Description  = updateItem.Description.StripHTML();
                    item.InventoryQty = updateItem.InventoryQty;
                    item.Price        = updateItem.Price;
                    item.Ref1         = updateItem.IsBulkyItem;
                    item.Ref2         = updateItem.Weight;
                    item.Ref3         = updateItem.Length;
                    item.Ref4         = updateItem.Width;
                    item.Ref5         = updateItem.Height;
                    item.Ref6         = updateItem.RrpPrice;
                    item.Ref7         = updateItem.Category;
                    item.Ref8         = updateItem.Discontinued;
                    item.Ref9         = updateItem.EANCode;
                    item.Ref10        = updateItem.Brand;
                    item.Ref11        = updateItem.MPN;
                    item.StatusID     = 1;//TODO Get item active status id

                    //TODO: Redownload images if images changed
                    if (_itemSettings.ReDownloadImage)
                    {
                        //item.ItemImages.ToList().ForEach(im => _imageService.DeleteImage(im.Image));
                        //DownloadNewImages();
                    }

                    //postage rule
                    var postageRuleName = updateItem.nameof(n => n.VIC) + ":" + updateItem.VIC + ";" +
                                          updateItem.nameof(n => n.NSW) + ":" + updateItem.NSW + ";" +
                                          updateItem.nameof(n => n.SA) + ":" + updateItem.SA + ";" +
                                          updateItem.nameof(n => n.QLD) + ":" + updateItem.QLD + ";" +
                                          updateItem.nameof(n => n.TAS) + ":" + updateItem.TAS + ";" +
                                          updateItem.nameof(n => n.WA) + ":" + updateItem.WA + ";" +
                                          updateItem.nameof(n => n.NT) + ":" + updateItem.NT;

                    var existingRule = _postageRuleService.GetPostageRuleByName(postageRuleName);
                    if (existingRule == null)
                    {
                        var newRule = new T_PostageRule();
                        newRule.Name        = postageRuleName;
                        newRule.Description = postageRuleName;
                        newRule.CreateTime  = createTime;
                        newRule.CreateBy    = createBy;
                        newRule.EditTime    = createTime;
                        newRule.EditBy      = createBy;

                        newRule.T_PostageRuleLine.Add(new T_PostageRuleLine()
                        {
                            PostcodeFrom = "3000", PostcodeTo = "3999", Formula = updateItem.VIC, CreateTime = createTime, CreateBy = createBy, EditTime = createTime, EditBy = createBy
                        });
                        newRule.T_PostageRuleLine.Add(new T_PostageRuleLine()
                        {
                            PostcodeFrom = "8000", PostcodeTo = "8999", Formula = updateItem.VIC, CreateTime = createTime, CreateBy = createBy, EditTime = createTime, EditBy = createBy
                        });

                        newRule.T_PostageRuleLine.Add(new T_PostageRuleLine()
                        {
                            PostcodeFrom = "0200", PostcodeTo = "0299", Formula = updateItem.NSW, CreateTime = createTime, CreateBy = createBy, EditTime = createTime, EditBy = createBy
                        });
                        newRule.T_PostageRuleLine.Add(new T_PostageRuleLine()
                        {
                            PostcodeFrom = "1000", PostcodeTo = "2999", Formula = updateItem.NSW, CreateTime = createTime, CreateBy = createBy, EditTime = createTime, EditBy = createBy
                        });

                        newRule.T_PostageRuleLine.Add(new T_PostageRuleLine()
                        {
                            PostcodeFrom = "5000", PostcodeTo = "5999", Formula = updateItem.SA, CreateTime = createTime, CreateBy = createBy, EditTime = createTime, EditBy = createBy
                        });

                        newRule.T_PostageRuleLine.Add(new T_PostageRuleLine()
                        {
                            PostcodeFrom = "4000", PostcodeTo = "4999", Formula = updateItem.QLD, CreateTime = createTime, CreateBy = createBy, EditTime = createTime, EditBy = createBy
                        });
                        newRule.T_PostageRuleLine.Add(new T_PostageRuleLine()
                        {
                            PostcodeFrom = "9000", PostcodeTo = "9999", Formula = updateItem.QLD, CreateTime = createTime, CreateBy = createBy, EditTime = createTime, EditBy = createBy
                        });

                        newRule.T_PostageRuleLine.Add(new T_PostageRuleLine()
                        {
                            PostcodeFrom = "7000", PostcodeTo = "7999", Formula = updateItem.TAS, CreateTime = createTime, CreateBy = createBy, EditTime = createTime, EditBy = createBy
                        });

                        newRule.T_PostageRuleLine.Add(new T_PostageRuleLine()
                        {
                            PostcodeFrom = "6000", PostcodeTo = "6797", Formula = updateItem.WA, CreateTime = createTime, CreateBy = createBy, EditTime = createTime, EditBy = createBy
                        });
                        newRule.T_PostageRuleLine.Add(new T_PostageRuleLine()
                        {
                            PostcodeFrom = "6800", PostcodeTo = "6999", Formula = updateItem.WA, CreateTime = createTime, CreateBy = createBy, EditTime = createTime, EditBy = createBy
                        });

                        newRule.T_PostageRuleLine.Add(new T_PostageRuleLine()
                        {
                            PostcodeFrom = "0800", PostcodeTo = "0999", Formula = updateItem.NT, CreateTime = createTime, CreateBy = createBy, EditTime = createTime, EditBy = createBy
                        });

                        existingRule = _postageRuleService.InsertPostageRule(newRule);
                    }

                    item.PostageRuleID = existingRule.ID;

                    _itemRepository.Update(item);
                }

                #endregion

                #region Delete Disabled Item
                var disableItemList = from li in localItemList
                                      where !skuList.Any(sl => sl.SKU.ToUpper().Equals(li.SKU.ToUpper())) &&
                                      li.StatusID == 1   //TODO Get item active status id
                                      select li;

                foreach (var disableItem in disableItemList)
                {
                    disableItem.StatusID = 2;//TODO Get item disable status id
                    _itemRepository.Update(disableItem, i => i.StatusID);
                }

                #endregion

                #region Add New Item
                var addItemList = from sl in skuList
                                  where !localItemList.Any(li => li.SKU.ToUpper().Equals(sl.SKU.ToUpper()))
                                  select sl;


                foreach (var additem in addItemList)
                {
                    try
                    {
                        var newItem = new D_Item();
                        newItem.SKU          = additem.SKU;
                        newItem.Title        = additem.Title;
                        newItem.Price        = additem.Price;
                        newItem.InventoryQty = additem.InventoryQty;
                        newItem.Description  = additem.Description;
                        newItem.StatusID     = 1; //TODO Get item active status id
                        newItem.SupplierID   = 1; //TODO Get Dropshipzone supplier id
                        newItem.Ref1         = additem.IsBulkyItem;
                        newItem.Ref2         = additem.Weight;
                        newItem.Ref3         = additem.Length;
                        newItem.Ref4         = additem.Width;
                        newItem.Ref5         = additem.Height;
                        newItem.Ref6         = additem.RrpPrice;
                        newItem.Ref7         = additem.Category;
                        newItem.Ref8         = additem.Discontinued;
                        newItem.Ref9         = additem.EANCode;
                        newItem.Ref10        = additem.Brand;
                        newItem.Ref11        = additem.MPN;
                        newItem.CreateTime   = createTime;
                        newItem.CreateBy     = createBy;
                        newItem.EditTime     = createTime;
                        newItem.EditBy       = createBy;
                        newItem.FillOutNull();

                        //images
                        //var imagesURL = additem.Images.Split(';');
                        var imagesURL = new List <string>();
                        if (!string.IsNullOrEmpty(additem.Image1))
                        {
                            imagesURL.Add(additem.Image1);
                        }
                        if (!string.IsNullOrEmpty(additem.Image2))
                        {
                            imagesURL.Add(additem.Image2);
                        }
                        if (!string.IsNullOrEmpty(additem.Image3))
                        {
                            imagesURL.Add(additem.Image3);
                        }
                        if (!string.IsNullOrEmpty(additem.Image4))
                        {
                            imagesURL.Add(additem.Image4);
                        }
                        if (!string.IsNullOrEmpty(additem.Image5))
                        {
                            imagesURL.Add(additem.Image5);
                        }
                        if (!string.IsNullOrEmpty(additem.Image6))
                        {
                            imagesURL.Add(additem.Image6);
                        }
                        if (!string.IsNullOrEmpty(additem.Image7))
                        {
                            imagesURL.Add(additem.Image7);
                        }
                        if (!string.IsNullOrEmpty(additem.Image8))
                        {
                            imagesURL.Add(additem.Image8);
                        }
                        if (!string.IsNullOrEmpty(additem.Image9))
                        {
                            imagesURL.Add(additem.Image9);
                        }
                        if (!string.IsNullOrEmpty(additem.Image10))
                        {
                            imagesURL.Add(additem.Image10);
                        }
                        if (!string.IsNullOrEmpty(additem.Image11))
                        {
                            imagesURL.Add(additem.Image11);
                        }
                        if (!string.IsNullOrEmpty(additem.Image12))
                        {
                            imagesURL.Add(additem.Image12);
                        }
                        if (!string.IsNullOrEmpty(additem.Image13))
                        {
                            imagesURL.Add(additem.Image13);
                        }
                        if (!string.IsNullOrEmpty(additem.Image14))
                        {
                            imagesURL.Add(additem.Image14);
                        }
                        if (!string.IsNullOrEmpty(additem.Image15))
                        {
                            imagesURL.Add(additem.Image15);
                        }
                        int           i  = 0;
                        DirectoryInfo di = new DirectoryInfo(DropshipConfig.Instance.ImageFilesPath + additem.SKU + "\\");
                        if (!di.Exists)
                        {
                            di.Create();
                        }
                        using (var wc = new DropshipWebClient())
                        {
                            foreach (var imageURL in imagesURL)
                            {
                                try
                                {
                                    var imageFileName         = CommonFunc.GetImageFileName(additem.SKU, i);
                                    var saveImageFileFullName = Path.Combine(di.FullName, imageFileName);

                                    wc.DownloadFile(imageURL, saveImageFileFullName);

                                    newItem.ItemImages.Add(new M_ItemImage()
                                    {
                                        Image = _imageService.InsertImage(new D_Image()
                                        {
                                            ImagePath  = additem.SKU + "\\" + imageFileName,
                                            CreateTime = createTime,
                                            CreateBy   = createBy,
                                            EditTime   = createTime,
                                            EditBy     = createBy
                                        }),
                                        DisplayOrder = i + 1,
                                        StatusID     = 5,//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++;
                            }
                        }

                        //postage rule
                        var postageRuleName = additem.nameof(n => n.VIC) + ":" + additem.VIC + ";" +
                                              additem.nameof(n => n.NSW) + ":" + additem.NSW + ";" +
                                              additem.nameof(n => n.SA) + ":" + additem.SA + ";" +
                                              additem.nameof(n => n.QLD) + ":" + additem.QLD + ";" +
                                              additem.nameof(n => n.TAS) + ":" + additem.TAS + ";" +
                                              additem.nameof(n => n.WA) + ":" + additem.WA + ";" +
                                              additem.nameof(n => n.NT) + ":" + additem.NT;

                        var existingRule = _postageRuleService.GetPostageRuleByName(postageRuleName);
                        if (existingRule == null)
                        {
                            var newRule = new T_PostageRule();
                            newRule.Name        = postageRuleName;
                            newRule.Description = postageRuleName;
                            newRule.CreateTime  = createTime;
                            newRule.CreateBy    = createBy;
                            newRule.EditTime    = createTime;
                            newRule.EditBy      = createBy;

                            newRule.T_PostageRuleLine.Add(new T_PostageRuleLine()
                            {
                                PostcodeFrom = "3000", PostcodeTo = "3999", Formula = additem.VIC, CreateTime = createTime, CreateBy = createBy, EditTime = createTime, EditBy = createBy
                            });
                            newRule.T_PostageRuleLine.Add(new T_PostageRuleLine()
                            {
                                PostcodeFrom = "8000", PostcodeTo = "8999", Formula = additem.VIC, CreateTime = createTime, CreateBy = createBy, EditTime = createTime, EditBy = createBy
                            });

                            newRule.T_PostageRuleLine.Add(new T_PostageRuleLine()
                            {
                                PostcodeFrom = "0200", PostcodeTo = "0299", Formula = additem.NSW, CreateTime = createTime, CreateBy = createBy, EditTime = createTime, EditBy = createBy
                            });
                            newRule.T_PostageRuleLine.Add(new T_PostageRuleLine()
                            {
                                PostcodeFrom = "1000", PostcodeTo = "2999", Formula = additem.NSW, CreateTime = createTime, CreateBy = createBy, EditTime = createTime, EditBy = createBy
                            });

                            newRule.T_PostageRuleLine.Add(new T_PostageRuleLine()
                            {
                                PostcodeFrom = "5000", PostcodeTo = "5999", Formula = additem.SA, CreateTime = createTime, CreateBy = createBy, EditTime = createTime, EditBy = createBy
                            });

                            newRule.T_PostageRuleLine.Add(new T_PostageRuleLine()
                            {
                                PostcodeFrom = "4000", PostcodeTo = "4999", Formula = additem.QLD, CreateTime = createTime, CreateBy = createBy, EditTime = createTime, EditBy = createBy
                            });
                            newRule.T_PostageRuleLine.Add(new T_PostageRuleLine()
                            {
                                PostcodeFrom = "9000", PostcodeTo = "9999", Formula = additem.QLD, CreateTime = createTime, CreateBy = createBy, EditTime = createTime, EditBy = createBy
                            });

                            newRule.T_PostageRuleLine.Add(new T_PostageRuleLine()
                            {
                                PostcodeFrom = "7000", PostcodeTo = "7999", Formula = additem.TAS, CreateTime = createTime, CreateBy = createBy, EditTime = createTime, EditBy = createBy
                            });

                            newRule.T_PostageRuleLine.Add(new T_PostageRuleLine()
                            {
                                PostcodeFrom = "6000", PostcodeTo = "6797", Formula = additem.WA, CreateTime = createTime, CreateBy = createBy, EditTime = createTime, EditBy = createBy
                            });
                            newRule.T_PostageRuleLine.Add(new T_PostageRuleLine()
                            {
                                PostcodeFrom = "6800", PostcodeTo = "6999", Formula = additem.WA, CreateTime = createTime, CreateBy = createBy, EditTime = createTime, EditBy = createBy
                            });

                            newRule.T_PostageRuleLine.Add(new T_PostageRuleLine()
                            {
                                PostcodeFrom = "0800", PostcodeTo = "0999", Formula = additem.NT, CreateTime = createTime, CreateBy = createBy, EditTime = createTime, EditBy = createBy
                            });

                            existingRule = _postageRuleService.InsertPostageRule(newRule);
                        }

                        newItem.PostageRuleID = existingRule.ID;

                        _itemRepository.Insert(newItem);
                    }
                    catch (Exception ex)
                    {
                        LogManager.Instance.Error(ex.Message);
                    }
                }



                #endregion


                return(true);
            }
            catch (Exception ex)
            {
                LogManager.Instance.Error(ex.Message);
                return(false);
            }
        }
Exemplo n.º 17
0
        public IList <D_Item> GetDSData()
        {
            var retItems = new List <D_Item>();

            try
            {
                IList <DSZModel> dsDatas = null;
                //using (var webClient = new ThirdStoreWebClient())
                //{
                var dszProducts = _dropshipzoneAPIManager.GetAllProducts();
                if (dszProducts != null && dszProducts.Count > 0)
                {
                    dsDatas = ConvertToDSZModel(dszProducts);


                    //if (!Directory.Exists(this.DSDataPath))
                    //    Directory.CreateDirectory(this.DSDataPath);
                    //var di = new DirectoryInfo(this.DSDataPath);
                    //FileInfo[] files = di.GetFiles().ToArray();
                    //if (files.Count() > 0)
                    //{
                    //var fileName = this.DSDataPath+"\\" + CommonFunc.ToCSVFileName("DSZData");

                    //webClient.DownloadFile(DSDataURL, fileName);
                    //var topDataFile = files.OrderByDescending(fi => fi.CreationTime).FirstOrDefault();
                    //dsDatas = _csvContext.Read<DSZModel>(topDataFile.FullName, _csvFileDescription).ToList();

                    if (dsDatas != null)
                    {
                        if (!Directory.Exists(this.DSDataPath))
                        {
                            Directory.CreateDirectory(this.DSDataPath);
                        }
                        var fileName = this.DSDataPath + "\\" + CommonFunc.ToCSVFileName("DSZData");
                        _csvContext.Write(dsDatas, fileName, _csvFileDescription);

                        dsDatas = dsDatas.Where(s => !s.SKU.Contains("*") && !Regex.IsMatch(s.SKU, @"^V\d+")).ToList();

                        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.Title;
                            newItem.Description = dsData.Description;
                            newItem.Cost        = dsData.Price;

                            var postage = new List <decimal>()
                            {
                                dsData.ACT.IsNumeric()? Convert.ToDecimal(dsData.ACT):0,
                                dsData.NSW_M.IsNumeric()? Convert.ToDecimal(dsData.NSW_M):0,
                                dsData.NSW_R.IsNumeric()? Convert.ToDecimal(dsData.NSW_R):0,
                                dsData.NT_M.IsNumeric()? Convert.ToDecimal(dsData.NT_M):0,
                                dsData.NT_R.IsNumeric()? Convert.ToDecimal(dsData.NT_R):0,
                                dsData.QLD_M.IsNumeric()? Convert.ToDecimal(dsData.QLD_M):0,
                                dsData.QLD_R.IsNumeric()? Convert.ToDecimal(dsData.QLD_R):0,
                                dsData.REMOTE.IsNumeric()? Convert.ToDecimal(dsData.REMOTE):0,
                                dsData.SA_M.IsNumeric()? Convert.ToDecimal(dsData.SA_M):0,
                                dsData.SA_R.IsNumeric()? Convert.ToDecimal(dsData.SA_R):0,
                                dsData.TAS_M.IsNumeric()? Convert.ToDecimal(dsData.TAS_M):0,
                                dsData.TAS_R.IsNumeric()? Convert.ToDecimal(dsData.TAS_R):0,
                                dsData.VIC_M.IsNumeric()? Convert.ToDecimal(dsData.VIC_M):0,
                                dsData.VIC_R.IsNumeric()? Convert.ToDecimal(dsData.VIC_R):0,
                                dsData.WA_M.IsNumeric()? Convert.ToDecimal(dsData.WA_M):0,
                                dsData.WA_R.IsNumeric()? Convert.ToDecimal(dsData.WA_R):0
                            }.Max();

                            //newItem.Price = (newItem.Cost + postage) * _commonSetting.DropshipMarkupRate;
                            newItem.Price          = newItem.Cost * _commonSetting.DropshipMarkupRate;
                            newItem.Type           = ThirdStoreItemType.SINGLE.ToValue();
                            newItem.SupplierID     = ThirdStoreSupplier.P.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           = !string.IsNullOrWhiteSpace(dsData.EANCode)? dsData.EANCode.Trim():string.Empty;
                            newItem.IsReadyForList = (dsData.SKU.Length <= 23 && dsData.Price <= Convert.ToDecimal(ThirdStoreConfig.Instance.SyncDSPriceBelow) ? 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;
            }
        }
Exemplo n.º 18
0
        public void AddOrUpdateItem(IList<D_Item> items)
        {
            try
            {
                var createTime = DateTime.Now;
                var createBy = _workContext.CurrentUserName;
                var localItemList = GetAllItems();

                #region Update Section

                var updateItemList = from sl in items
                                     join li in localItemList on sl.SKU.ToUpper() equals li.SKU.ToUpper()
                                     select new {updateData= sl, LocalItem= li };

                var upds = new List<D_Item>();
                foreach (var updateItem in updateItemList)
                {
                    var item = updateItem.LocalItem;
                    var updateData = updateItem.updateData;
                    if (!string.IsNullOrWhiteSpace(updateData.Description))
                        item.Description = updateData.Description;
                    item.Cost = updateData.Cost;
                    item.Price = updateData.Price;
                    upds.Add(item);
                }
                _itemRepository.Update(upds, itm => itm.Description, itm => itm.Cost, itm => itm.Price);
                #endregion

                #region Add Section
                var addItemList = from sl in items
                                  where !localItemList.Any(li => li.SKU.ToUpper().Equals(sl.SKU.ToUpper()))
                                  select sl;

                foreach (var additem in addItemList)
                {
                    try
                    {
                        var newItem = new D_Item();
                        //newItem.SKU = additem.SKU;
                        //newItem.Name = additem.Name;
                        //newItem.Cost = additem.Cost;
                        //newItem.Price = additem.Price;
                        //newItem.Description = additem.Description;
                        AutoMapper.Mapper.Map(additem,newItem);
                        newItem.CreateTime = createTime;
                        newItem.CreateBy = createBy;
                        newItem.EditTime = createTime;
                        newItem.EditBy = createBy;
                        newItem.FillOutNull();

                        var imageURLs = newItem.Ref5.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).ToList();
                        DownloadItemImages(imageURLs, newItem);
                        //PreDownloadItemImages(imageURLs, newItem);
                        //RestoreItemImages(imageURLs, newItem);

                        _itemRepository.Insert(newItem);
                    }
                    catch(Exception ex)
                    {
                        LogManager.Instance.Error(ex.Message);
                    }
                }

                #endregion


            }
            catch (Exception ex)
            {
                LogManager.Instance.Error(ex.Message);
                throw ex;
            }
        }
Exemplo n.º 19
0
        public void UpdateChannelData()
        {
            try
            {
                var createTime = DateTime.Now;
                var createBy = Constants.SystemUser;
                var skuList = GetSupplierSKUList();
                var localItemList = GetAllItems();
                var updateItemList = from sl in skuList
                                     join li in localItemList on sl.SKU.ToUpper() equals li.SKU.ToUpper()
                                     select new
                                     {
                                         li.ID,
                                         SKU = sl.SKU.ToUpper(),
                                         sl.Title,
                                         sl.InventoryQty,
                                         sl.Price,
                                         sl.Description,
                                         sl.IsBulkyItem,
                                         sl.RrpPrice,
                                         sl.Category,
                                         sl.Discontinued,
                                         sl.EANCode,
                                         sl.Brand,
                                         sl.MPN,
                                         sl.Weight,
                                         sl.Length,
                                         sl.Width,
                                         sl.Height,
                                         sl.VIC,
                                         sl.NSW,
                                         sl.SA,
                                         sl.QLD,
                                         sl.TAS,
                                         sl.WA,
                                         sl.NT,
                                         sl.Image1,
                                         sl.Image2,
                                         sl.Image3,
                                         sl.Image4,
                                         sl.Image5,
                                         sl.Image6,
                                         sl.Image7,
                                         sl.Image8,
                                         sl.Image9,
                                         sl.Image10,
                                         sl.Image11,
                                         sl.Image12,
                                         sl.Image13,
                                         sl.Image14,
                                         sl.Image15,
                                         LocalListing = li
                                     };

                foreach (var updateItem in updateItemList)
                {
                    var item = updateItem.LocalListing;
                    if(!string.IsNullOrWhiteSpace(updateItem.Description))
                        item.Description = updateItem.Description;
                    item.Cost = updateItem.Price;
                    
                    var postage = new List<decimal>() {
                        updateItem.VIC.IsNumeric()? Convert.ToDecimal(updateItem.VIC):0,
                        updateItem.NSW.IsNumeric()? Convert.ToDecimal(updateItem.NSW):0,
                        updateItem.SA.IsNumeric()? Convert.ToDecimal(updateItem.SA):0,
                        updateItem.QLD.IsNumeric()? Convert.ToDecimal(updateItem.QLD):0,
                        updateItem.TAS.IsNumeric()? Convert.ToDecimal(updateItem.TAS):0,
                        updateItem.WA.IsNumeric()? Convert.ToDecimal(updateItem.WA):0,
                        updateItem.NT.IsNumeric()? Convert.ToDecimal(updateItem.NT):0
                        }.Max();


                    item.Price = (item.Cost+ postage) * Convert.ToDecimal(1.3);
                    //UpdateItem(item);
                    _itemRepository.Update(item,itm=> itm.Description,itm=>itm.Cost,itm=>itm.Price);
                }



                #region Add New Item
                var addItemList = from sl in skuList
                                  where !localItemList.Any(li => li.SKU.ToUpper().Equals(sl.SKU.ToUpper()))
                                  select sl;


                foreach (var additem in addItemList)
                {
                    try
                    {
                        if (additem.SKU.Length > 23)
                            LogManager.Instance.Info($"SKU {additem.SKU} length is larger than 23.");
                            //throw new Exception($"SKU {additem.SKU} length is larger than 23.");
                        var newItem = new D_Item();
                        newItem.SKU = additem.SKU;
                        newItem.Name = additem.Title;
                        newItem.Cost = additem.Price;
                        newItem.Price= newItem.Cost * Convert.ToDecimal(1.3);
                        newItem.Description = additem.Description;
                        newItem.Type = ThirdStoreItemType.SINGLE.ToValue();
                        newItem.SupplierID = ThirdStoreSupplier.P.ToValue();
                        newItem.GrossWeight =(!string.IsNullOrWhiteSpace(additem.Weight) ? Convert.ToDecimal(additem.Weight):0);
                        newItem.NetWeight = (!string.IsNullOrWhiteSpace(additem.Weight) ? Convert.ToDecimal(additem.Weight) : 0);
                        newItem.Length =(!string.IsNullOrWhiteSpace(additem.Length) ? Convert.ToDecimal(additem.Length)/100 : 0);
                        newItem.Width = (!string.IsNullOrWhiteSpace(additem.Width) ? Convert.ToDecimal(additem.Width) / 100 : 0);
                        newItem.Height =  (!string.IsNullOrWhiteSpace(additem.Height) ? Convert.ToDecimal(additem.Height) / 100 : 0);
                        //newItem.GrossWeight = additem.Weight;
                        //newItem.NetWeight = additem.Weight;
                        //newItem.Length = additem.Length;
                        //newItem.Width = additem.Width;
                        //newItem.Height = additem.Height;
                        newItem.Ref3 = additem.EANCode.Trim();
                        newItem.IsReadyForList =(additem.SKU.Length <= 23&&additem.Price<= Convert.ToDecimal(ThirdStoreConfig.Instance.SyncDSPriceBelow)? true :false) ;
                        newItem.IsActive = true;
                        newItem.CreateTime = createTime;
                        newItem.CreateBy = createBy;
                        newItem.EditTime = createTime;
                        newItem.EditBy = createBy;
                        newItem.FillOutNull();


                        DownloadItemImages(additem, newItem);
                        #region Download and Save Item Images (Already moved to DownloadItemImages)
                        //var imagesURL = new List<string>();
                        //if (!string.IsNullOrEmpty(additem.Image1))
                        //    imagesURL.Add(additem.Image1);
                        //if (!string.IsNullOrEmpty(additem.Image2))
                        //    imagesURL.Add(additem.Image2);
                        //if (!string.IsNullOrEmpty(additem.Image3))
                        //    imagesURL.Add(additem.Image3);
                        //if (!string.IsNullOrEmpty(additem.Image4))
                        //    imagesURL.Add(additem.Image4);
                        //if (!string.IsNullOrEmpty(additem.Image5))
                        //    imagesURL.Add(additem.Image5);
                        //if (!string.IsNullOrEmpty(additem.Image6))
                        //    imagesURL.Add(additem.Image6);
                        //if (!string.IsNullOrEmpty(additem.Image7))
                        //    imagesURL.Add(additem.Image7);
                        //if (!string.IsNullOrEmpty(additem.Image8))
                        //    imagesURL.Add(additem.Image8);
                        //if (!string.IsNullOrEmpty(additem.Image9))
                        //    imagesURL.Add(additem.Image9);
                        //if (!string.IsNullOrEmpty(additem.Image10))
                        //    imagesURL.Add(additem.Image10);
                        //if (!string.IsNullOrEmpty(additem.Image11))
                        //    imagesURL.Add(additem.Image11);
                        //if (!string.IsNullOrEmpty(additem.Image12))
                        //    imagesURL.Add(additem.Image12);
                        //if (!string.IsNullOrEmpty(additem.Image13))
                        //    imagesURL.Add(additem.Image13);
                        //if (!string.IsNullOrEmpty(additem.Image14))
                        //    imagesURL.Add(additem.Image14);
                        //if (!string.IsNullOrEmpty(additem.Image15))
                        //    imagesURL.Add(additem.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 = additem.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 = createTime,
                        //                    CreateBy = createBy,
                        //                    EditTime = createTime,
                        //                    EditBy = createBy
                        //                });
                        //            }
                        //        }
                        //        catch (Exception ex)
                        //        {
                        //            LogManager.Instance.Error(imageURL + " download failed. " + ex.Message);
                        //        }

                        //        i++;
                        //    }
                        //}

                        #endregion

                        //DirectoryInfo di = new DirectoryInfo(ThirdStoreConfig.Instance.ThirdStoreImagesPath + "\\" + additem.SKU + "\\");
                        //DirectoryInfo di = new DirectoryInfo(@"C:\Users\gdutj\Downloads\3rdStockSystem\DSZImages20191120\" + additem.SKU + "\\");
                        

                        _itemRepository.Insert(newItem);
                    }
                    catch (Exception ex)
                    {
                        LogManager.Instance.Error(ex.Message);
                    }
                }


                #endregion


                #region Persist DSZ Item Data
                

                //var fullFileName = ThirdStoreConfig.Instance.ThirdStoreDSZData+"\\"+CommonFunc.ToCSVFileName("DSZData");
                //_csvContext.Write(skuList, fullFileName,_csvFileDescription);

                //_dszItemRepository.Clear();
                //var insertItems = new List<D_DSZItem>();
                //foreach(var item in skuList)
                //{
                //    var insertItem = AutoMapper.Mapper.Map<DSZSKUModel, D_DSZItem>(item);
                //    insertItem.FillOutNull();
                //    insertItems.Add(insertItem);
                //}
                //_dszItemRepository.Insert(insertItems);

                #endregion

            }
            catch (Exception ex)
            {
                LogManager.Instance.Error(ex.Message);
            }
        }
Exemplo n.º 20
0
        private D_Item makeItem(PieceTokenizer f)
        {
            var g = f.reStart();
            D_Item item = new D_Item();
            string w1;
            if ((w1 = getWord(f)) != null)
            {
                item.Word = new D_Word();
                item.Word.Value = w1;

                if (isToken(f, "="))
                {
                    if ((item.Piece = makePiece(f)) != null)
                    {
                        return item;
                    }
                }
            }
            f.goBack(g);
            return null;
        }
Exemplo n.º 21
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
        }
Exemplo n.º 22
0
 public static void DeleteItem(M_Item item)
 {
     D_Item.DeleteItem(item);
 }
Exemplo n.º 23
0
 public static void UpdateItem(M_Item item)
 {
     D_Item.UpdateItem(item);
 }
Exemplo n.º 24
0
 public static List <M_Item> SelectItem()
 {
     return(D_Item.SelectItem());
 }
Exemplo n.º 25
0
    public static bool InsertItem(M_Item item)
    {
        int count = D_Item.InsertItem(item);

        return(count > 0 ? true : false);
    }
Exemplo n.º 26
0
        private Tuple<string, string> buildPieceWithParam(VariableTracker vt, D_PieceWithParam pieceWrap, D_Item item)
        {
            StringBuilder cls = new StringBuilder();
            StringBuilder method = new StringBuilder();
            Tuple<string, string> v;
            v = buildPiece(vt, pieceWrap.Piece1, item);
            cls.AppendLine(v.Item1);
            method.AppendLine(v.Item2);

            v = buildPiece(vt, pieceWrap.Piece2, item);
            cls.AppendLine(v.Item1);
            method.AppendLine(v.Item2 + "conitnue; else break;");

            return new Tuple<string, string>(cls.ToString(), method.ToString());
        }
Exemplo n.º 27
0
 public static ItemViewModel ToCreateNewModel(this D_Item entity)
 {
     return(entity.MapTo <D_Item, ItemViewModel>());
 }
Exemplo n.º 28
0
        private Tuple<string, string> buildPieceWrap(VariableTracker vt, D_PieceWrap pieceWrap, D_Item item)
        {
            StringBuilder cls = new StringBuilder();
            StringBuilder method = new StringBuilder();
            Tuple<string, string> v;

            if (pieceWrap.HasPieceExtras)
            {
                switch (pieceWrap.PieceExtras.PieceExtrasClause)
                {
                    case D_PieceExtras.D_PieceExtrasClause.QuestionMark:
                        break;
                    case D_PieceExtras.D_PieceExtrasClause.DotDot:
                        method.AppendLine("while(true) {");
                        v = buildPieceInformation(vt, pieceWrap.PieceInformation, item);

                        cls.AppendLine(v.Item1);
                        method.AppendLine(v.Item2);

                        method.AppendLine("}");

                        cls.AppendLine("public List<D_" + item.Word.Value + "> " + item.Word.Value + "s = new List<D_" + item.Word.Value + ">();");
                        break;
                    default:
                        throw new ArgumentOutOfRangeException();
                }
            }

            return new Tuple<string, string>(cls.ToString(), method.ToString());
        }
Exemplo n.º 29
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++;
                }
            }
        }
Exemplo n.º 30
0
 //Item
 public static ItemGridViewModel ToModel(this D_Item entity)
 {
     return(entity.MapTo <D_Item, ItemGridViewModel>());
 }
Exemplo n.º 31
0
 public InventorySlot(D_Item item, int amount)
 {
     this.item   = item;
     this.amount = amount;
 }
Exemplo n.º 32
0
 public static D_Item ToCreateNewEntity(this ItemViewModel model, D_Item destination)
 {
     return(model.MapTo(destination));
 }
Exemplo n.º 33
0
        private Tuple<string, string> buildJustPiece(VariableTracker vt, D_JustPiece justPiece, D_Item item)
        {
            StringBuilder cls = new StringBuilder();
            StringBuilder method = new StringBuilder();
            Tuple<string, string> v = buildPiece(vt, justPiece.Piece, item);
            cls.AppendLine(v.Item1);
            method.AppendLine(v.Item2);

            return new Tuple<string, string>(cls.ToString(), method.ToString());
        }
Exemplo n.º 34
0
 public void DeleteItem(D_Item item)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 35
0
        private Tuple<string, string> buildPiece(VariableTracker vt, D_Piece piece, D_Item item)
        {
            StringBuilder cls = new StringBuilder();
            StringBuilder method = new StringBuilder();
            Tuple<string, string> v;

            switch (piece.PieceClause)
            {
                case D_Piece.D_PieceClause.PieceWrap:
                    v = buildPieceWrap(vt, piece.PieceWrap, item);
                    cls.Append(v.Item1);
                    method.Append(v.Item2);
                    break;
                case D_Piece.D_PieceClause.PieceKernalOr:
                    v = buildPieceKernalOr(vt, piece.PieceKernalOr, item);
                    cls.Append(v.Item1);
                    method.Append(v.Item2);
                    break;
                default:
                    throw new ArgumentOutOfRangeException();
            }

            return new Tuple<string, string>(cls.ToString(), method.ToString());
        }
Exemplo n.º 36
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;
            }
        }
Exemplo n.º 37
0
        private Tuple<string, string> buildPieceContents(VariableTracker vt, D_PieceContent pieceWrap, D_Item item)
        {
            StringBuilder cls = new StringBuilder();
            StringBuilder method = new StringBuilder();
            Tuple<string, string> v;

            switch (pieceWrap.PieceContentClause) {
                case D_PieceContent.D_PieceContentClause.Word:

                    var d = vt.NewVariable();
                    method.AppendLine("D_" + pieceWrap.Word.Value + " "+d+";\r\n if(("+d+" = make" + pieceWrap.Word.Value + "(f))!=null){");
                    break;
                case D_PieceContent.D_PieceContentClause.String:
                    method.AppendLine("if(isToken(f,\""+pieceWrap.String.Value+"\")){");
                    break;
                case D_PieceContent.D_PieceContentClause.Piece:

                    v = buildPiece(vt, pieceWrap.Piece, item);
                    method.AppendLine("{");
                    cls.AppendLine(v.Item1);
                    method.AppendLine(v.Item2);
                    break;
                default:
                    throw new ArgumentOutOfRangeException();
            }
            return new Tuple<string, string>(cls.ToString(), method.ToString());
        }