using Longbow.Caching; using Longbow.Caching.Configuration; using Longbow.ExceptionManagement; using System; using System.Collections.Generic; using System.Data; using System.Data.Common; namespace Bootstrap.DataAccess { public static class TaskHelper { internal const string RetrieveTasksDataKey = "TaskHelper-RetrieveTasks"; /// /// 查询所有任务 /// /// public static IEnumerable RetrieveTasks() { return CacheManager.GetOrAdd(RetrieveTasksDataKey, CacheSection.RetrieveIntervalByKey(RetrieveTasksDataKey), key => { string sql = "select top 1000 t.*, u.DisplayName from Tasks t inner join Users u on t.UserName = u.UserName order by AssignTime desc"; List tasks = new List(); DbCommand cmd = DBAccessManager.SqlDBAccess.CreateCommand(CommandType.Text, sql); try { using (DbDataReader reader = DBAccessManager.SqlDBAccess.ExecuteReader(cmd)) { while (reader.Read()) { tasks.Add(new Task() { ID = (int)reader[0], TaskName = (string)reader[1], AssignName = (string)reader[2], UserName = (string)reader[3], TaskTime = (int)reader[4], TaskProgress = (double)reader[5], AssignTime = (DateTime)reader[6], AssignDisplayName = (string)reader[7] }); } } } catch (Exception ex) { ExceptionManager.Publish(ex); } return tasks; }, CacheSection.RetrieveDescByKey(RetrieveTasksDataKey)); } } }