1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
|
Imports Microsoft.VisualBasic
Imports System
Imports System.Data
Imports System.Configuration
Imports System.Collections
Imports System.Web
Imports System.Web.Security
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Web.UI.HtmlControls
Imports Aspose.Tasks
Namespace Aspose.Tasks.Demos._9
Partial Public Class CreateProject
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
End Sub
Private Function isNumeric(ByVal strNum As String) As Boolean
If strNum.Length = 0 Then
Return False
End If
For i As Integer = 0 To strNum.Length - 1
If (Not Char.IsNumber(strNum.Chars(i))) Then
Return False
End If
Next i
Return True
End Function
Private Function isValidData() As Boolean
If (Not isNumeric(Me.TaskDuration1.Text)) OrElse (Not isNumeric(Me.TaskDuration2.Text)) OrElse (Not isNumeric(Me.TaskDuration3.Text)) Then
Me.Label1.Visible = True
Me.Label1.Text = "Error: Invalid Task Duration. Enter some numeric value (Required)."
Return False
End If
Try
DateTime.Parse(Me.TaskDate1.Text)
DateTime.Parse(Me.TaskDate2.Text)
DateTime.Parse(Me.TaskDate3.Text)
Return True
Catch
Me.Label1.Visible = True
Me.Label1.Text = "Error: Invalid Task Start Date. Enter some valid date in mm/dd/yyyy format (Required)."
Return False
End Try
End Function
Protected Sub btn_Proj_Click(ByVal sender As Object, ByVal e As EventArgs)
If (Not isValidData()) Then
Return
End If
Dim prj As New Project()
prj.MinutesPerDay = 480
Dim rootTsk As New Task()
Dim tsk1 As New Task(Me.TaskName1.Text)
Dim tsk2 As New Task(Me.TaskName2.Text)
Dim tsk3 As New Task(Me.TaskName3.Text)
tsk1.ActualStart = DateTime.Parse(Me.TaskDate1.Text)
tsk2.ActualStart = DateTime.Parse(Me.TaskDate2.Text)
tsk3.ActualStart = DateTime.Parse(Me.TaskDate3.Text)
tsk1.Duration = New TimeSpan(Integer.Parse(Me.TaskDuration1.Text) * 8, 0, 0)
tsk1.DurationFormat = TimeUnitType.Day
tsk2.Duration = New TimeSpan(Integer.Parse(Me.TaskDuration2.Text) * 8, 0, 0)
tsk2.DurationFormat = TimeUnitType.Day
tsk3.Duration = New TimeSpan(Integer.Parse(Me.TaskDuration3.Text) * 8, 0, 0)
tsk3.DurationFormat = TimeUnitType.Day
If Me.Pred1.Text = "1" Then
Dim lnk1 As New TaskLink(tsk1, tsk2, TaskLinkType.FinishToStart)
If Me.lnk2.Text="1" Then
lnk1 = New TaskLink(tsk1, tsk2, TaskLinkType.FinishToStart)
ElseIf Me.lnk2.Text="2" Then
lnk1 = New TaskLink(tsk1, tsk2, TaskLinkType.StartToStart)
ElseIf Me.lnk2.Text = "3" Then
lnk1 = New TaskLink(tsk1, tsk2, TaskLinkType.StartToFinish)
ElseIf Me.lnk2.Text = "4" Then
lnk1 = New TaskLink(tsk1, tsk2, TaskLinkType.FinishToFinish)
End If
prj.TaskLinks.Add(lnk1)
End If
If Me.Pred2.Text = "1" Then
Dim lnk2 As New TaskLink(tsk1, tsk3, TaskLinkType.FinishToStart)
If Me.lnk3.Text = "1" Then
lnk2 = New TaskLink(tsk1, tsk3, TaskLinkType.FinishToStart)
ElseIf Me.lnk3.Text = "2" Then
lnk2 = New TaskLink(tsk1, tsk3, TaskLinkType.StartToStart)
ElseIf Me.lnk3.Text = "3" Then
lnk2 = New TaskLink(tsk1, tsk3, TaskLinkType.StartToFinish)
ElseIf Me.lnk3.Text = "4" Then
lnk2 = New TaskLink(tsk1, tsk3, TaskLinkType.FinishToFinish)
End If
prj.TaskLinks.Add(lnk2)
ElseIf Me.Pred2.Text = "2" Then
Dim lnk3 As New TaskLink(tsk2, tsk3, TaskLinkType.FinishToStart)
If Me.lnk3.Text = "1" Then
lnk3 = New TaskLink(tsk2, tsk3, TaskLinkType.FinishToStart)
ElseIf Me.lnk3.Text = "2" Then
lnk3 = New TaskLink(tsk2, tsk3, TaskLinkType.StartToStart)
ElseIf Me.lnk3.Text = "3" Then
lnk3 = New TaskLink(tsk2, tsk3, TaskLinkType.StartToFinish)
ElseIf Me.lnk3.Text = "4" Then
lnk3 = New TaskLink(tsk2, tsk3, TaskLinkType.FinishToFinish)
End If
prj.TaskLinks.Add(lnk3)
End If
prj.RootTask = rootTsk
rootTsk.Children.Add(tsk1)
rootTsk.Children.Add(tsk2)
rootTsk.Children.Add(tsk3)
Dim res As New Resource()
Dim res1 As New Resource(Me.ResName1.Text)
If Me.ResType1.Text = "Work" Then
res1.Type = ResourceType.Work
Else
res1.Type = ResourceType.Material
End If
Dim res2 As New Resource(Me.ResName2.Text)
If Me.ResType2.Text = "Work" Then
res2.Type = ResourceType.Work
Else
res2.Type = ResourceType.Material
End If
prj.Resources.Add(res)
prj.Resources.Add(res1)
prj.Resources.Add(res2)
prj.CalcTaskIds()
prj.CalcTaskUids()
prj.CalcResourceFields()
prj.CalcResourceIds()
prj.CalcResourceUids()
Dim prjWriter As New ProjectWriter()
Me.Response.ContentType = "application/vnd.ms-project"
Me.Response.AppendHeader("Content-Disposition", "attachment; filename=project.xml")
Me.Response.Flush()
Dim st As System.IO.Stream = Me.Response.OutputStream
prjWriter.Write(prj, st, TasksDataFormat.XML)
Me.Response.End()
End Sub
End Class
End Namespace
|