Пример #1
0
        private void backWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker worker  = (BackgroundWorker)sender;
            List <string>    cidlist = (List <string>)e.Argument;

            for (int i = 0; i < cidlist.Count; i++)
            {
                if (isCancel)
                {
                    e.Cancel = true;
                    break;
                }
                string cid = cidlist[i];
                try
                {
                    UIHelper.DownPropsAndValues(cid, worker);
                }
                catch (Exception ex)
                {
                    if (ciderrorlist == null)
                    {
                        ciderrorlist = new List <string>();
                    }
                    ciderrorlist.Add(cid);
                    worker.ReportProgress(i + 1, string.Format("类目cid={0}异常信息:{1}", cid, ex.Message));
                    continue;
                }

                //更新ItemCat中此cid下的属性已完全下载
                ItemCatService.UpdateItemCatPropTag(cid, true);

                worker.ReportProgress(i + 1, cid);
            }
        }
Пример #2
0
        /// <summary>
        /// 向treeList中加载出售中的商品的淘宝类目
        /// </summary>
        /// <param name="node1">父节点</param>
        /// <param name="treeListCat">被加载的控件treeListCat</param>
        public void LoadAllItemCat()
        {
            //获取所有Item的Cid
            List <string> listItemCid = ItemService.GetItemCids();
            //获取所有Item的淘宝类目及其父类目
            List <Alading.Entity.ItemCat> listItemCat = ItemCatService.GetAllItemCat(listItemCid);

            TreeListNode rootNode = treeListItemCat.AppendNode(new object[] { "所有类目" }, null);

            rootNode.Tag = "0";
            AddNodes("0", listItemCat, rootNode, treeListItemCat);
            rootNode.ExpandAll();
        }
