Author: marisic.net
(2008/09/24 16:23) Over 3 years ago
1
using System.Reflection;
2
using System.Runtime.CompilerServices;
3
using System.Runtime.InteropServices;
4
5
// General Information about an assembly is controlled through the following
6
// set of attributes. Change these attribute values to modify the information
7
// associated with an assembly.
8
[assembly: AssemblyTitle("CacheManager")]
9
[assembly: AssemblyDescription("")]
10
[assembly: AssemblyConfiguration("")]
...
17
// Setting ComVisible to false makes the types in this assembly not visible
18
// to COM components. If you need to access a type in this assembly from
19
// COM, set the ComVisible attribute to true on that type.
20
[assembly: ComVisible(false)]
21
22
// The following GUID is for the ID of the typelib if this project is exposed to COM
23
24
[assembly: Guid("51d1585f-d234-4e94-a608-195543e969e5")]
25
26
// Version information for an assembly consists of the following four values:
27
32
// You can specify all the values or you can default the Build and Revision Numbers
34
33
// by using the '*' as shown below:
35
// [assembly: AssemblyVersion("1.0.*")]
36
37
[assembly: AssemblyVersion("1.0.0.0")]
38
[assembly: AssemblyFileVersion("1.0.0.0")]
39
13
{
14
public class TaskList : IList<Task>
15
16
private readonly List<Task> _tasks = new List<Task>();
private readonly Cache _cache = HttpRuntime.Cache;
//How long for jobs to wait before waking.
private const double sleepLength = 1;
public List<Task> Tasks
if (Count == 0)
var enumerator = _cache.GetEnumerator();
IDictionaryEnumerator enumerator = _cache.GetEnumerator();
28
do
29
30
if (enumerator.Current is Task)
}
public CacheItemRemovedCallback CacheItemRemovedCallback { get; set; }
#region Implementation of IEnumerable
40
41
public IEnumerator<Task> GetEnumerator()
42
58
/// <exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.</exception>
60
59
public void Add(Task item)
61
62
var task = _tasks.Find(t => t.Name == item.Name);
63
Task task = _tasks.Find(t => t.Name == item.Name);
if (task == null)
64
65
_tasks.Add(item);
66
74
76
75
77
78
public Task Find(Predicate<Task> match)
79
return _tasks.Find(match);
80
81
82
public void Clear()
83
84
throw new NotImplementedException();
109
get { return true; }
106
110
107
111
108
112
113
#endregion
114
115
#region Implementation of IList<Task>
116
159
CacheItemRemovedCallback);
161
160
162
163
164
165
[assembly: AssemblyTitle("TaskManager")]
[assembly: Guid("27a74ab0-59f5-417c-9f68-2844c7ac6081")]
#region Using Statements
using System;
namespace Tasks
[assembly: AssemblyTitle("Tasks")]
[assembly: Guid("76d03579-2f89-44d2-b327-f9a6dc3594b9")]
[DebuggerDisplay("Name = {Name}, Id = {Id}, LastRan = {LastRan}")]
11
public abstract class Task : ITask
12
public abstract void Run();
public string Name { get; set; }
public bool Active { get; set; }
public DateTime? LastRan { get; set; }
public decimal? Id { get; set; }
#region ITask Members
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.ServiceProcess" />
<Reference Include="System.Xml.Linq">
46
</ItemGroup>
47
<ItemGroup>
48
<Compile Include="PrintTaskOther.cs" />
49
50
<Compile Include="ServiceUpTask.cs" />
<Compile Include="Task.cs" />
51
<Compile Include="PrintTask.cs" />
52
<Compile Include="ITask.cs" />
53
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CacheManager", "CacheManager\CacheManager.csproj", "{18D49395-1DB3-492A-B320-963A06059155}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tasks.TestProject", "Tasks.TestProject\Tasks.TestProject.csproj", "{FDEEFE43-D08F-444B-9320-4EDC84ECE1EF}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{BC73D6F5-3C1F-4161-99B0-B02E3E5AB30D}"
ProjectSection(SolutionItems) = preProject
LocalTestRun.testrunconfig = LocalTestRun.testrunconfig
TaskScheduler.vsmdi = TaskScheduler.vsmdi
EndProjectSection
Global
GlobalSection(SubversionScc) = preSolution
Svn-Managed = True
Manager = AnkhSVN - Subversion Support for Visual Studio
EndGlobalSection
GlobalSection(TestCaseManagementSettings) = postSolution
CategoryFile = TaskScheduler.vsmdi
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
{18D49395-1DB3-492A-B320-963A06059155}.Debug|Any CPU.Build.0 = Debug|Any CPU
{18D49395-1DB3-492A-B320-963A06059155}.Release|Any CPU.ActiveCfg = Release|Any CPU
{18D49395-1DB3-492A-B320-963A06059155}.Release|Any CPU.Build.0 = Release|Any CPU
{FDEEFE43-D08F-444B-9320-4EDC84ECE1EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FDEEFE43-D08F-444B-9320-4EDC84ECE1EF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FDEEFE43-D08F-444B-9320-4EDC84ECE1EF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FDEEFE43-D08F-444B-9320-4EDC84ECE1EF}.Release|Any CPU.Build.0 = Release|Any CPU
GlobalSection(SolutionProperties) = preSolution
54
HideSolutionNode = FALSE
55
protected void Page_Load(object sender, EventArgs e)
var printTask = taskManager.TaskList.Find(t => t.Id.GetValueOrDefault() == 1);
Task printTask = taskManager.TaskList.Find(t => t.Id.GetValueOrDefault() == 1);
lblStatus.Text = printTask != null ? (printTask.Active ? "Active" : "InActive") : "Task not found";
taskManager.TaskList.Add(new PrintTask {Active = true, Id = 1, Name = "PrintTask1"});
taskManager.TaskList.Add(new PrintTaskOther {Active = true, Id = 2, Name = "PrintTaskOther2"});
taskManager.TaskList.Add(new PrintTask {Active = true, Id = 3, Name = "PrintTask3"});
//taskManager.TaskList.Add(new PrintTask {Active = true, Id = 3, Name = "PrintTask3"});
taskManager.TaskList.Add(new PrintTask {Active = true, Id = 4, Name = "PrintTask4"});
//taskManager.TaskList.Add(new PrintTask {Active = true, Id = 4, Name = "PrintTask4"});
taskManager.TaskList.Add(new PrintTaskOther {Active = true, Id = 5, Name = "PrintTaskOther5"});
//taskManager.TaskList.Add(new PrintTaskOther {Active = true, Id = 5, Name = "PrintTaskOther5"});
31
taskManager.TaskList.Add(new ServiceUpTask {Active = true, Id = 5, Name = "UnitTestServiceUpTask", ServiceName = "Telnet"});
[assembly: AssemblyTitle("TaskScheduler")]
[assembly: Guid("3d5900ae-111a-45be-96b3-d9e4606ca793")]
//
// You can specify all the values or you can default the Revision and Build Numbers
using System.Runtime.CompilerServices;[assembly: AssemblyTitle("CacheManager")][assembly: AssemblyTitle("CacheManager")][assembly: AssemblyDescription("")][assembly: AssemblyDescription("")][assembly: AssemblyConfiguration("")][assembly: AssemblyConfiguration("")][assembly: Guid("51d1585f-d234-4e94-a608-195543e969e5")][assembly: Guid("51d1585f-d234-4e94-a608-195543e969e5")]// [assembly: AssemblyVersion("1.0.*")]// [assembly: AssemblyVersion("1.0.*")][assembly: AssemblyVersion("1.0.0.0")][assembly: AssemblyVersion("1.0.0.0")][assembly: AssemblyFileVersion("1.0.0.0")][assembly: AssemblyFileVersion("1.0.0.0")]{{{{private readonly List<Task> _tasks = new List<Task>();private readonly Cache _cache = HttpRuntime.Cache;{{{{{{var enumerator = _cache.GetEnumerator();IDictionaryEnumerator enumerator = _cache.GetEnumerator();{{public CacheItemRemovedCallback CacheItemRemovedCallback { get; set; }{{var task = _tasks.Find(t => t.Name == item.Name);Task task = _tasks.Find(t => t.Name == item.Name);{{public Task Find(Predicate<Task> match){return _tasks.Find(match);}{{get { return true; }get { return true; }{public CacheItemRemovedCallback CacheItemRemovedCallback { get; set; }using System.Runtime.CompilerServices;[assembly: AssemblyTitle("TaskManager")][assembly: AssemblyTitle("TaskManager")][assembly: AssemblyDescription("")][assembly: AssemblyDescription("")][assembly: AssemblyConfiguration("")][assembly: AssemblyConfiguration("")][assembly: Guid("27a74ab0-59f5-417c-9f68-2844c7ac6081")][assembly: Guid("27a74ab0-59f5-417c-9f68-2844c7ac6081")]// [assembly: AssemblyVersion("1.0.*")]// [assembly: AssemblyVersion("1.0.*")][assembly: AssemblyVersion("1.0.0.0")][assembly: AssemblyVersion("1.0.0.0")][assembly: AssemblyFileVersion("1.0.0.0")][assembly: AssemblyFileVersion("1.0.0.0")]using System;using System.Runtime.CompilerServices;[assembly: AssemblyTitle("Tasks")][assembly: AssemblyTitle("Tasks")][assembly: AssemblyDescription("")][assembly: AssemblyDescription("")][assembly: AssemblyConfiguration("")][assembly: AssemblyConfiguration("")][assembly: Guid("76d03579-2f89-44d2-b327-f9a6dc3594b9")][assembly: Guid("76d03579-2f89-44d2-b327-f9a6dc3594b9")]// [assembly: AssemblyVersion("1.0.*")]// [assembly: AssemblyVersion("1.0.*")][assembly: AssemblyVersion("1.0.0.0")][assembly: AssemblyVersion("1.0.0.0")][assembly: AssemblyFileVersion("1.0.0.0")][assembly: AssemblyFileVersion("1.0.0.0")][DebuggerDisplay("Name = {Name}, Id = {Id}, LastRan = {LastRan}")][DebuggerDisplay("Name = {Name}, Id = {Id}, LastRan = {LastRan}")]{{public abstract void Run();public string Name { get; set; }public string Name { get; set; }public bool Active { get; set; }public bool Active { get; set; }public DateTime? LastRan { get; set; }public DateTime? LastRan { get; set; }public decimal? Id { get; set; }public decimal? Id { get; set; }Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CacheManager", "CacheManager\CacheManager.csproj", "{18D49395-1DB3-492A-B320-963A06059155}"Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CacheManager", "CacheManager\CacheManager.csproj", "{18D49395-1DB3-492A-B320-963A06059155}"Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tasks.TestProject", "Tasks.TestProject\Tasks.TestProject.csproj", "{FDEEFE43-D08F-444B-9320-4EDC84ECE1EF}"Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{BC73D6F5-3C1F-4161-99B0-B02E3E5AB30D}"{18D49395-1DB3-492A-B320-963A06059155}.Debug|Any CPU.Build.0 = Debug|Any CPU{18D49395-1DB3-492A-B320-963A06059155}.Debug|Any CPU.Build.0 = Debug|Any CPU{18D49395-1DB3-492A-B320-963A06059155}.Release|Any CPU.ActiveCfg = Release|Any CPU{18D49395-1DB3-492A-B320-963A06059155}.Release|Any CPU.ActiveCfg = Release|Any CPU{18D49395-1DB3-492A-B320-963A06059155}.Release|Any CPU.Build.0 = Release|Any CPU{18D49395-1DB3-492A-B320-963A06059155}.Release|Any CPU.Build.0 = Release|Any CPU{FDEEFE43-D08F-444B-9320-4EDC84ECE1EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU{FDEEFE43-D08F-444B-9320-4EDC84ECE1EF}.Debug|Any CPU.Build.0 = Debug|Any CPU{FDEEFE43-D08F-444B-9320-4EDC84ECE1EF}.Release|Any CPU.ActiveCfg = Release|Any CPU{FDEEFE43-D08F-444B-9320-4EDC84ECE1EF}.Release|Any CPU.Build.0 = Release|Any CPU{{var printTask = taskManager.TaskList.Find(t => t.Id.GetValueOrDefault() == 1);Task printTask = taskManager.TaskList.Find(t => t.Id.GetValueOrDefault() == 1);{{taskManager.TaskList.Add(new PrintTask {Active = true, Id = 1, Name = "PrintTask1"});taskManager.TaskList.Add(new PrintTask {Active = true, Id = 1, Name = "PrintTask1"});taskManager.TaskList.Add(new PrintTaskOther {Active = true, Id = 2, Name = "PrintTaskOther2"});taskManager.TaskList.Add(new PrintTaskOther {Active = true, Id = 2, Name = "PrintTaskOther2"});taskManager.TaskList.Add(new PrintTask {Active = true, Id = 3, Name = "PrintTask3"});//taskManager.TaskList.Add(new PrintTask {Active = true, Id = 3, Name = "PrintTask3"});taskManager.TaskList.Add(new PrintTask {Active = true, Id = 4, Name = "PrintTask4"});//taskManager.TaskList.Add(new PrintTask {Active = true, Id = 4, Name = "PrintTask4"});taskManager.TaskList.Add(new PrintTaskOther {Active = true, Id = 5, Name = "PrintTaskOther5"});//taskManager.TaskList.Add(new PrintTaskOther {Active = true, Id = 5, Name = "PrintTaskOther5"});taskManager.TaskList.Add(new ServiceUpTask {Active = true, Id = 5, Name = "UnitTestServiceUpTask", ServiceName = "Telnet"});using System.Runtime.CompilerServices;[assembly: AssemblyTitle("TaskScheduler")][assembly: AssemblyTitle("TaskScheduler")][assembly: AssemblyDescription("")][assembly: AssemblyDescription("")][assembly: AssemblyConfiguration("")][assembly: AssemblyConfiguration("")][assembly: Guid("3d5900ae-111a-45be-96b3-d9e4606ca793")][assembly: Guid("3d5900ae-111a-45be-96b3-d9e4606ca793")][assembly: AssemblyVersion("1.0.0.0")][assembly: AssemblyVersion("1.0.0.0")][assembly: AssemblyFileVersion("1.0.0.0")][assembly: AssemblyFileVersion("1.0.0.0")]