コード例 #1
0
        public void Set(ScrapParameter param)
        {
            if (!FlowMap.ContainsKey(param.Code))
            {
                throw new ScraperException("Code is not defined. Please check code of parameter. Code : " + param.Code);
            }
            FlowType type = FlowMap[param.Code];

            this.flow      = Activator.CreateInstance(type.Flow, this, param, type.LoginMode) as IScrapFlow;
            this.parameter = param;
            Gecko.LauncherDialog.Download += (sender, e) =>
            {
                String       tempPath  = ConfigSystem.ReadConfig("Config", "Temp", "Path");
                String       file      = Path.Combine(tempPath, DateTime.Now.ToString("yyyyMMddHHmmss") + e.Filename);
                nsILocalFile objTarget = (nsILocalFile)Xpcom.NewNativeLocalFile(file);
                e.HelperAppLauncher.SaveToDisk(objTarget, false);
                Action <String, String> action = flow.DownloadProcedure(e.Url);
                action(e.Url, file);
            };
            timer.Interval = 10 * 1000;
            timer.Tick    += (s, e) =>
            {
                Ping(parameter.Keycode);
            };
            timer.Start();
            this.Navigate(flow.StartPage());
        }
コード例 #2
0
        public AuctionFlow(ScrapBrowser browser, ScrapParameter param, bool login_mode)
            : base(browser, param, login_mode)
        {
            logger.Info("Action initialize");

            FlowMap.Add("Member/SignIn/LogOn", Login);
            FlowMap.Add("Home/Home", Home);
            FlowMap.Add("membership/MyInfo/MyInfoComp", Profile);
            FlowMap.Add("Escrow/Delivery/BuyDecision", BuyDecision);
            FlowMap.Add("Member/Settle/IacSettleDetail", LacSettleDetail);
            FlowMap.Add("Escrow/Delivery/GeneralDelivery", GeneralDelivery);
            FlowMap.Add("Escrow/Delivery/Sending", Sending);
            FlowMap.Add("Areas/Manual/SellerGuide", ScrapEnd);
            FlowMap.Add("Escrow/Claim/ReturnRequestManagement", ReturnRequestManagement);
            FlowMap.Add("Sell/Items/ItemsMng", ItemsMng);
            FlowMap.Add("Sell/Items/GetItemMngList", GetItemMngList);
            FlowMap.Add("Member/CustomerService/CSManagement", CSManagement);

            DownloadMap.Add("BuyDecisionExcel", BuyDecisionExcel);
            DownloadMap.Add("IacRemitListExcelDownload", LacRemitListExcelDownload);
            DownloadMap.Add("GeneralDeliveryExcel", GeneralDeliveryExcel);
            DownloadMap.Add("SendingExcel", SendingExcel);
            DownloadMap.Add("ExcelDownload", ExcelDownload);

            base.ReflectFlyweightKeys.Add(typeof(BuyDecisionExcel));
            base.ReflectFlyweightKeys.Add(typeof(LacRemitListExcel));
            base.ReflectFlyweightKeys.Add(typeof(GeneralDeliveryExcel));
            base.ReflectFlyweightKeys.Add(typeof(SendingExcel));
            base.ReflectFlyweightKeys.Add(typeof(ReturnRequest));
            base.ReflectFlyweightKeys.ForEach(type =>
            {
                ReflectFlyweight.Add(type, new List <FieldInfo>(type.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance)));
            });
        }