Пример #3
0
        private void btnItemCat_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            WaitDialogForm waitFrm = new WaitDialogForm(Constants.WAIT_LOAD_DATA);

            try
            {
                listBoxCtrl.Items.Insert(0, DateTime.Now.ToString(Constants.DATE_TIME_FORMAT) + " 启动淘宝类目下载");
                ItemCatRsp results = TopService.ItemCatsGet(null, null, "1970-01-01 00:00:00");
                listBoxCtrl.Items.Insert(0, DateTime.Now.ToString(Constants.DATE_TIME_FORMAT) + " 淘宝类目下载完毕");

                if (results != null && results.ItemCats != null && results.ItemCats.ItemCat != null)
                {
                    listBoxCtrl.Items.Insert(0, "ItemCats数量为" + results.ItemCats.ItemCat.Length);
                    Application.DoEvents();
                    //重新置空全局变量
                    itemcatlist.Clear();

                    DataTable table = new DataTable();
                    table.Columns.Add("cid", typeof(string));
                    table.Columns.Add("parent_cid", typeof(string));
                    table.Columns.Add("name", typeof(string));
                    table.Columns.Add("is_parent", typeof(bool));
                    table.Columns.Add("status", typeof(string));
                    table.Columns.Add("sort_order", typeof(Int32));
                    table.Columns.Add("PropTag", typeof(bool));
                    foreach (ItemCat itemCat in results.ItemCats.ItemCat)
                    {
                        Alading.Entity.ItemCat cat = new Alading.Entity.ItemCat();
                        cat.cid        = itemCat.Cid;
                        cat.parent_cid = itemCat.ParentCid;
                        cat.name       = string.IsNullOrEmpty(itemCat.Name) ? "无" : itemCat.Name;
                        cat.is_parent  = itemCat.IsParent;
                        cat.status     = itemCat.Status;
                        cat.sort_order = itemCat.SortOrder;
                        cat.PropTag    = false;
                        itemcatlist.Add(cat);

                        DataRow row = table.NewRow();
                        row["cid"]        = itemCat.Cid;
                        row["parent_cid"] = itemCat.ParentCid;
                        row["name"]       = string.IsNullOrEmpty(itemCat.Name) ? "无" : itemCat.Name;
                        row["is_parent"]  = itemCat.IsParent;
                        row["status"]     = itemCat.Status;
                        row["sort_order"] = itemCat.SortOrder;
                        row["PropTag"]    = false;
                        table.Rows.Add(row);
                    }
                    //排序
                    itemcatlist = itemcatlist.OrderBy(c => c.cid).ToList();
                    listBoxCtrl.Items.Insert(0, DateTime.Now.ToString(Constants.DATE_TIME_FORMAT) + " 启动淘宝类目存储");
                    Application.DoEvents();
                    ItemCatService.AddItemCatSqlBulkCopy(table);
                    listBoxCtrl.Items.Insert(0, DateTime.Now.ToString(Constants.DATE_TIME_FORMAT) + " 淘宝类目存储完毕");
                    //重新加载节点
                    treeListItemCat.Nodes.Clear();
                    LoadItemCat(treeListItemCat);
                    waitFrm.Close();
                }
            }
            catch (Exception ex)
            {
                waitFrm.Close();
                XtraMessageBox.Show(ex.Message, Constants.SYSTEM_PROMPT, MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
Пример #4
0
 public DownloadPropValue()
 {
     InitializeComponent();
     itemcatlist = ItemCatService.GetAllItemCat();
 }
Пример #5
0
        void batchworker_DoWork(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker worker        = (BackgroundWorker)sender;
            MyCidTask        cidtask       = (MyCidTask)e.Argument;
            List <string>    threadcidlist = cidtask.cidlist;

            #region 多类目下载一次存储方式,不采用
            ////分times次下载
            //int times = 100;
            //int size = 0;
            //if (threadcidlist.Count >= times)
            //{
            //    size = threadcidlist.Count % times == 0 ? threadcidlist.Count / times : threadcidlist.Count / times + 1;
            //}
            //else
            //{
            //    size = 1;
            //    times = threadcidlist.Count;
            //}
            #endregion

            int times = threadcidlist.Count;
            //int temp = 0;//作用是避免进度值propgress没有改变时得重复报告
            for (int i = 0; i < times; i++)
            {
                cidCompleteNum++;
                if (isCancel)
                {
                    e.Cancel = true;
                    break;
                }

                #region 多类目下载一次存储方式,不采用
                //List<string> cidlist = threadcidlist.Skip(i * size).Take(size).ToList();

                //List<string> valueWhereInCids = ItemPropValueService.GetPropValueWhereInCids(cidlist);
                //List<string> valueCidList = cidlist.Except(valueWhereInCids).ToList();
                //DownItemPropvalue(valueCidList, worker);

                //List<string> propWhereInCids = ItemPropService.GetPropWhereInCids(cidlist);
                //List<string> propCidList = cidlist.Except(propWhereInCids).ToList();
                //DownItemProp(propCidList, worker);

                //UpdatePropValueIsParent(cidlist, worker);
                //ReturnType type = ItemCatService.UpdateItemCatPropTag(cidlist);
                #endregion

                string cid = threadcidlist[i];
                try
                {
                    UIHelper.DownPropsAndValues(cid, worker);
                }
                catch (Exception ex)
                {
                    if (ciderrorlist == null)
                    {
                        ciderrorlist = new List <string>();
                    }
                    ciderrorlist.Add(cid);
                    worker.ReportProgress(int.Parse(cid), string.Format("异常信息{0}", ex.Message));
                    continue;
                }
                //更新ItemCat中此cid下的属性已完全下载
                ItemCatService.UpdateItemCatPropTag(cid, true);

                /*进度报告*/
                //int percentage = (int)((float)(i + 1) * 100 / (float)times);
                //if (percentage > temp)
                //{
                //    worker.ReportProgress(percentage, cidtask.threadId);
                //}
                //temp = percentage;
                worker.ReportProgress(cidCompleteNum, cidtask.threadId);
            }
            e.Result = cidtask.threadId;
        }