public void UpdateItem(D_Item item) { if (item != null) { _itemRepository.Update(item); } }
public void DeleteItem(D_Item item) { if (item != null) { _itemRepository.Delete(item); } }
/** 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(); }
public void InsertItem(D_Item item) { if (item != null) { _itemRepository.Insert(item); } }
/** 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)); } }
/** 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); }
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); }
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++; } } }
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); }
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); } }
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; } } }
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 }
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()); }
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()); }
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()); }
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); } }
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; } }
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; } }
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); } }
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; }
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 }
public static void DeleteItem(M_Item item) { D_Item.DeleteItem(item); }
public static void UpdateItem(M_Item item) { D_Item.UpdateItem(item); }
public static List <M_Item> SelectItem() { return(D_Item.SelectItem()); }
public static bool InsertItem(M_Item item) { int count = D_Item.InsertItem(item); return(count > 0 ? true : false); }
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()); }
public static ItemViewModel ToCreateNewModel(this D_Item entity) { return(entity.MapTo <D_Item, ItemViewModel>()); }
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()); }
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++; } } }
//Item public static ItemGridViewModel ToModel(this D_Item entity) { return(entity.MapTo <D_Item, ItemGridViewModel>()); }
public InventorySlot(D_Item item, int amount) { this.item = item; this.amount = amount; }
public static D_Item ToCreateNewEntity(this ItemViewModel model, D_Item destination) { return(model.MapTo(destination)); }
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()); }
public void DeleteItem(D_Item item) { throw new NotImplementedException(); }
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()); }
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; } }
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()); }