コード例 #3
0
        public ActionResult Save(LotScrapViewModel model)
        {
            MethodReturnResult result = new MethodReturnResult();

            try
            {
                ScrapParameter p = new ScrapParameter()
                {
                    Creator         = User.Identity.Name,
                    OperateComputer = Request.UserHostAddress,
                    Operator        = User.Identity.Name,
                    ReasonCodes     = new Dictionary <string, IList <ScrapReasonCodeParameter> >(),
                    Remark          = model.Description,
                    LotNumbers      = new List <string>()
                };
                //获取批值。
                string lotNumber = model.LotNumber.ToUpper();
                result = GetLot(lotNumber);
                if (result.Code > 0)
                {
                    return(Json(result));
                }
                p.LotNumbers.Add(lotNumber);

                //组织报废原因代码
                if (!p.ReasonCodes.ContainsKey(lotNumber))
                {
                    p.ReasonCodes.Add(lotNumber, new List <ScrapReasonCodeParameter>());
                }

                p.ReasonCodes[lotNumber].Add(new ScrapReasonCodeParameter()
                {
                    Description            = model.ReasonDescription,
                    Quantity               = model.ScrapQuantity,
                    ReasonCodeCategoryName = model.ReasonCodeCategoryName,
                    ReasonCodeName         = model.ReasonCodeName,
                    ResponsiblePerson      = model.ResponsiblePerson,
                    RouteOperationName     = model.RouteOperationName,
                });

                //批次报废操作。
                using (LotScrapServiceClient client = new LotScrapServiceClient())
                {
                    result = client.Scrap(p);
                }
                if (result.Code == 0)
                {
                    result.Message = string.Format("批次 {0} 报废操作成功。", model.LotNumber);
                }
            }
            catch (Exception ex)
            {
                result.Code    = 1000;
                result.Message = ex.Message;
                result.Detail  = ex.ToString();
            }
            // 如果我们进行到这一步时某个地方出错,则重新显示表单
            return(Json(result));
        }
コード例 #4
0
ファイル: GMarketFlow.cs プロジェクト: nowonbun/nowonbunstore
 public GMarketFlow(ScrapBrowser browser, ScrapParameter param, bool login_mode)
     : base(browser, param, login_mode)
 {
     logger.Info("Gmarket initialize");
     FlowMap.Add("Member/SignIn/LogOn", Login);
     FlowMap.Add("Home/Home", Home);
     FlowMap.Add("Member/CustomerService/CSManagement", CSManagement);
 }
コード例 #5
0
 public StreetFlow(ScrapBrowser browser, ScrapParameter param, bool login_mode)
     : base(browser, param, login_mode)
 {
     logger.Info("StreetFlow initialize");
     FlowMap.Add("login/Login.page", Login);
     FlowMap.Add("Index.tmall", Index);
     FlowMap.Add("marketing/SellerMenuAction.tmall", SellerMenuAction);
     FlowMap.Add("register/SellerInfoEdit.tmall", SellerInfoEdit);
     FlowMap.Add("stats/StatsPeriodProdSel.tmall", StatsPeriodProdSel);
     FlowMap.Add("remittance/SellerRemittanceAction.tmall", SellerRemittanceAction);
     FlowMap.Add("escrow/OrderingLogisticsAction.tmall", OrderingLogisticsAction);
 }
コード例 #6
0
        public ScraperContext(String key, String param)
        {
            logger.Info("ScraperContext initialize");
            Xpcom.EnableProfileMonitoring = false;
            var app_dir = Path.GetDirectoryName(Application.ExecutablePath);

            Xpcom.Initialize(Path.Combine(app_dir, "Firefox"));

            ScrapParameter sp = new ScrapParameter(key, param);

            logger.Debug("ScrapParameter : " + sp);
            browser.Set(sp);
        }
コード例 #7
0
        public AbstractScrapFlow(ScrapBrowser browser, ScrapParameter param, bool login_mode)
        {
            Parameter       = param;
            this.browser    = browser;
            this.commondao  = FactoryDao.GetInstance().GetDao <IScrapingCommonDataDao>();
            this.packagedao = FactoryDao.GetInstance().GetDao <IScrapingPackageDataDao>();

            logger = LoggerBuilder.Init().Set(this.GetType());
            //this.browser.InitializeDownLoad(ExcelDownload);
            this.browser.ProgressChanged += (s, e) =>
            {
                //logger.Debug("CurrentProgress/MaximumProgress : " + e.CurrentProgress + "/" + e.MaximumProgress);
            };
        }
コード例 #8
0
ファイル: TestFlow.cs プロジェクト: nowonbun/nowonbunstore
 public TestFlow(ScrapBrowser browser, ScrapParameter param, bool login_mode)
     : base(browser, param, login_mode)
 {
     FlowMap.Add("", Test);
 }
コード例 #9
0
 public InterparkFlow(ScrapBrowser browser, ScrapParameter param, bool login_mode)
     : base(browser, param, login_mode)
 {
     logger.Info("InterparkFlow initialize");
 }