Example #1
0
        private void btnStart_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            try
            {
                if (string.IsNullOrEmpty(ccbNick.Text))
                {
                    XtraMessageBox.Show("请选择店铺!");
                    return;
                }

                #region 买家自定义类目
                //读取买家自定义类目列表中被选中的子节点
                string sellercids = string.Empty;
                foreach (TreeListNode node in treeListSellerCat.Nodes)
                {
                    if (node.HasChildren)
                    {
                        foreach (TreeListNode childNode in node.Nodes)
                        {
                            if (childNode.CheckState == CheckState.Checked)
                            {
                                sellercids += string.Format("{0},", childNode.Tag.ToString());
                            }
                        }
                    }
                    else
                    {
                        if (node.CheckState == CheckState.Checked)
                        {
                            sellercids += string.Format("{0},", node.Tag.ToString());
                        }
                    }
                }
                itemreq.SellerCids = sellercids.TrimEnd(',');
                #endregion

                /*在这里判断stockItem中是否存在此商品,不存在要生成一个*/
                string  session = SystemHelper.GetSessionKey(ccbNick.Text);
                ItemRsp addRsp  = TopService.ItemAdd(session, itemreq);
                //上传成功执行
                if (addRsp != null && addRsp.Item != null)
                {
                    ItemRsp             rsp  = TopService.ItemGet(session, ccbNick.Text, addRsp.Item.Iid, null);
                    Alading.Entity.Item item = new Alading.Entity.Item();
                    if (rsp.Item == null)
                    {
                        rsp.Item = itemreq as Taobao.Entity.Item;
                    }
                    UIHelper.ItemCopyData(item, rsp.Item);
                    ItemService.AddItem(item);
                }
            }
            catch (Exception ex)
            {
                XtraMessageBox.Show(ex.Message);
            }
        }
Example #2
0
        void worker_DoWork(object sender, DoWorkEventArgs e)
        {
            ItemTask itemTask = e.Argument as ItemTask;
            List <Taobao.Entity.Item> items  = itemTask.ItemList;
            BackgroundWorker          worker = (BackgroundWorker)sender;
            int totalCount = itemTask.totalCount;

            for (int i = 0; i < items.Count; i++)
            {
                lock (lockObject)
                {
                    //进度递增
                    progressCurrent++;
                }

                if (worker.CancellationPending)
                {
                    e.Cancel = true;
                    break;
                }

                try
                {
                    ItemRsp myrsp = TopService.ItemGet(SystemHelper.GetSessionKey(items[i].Nick), items[i].Nick, items[i].Iid, string.Empty);
                    if (myrsp != null && myrsp.Item != null)
                    {
                        Alading.Entity.Item item = new Alading.Entity.Item();
                        UIHelper.ItemCopyData(item, myrsp.Item);
                        //添加到数据库,如果存在则更新,否则添加
                        ReturnType result = ItemService.AddItem(item);

                        //计算进度条值
                        int progress = (int)((float)progressCurrent / (float)totalCount * 100);
                        if (result == ReturnType.Success)
                        {
                            UserState state = new UserState();
                            state.Index         = i + 1;
                            state.Iid           = items[i].Iid;
                            state.ItemTaskIndex = itemTask.Index;
                            state.Message       = "下载成功!";
                            worker.ReportProgress(progress, state);
                        }
                        else
                        {
                            UserState state = new UserState();
                            state.Message       = "数据库存储发生错误。";
                            state.Index         = i + 1;
                            state.Iid           = items[i].Iid;
                            state.ItemTaskIndex = itemTask.Index;

                            //发生数据库错误的报告
                            worker.ReportProgress(-1, state);
                        }
                    }
                }
                catch (Exception ex)
                {
                    UserState state = new UserState();
                    state.Message       = ex.Message;
                    state.Index         = i + 1;
                    state.Iid           = items[i].Iid;
                    state.ItemTaskIndex = itemTask.Index;

                    //发生下载错误的报告
                    worker.ReportProgress(-1, state);
                }
            }


            e.Result = itemTask.Index;
        }
Example #3
0
        void worker_DoWork(object sender, DoWorkEventArgs e)
        {
            ItemTask         itemTask = e.Argument as ItemTask;
            List <string>    iidlist  = itemTask.iidList;
            BackgroundWorker worker   = (BackgroundWorker)sender;
            int n = iidlist.Count;

            for (int i = 0; i < n; i++)
            {
                //完成数加1
                itemCompleteNum++;
                if (isCancel)
                {
                    e.Cancel = true;
                    break;
                }
                string     iid        = iidlist[i];
                ReturnType returntype = ItemService.IsItemExisted(iid);
                if (checkEditIsUpdate.CheckState != CheckState.Checked && returntype == ReturnType.PropertyExisted)
                {
                    /*跳过本次下载*/
                    worker.ReportProgress(-2, string.Format("线程号{0},数据库已存在第{1}个宝贝,跳过下载", itemTask.threadIndex, i + 1));
                    continue;
                }
                string session = itemTask.sessionKey;
                string nick    = itemTask.shopNic;
                try
                {
                    ItemRsp myrsp = TopService.ItemGet(session, nick, iid, string.Empty);
                    if (myrsp != null && myrsp.Item != null)
                    {
                        Alading.Entity.Item item = new Alading.Entity.Item();
                        UIHelper.ItemCopyData(item, myrsp.Item);
                        ItemService.AddItem(item, checkEditIsUpdate.Checked);
                    }
                    else
                    {
                        if (failedDownload.iidList == null)
                        {
                            failedDownload.iidList = new List <string>();
                        }
                        failedDownload.iidList.Add(iid);
                        failedDownload.shopNick   = nick;
                        failedDownload.sessionKey = session;
                    }
                    //int progress = (int)((float)(i + 1) / (float)n * 100);
                    worker.ReportProgress(itemCompleteNum, string.Format("{0}已成功下载第{1}个宝贝,线程号{2}", DateTime.Now.ToString(Constants.DATE_TIME_FORMAT), itemCompleteNum, itemTask.threadIndex));
                }
                catch (System.Exception ex)
                {
                    MyException myexc = new MyException();
                    myexc.position    = i + 1;
                    myexc.iid         = iid;
                    myexc.msg         = ex.Message;
                    myexc.threadIndex = itemTask.threadIndex;
                    worker.ReportProgress(-1, myexc);

                    if (failedDownload.iidList == null)
                    {
                        failedDownload.iidList = new List <string>();
                    }
                    failedDownload.iidList.Add(iid);
                    failedDownload.shopNick   = nick;
                    failedDownload.sessionKey = session;
                }
            }
            e.Result = itemTask.threadIndex;
        }