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); }
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); }
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); }
public abstract void UpdateTaskStatus(SecurityTaskDomain securityTask);
public abstract SecurityTaskDomain InsertIntoDB(SecurityTaskDomain securityTask);
public SecurityTaskDomain Create() { SecurityTaskDomain securityTask = new SecurityTaskDomain(); return(securityTask); }