Пример #1
0
 public ReportRunner()
 {
     excelHelper    = new ClientExcel();
     mgrExcelHelper = new ManagerExcel();
     paras          = new RunnerParas();
     fileMgr        = new FileMgr();
     clients        = new List <Client>();
 }
Пример #2
0
        /// <summary>
        /// Validate file and command input paras since so many combinations are so confusing.
        /// Rule 1. Saver mode, no file account is allowed.(All accounts must be covered)
        /// Rule 2. Regular mode, no file account is allowed. TradingDay must be one.
        /// Rule 3. Reporter mode, no file account is allowed. Report all account or nothing.
        /// Rule 4. CLIENT_REPORT, must input tradingDays and accounts from file.
        /// Rule 5. Manager report, must contains some valid input days.
        /// </summary>
        /// <param name="paras_">Input Runtime Paras</param>
        /// <returns></returns>
        public static bool isParaValid(RunnerParas paras_)
        {
            Mode   mode = paras_.parseMode();
            string msg  = null;

            if (mode.Equals(Mode.SAVER))
            {
                if (paras_.getAccounts().Count != 0)
                {
                    msg = "Account input is not valid for this mode " + mode.ToString();
                    addErrorMessage(msg);
                    return(false);
                }
            }
            else if (mode.Equals(Mode.REGULAR))
            {
                if (paras_.getAccounts().Count != 0)
                {
                    msg = "Account input is not valid for this mode " + mode.ToString();
                    addErrorMessage(msg);
                    return(false);
                }
                if (paras_.getTradingDays().Count != 1)
                {
                    msg = "More than 1 tradingDay is not valid for this mode " + mode.ToString();
                    addErrorMessage(msg);
                    return(false);
                }
            }
            else if (mode.Equals(Mode.REPORTER))
            {
                //if (paras_.getAccounts().Count != 0)
                if (paras_.getAccounts().Count == 0)
                {
                    msg = "Account input is not valid for this mode " + mode.ToString();
                    addErrorMessage(msg);
                    return(false);
                }
                if (paras_.getTradingDays().Count != 1)
                {
                    msg = "More than 1 tradingDay is not valid for this mode " + mode.ToString();
                    addErrorMessage(msg);
                    return(false);
                }
            }
            else if (mode.Equals(Mode.CLIENT_REPORT))
            {
                if (paras_.getTradingDays().Count == 0)
                {
                    msg = "Please specify days by file for this mode " + mode.ToString();
                    addErrorMessage(msg);
                    return(false);
                }
            }
            else if (mode.Equals(Mode.MANAGER_REPORT))
            {
                if (paras_.getTradingDays().Count == 0)
                {
                    msg = "Please at least specify some tradingDays for mode " + mode.ToString();
                    addErrorMessage(msg);
                    return(false);
                }
            }
            else
            {
                throw new InvalidOperationException("Input Mode " + mode.ToString() + " Not Supported.");
            }
            logger.Info("Para Validation Passed.");
            return(true);
        }
Пример #3
0
 public ReportController()
 {
     this.runner = new ReportRunner();
     this.paras  = new RunnerParas();
 }
Пример #4
0
 public void init(RunnerParas paras_)
 {
     paras = paras_;
     fileMgr.init(paras.getLogRoots(), paras.getFileConfig().getOrderFileName());
     loadClients();
 }