public override List <SecurityTaskDomain> GetListUnFinished(int count, DateTime date)
        {
            SecurityTaskDomain        securityTask;
            List <SecurityTaskDomain> lst = new List <SecurityTaskDomain>();
            string       sql          = string.Format("SELECT Top {0} TaskID,SecurityCode,ExchangeMarket,BeginDate,EndDate,IsFinished FROM SecurityTask where IsFinished = 0 and BeginDate < @BeginDate", count);
            SqlParameter prmBeginDate = new SqlParameter("@BeginDate", SqlDbType.DateTime)
            {
                Value = date
            };

            dbContext.ExecuteDataReader(reader => {
                while (reader.Read())
                {
                    securityTask                = new SecurityTaskDomain();
                    securityTask.TaskID         = reader.GetInt32(0);
                    securityTask.SecurityCode   = reader.GetString(1);
                    securityTask.ExchangeMarket = reader.GetString(2);
                    securityTask.BeginDate      = reader.GetDateTime(3);
                    securityTask.EndDate        = reader.GetDateTime(4);
                    securityTask.IsFinished     = false;
                    lst.Add(securityTask);
                }
            }, sql, prmBeginDate);
            return(lst);
        }
        public void SyncSSEDayQuotationFromWangYI()
        {
            DatabaseContextFactory                   factory   = new DatabaseContextFactory();
            DatabaseContext                          dbContext = factory.CreateDatabaseContext();
            SecurityDayQuotationRepository           securityDayQuotationRepository           = SecurityDayQuotationRepositoryFactory.GetInstance().Create(dbContext);
            SecurityTaskRepository                   securityTaskRepository                   = SecurityTaskRepositoryFactory.GetInstance().Create(dbContext);
            SecurityDayQuotationFromWangYIRepository securityDayQuotationFromWangYIRepository = new SecurityDayQuotationFromWangYIRepository();
            SecurityTaskEngine                       securityTaskEngine = new SecurityTaskEngine();
            SecurityTaskDomain                       securityTask       = securityTaskEngine.Pop();
            List <SecurityDayQuotationDomain>        lst = new List <SecurityDayQuotationDomain>();
            SecurityTaskDomain                       nextSecurityTask;

            while (!securityTask.IsEmpty())
            {
                CancelTokenSingleton.GetInstance().ThrowIfCancellationRequested();
                lst = securityDayQuotationFromWangYIRepository.GetSSEDayQuotationFromWangYi(securityTask.SecurityCode, securityTask.BeginDate, securityTask.EndDate);
                dbContext.BeginTransaction();
                foreach (SecurityDayQuotationDomain securityDayQuotation in lst)
                {
                    securityDayQuotationRepository.InsertIntoDB(securityDayQuotation);
                }
                securityTask.IsFinished = true;
                securityTaskRepository.UpdateTaskStatus(securityTask);
                nextSecurityTask = securityTask.BuildNextTask();
                securityTaskRepository.InsertIntoDB(nextSecurityTask);
                dbContext.CommitTransaction();
                securityTask = securityTaskEngine.Pop();
            }
        }
        public override SecurityTaskDomain InsertIntoDB(SecurityTaskDomain securityTask)
        {
            string       sql             = "INSERT INTO SecurityTask(SecurityCode,ExchangeMarket,BeginDate,EndDate,IsFinished)Values(@SecurityCode,@ExchangeMarket,@BeginDate,@EndDate,@IsFinished)";
            SqlParameter prmSecurityCode = new SqlParameter("@SecurityCode", SqlDbType.VarChar, 10)
            {
                Value = securityTask.SecurityCode
            };
            SqlParameter prmExchangeMarket = new SqlParameter("@ExchangeMarket", SqlDbType.VarChar, 10)
            {
                Value = securityTask.ExchangeMarket
            };
            SqlParameter prmBeginDate = new SqlParameter("@BeginDate", SqlDbType.DateTime)
            {
                Value = securityTask.BeginDate
            };
            SqlParameter prmEndDate = new SqlParameter("@EndDate", SqlDbType.DateTime)
            {
                Value = securityTask.EndDate
            };
            SqlParameter prmIsFinished = new SqlParameter("@IsFinished", SqlDbType.Int)
            {
                Value = securityTask.IsFinished ? 1: 0
            };

            dbContext.ExecuteNoQuery(sql, prmSecurityCode, prmExchangeMarket, prmBeginDate, prmEndDate, prmIsFinished);
            return(securityTask);
        }
Пример #4
0
        public SecurityTaskDomain CreateFutureTask(SecurityTaskDomain securityTask)
        {
            if (securityTask.IsLast())
            {
                throw new Exception("创建未来任务的当前任务必须是最后的任务");
            }
            SecurityTaskDomain futureTask = new SecurityTaskDomain();

            futureTask.SecurityCode = securityTask.SecurityCode;
            futureTask.BeginDate    = securityTask.BeginDate.AddDays(1);
            futureTask.EndDate      = securityTask.EndDate.AddDays(1);
            return(futureTask);
        }
Пример #5
0
        public SecurityTaskDomain CreateNextTask(SecurityTaskDomain securityTask)
        {
            SecurityTaskDomain nextTask = new SecurityTaskDomain();

            nextTask.SecurityCode = securityTask.SecurityCode;
            nextTask.BeginDate    = securityTask.EndDate;
            nextTask.EndDate      = securityTask.EndDate.AddMonths(1);
            if (nextTask.EndDate.Date > DateTime.Now.AddDays(-1).Date)
            {
                nextTask.EndDate = DateTime.Now.AddDays(-1).Date;
            }
            return(nextTask);
        }
        public override void UpdateTaskStatus(SecurityTaskDomain securityTask)
        {
            string       sql             = "Update SecurityTask SET IsFinished = @IsFinished Where SecurityCode = @SecurityCode";
            SqlParameter prmSecurityCode = new SqlParameter("@SecurityCode", DbType.String)
            {
                Value = securityTask.SecurityCode
            };
            SqlParameter prmIsFinished = new SqlParameter("@IsFinished", DbType.Int32)
            {
                Value = securityTask.IsFinished ? 1: 0
            };

            dbContext.ExecuteNoQuery(sql, prmSecurityCode, prmIsFinished);
        }
Пример #7
0
 public abstract void UpdateTaskStatus(SecurityTaskDomain securityTask);
Пример #8
0
 public abstract SecurityTaskDomain InsertIntoDB(SecurityTaskDomain securityTask);
Пример #9
0
        public SecurityTaskDomain Create()
        {
            SecurityTaskDomain securityTask = new SecurityTaskDomain();

            return(securityTask);
        }