aspose_tasks_cloud 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE +22 -0
- data/README.md +49 -0
- data/aspose_tasks_cloud.gemspec +26 -0
- data/lib/aspose_tasks_cloud.rb +92 -0
- data/lib/aspose_tasks_cloud/api/tasks_api.rb +2585 -0
- data/lib/aspose_tasks_cloud/api_client.rb +335 -0
- data/lib/aspose_tasks_cloud/api_error.rb +24 -0
- data/lib/aspose_tasks_cloud/configuration.rb +166 -0
- data/lib/aspose_tasks_cloud/models/assignment_item.rb +61 -0
- data/lib/aspose_tasks_cloud/models/assignment_item_response.rb +61 -0
- data/lib/aspose_tasks_cloud/models/assignment_items.rb +47 -0
- data/lib/aspose_tasks_cloud/models/assignment_items_response.rb +61 -0
- data/lib/aspose_tasks_cloud/models/assignment_response.rb +61 -0
- data/lib/aspose_tasks_cloud/models/assignments_response.rb +61 -0
- data/lib/aspose_tasks_cloud/models/base_object.rb +86 -0
- data/lib/aspose_tasks_cloud/models/base_response.rb +53 -0
- data/lib/aspose_tasks_cloud/models/calendar.rb +89 -0
- data/lib/aspose_tasks_cloud/models/calendar_exception.rb +145 -0
- data/lib/aspose_tasks_cloud/models/calendar_exceptions_response.rb +63 -0
- data/lib/aspose_tasks_cloud/models/calendar_item.rb +53 -0
- data/lib/aspose_tasks_cloud/models/calendar_item_response.rb +61 -0
- data/lib/aspose_tasks_cloud/models/calendar_items.rb +47 -0
- data/lib/aspose_tasks_cloud/models/calendar_items_response.rb +61 -0
- data/lib/aspose_tasks_cloud/models/calendar_response.rb +61 -0
- data/lib/aspose_tasks_cloud/models/document_properties.rb +47 -0
- data/lib/aspose_tasks_cloud/models/document_properties_response.rb +61 -0
- data/lib/aspose_tasks_cloud/models/document_property.rb +53 -0
- data/lib/aspose_tasks_cloud/models/document_property_response.rb +61 -0
- data/lib/aspose_tasks_cloud/models/extended_attribute.rb +61 -0
- data/lib/aspose_tasks_cloud/models/extended_attribute_definition.rb +207 -0
- data/lib/aspose_tasks_cloud/models/extended_attribute_item.rb +53 -0
- data/lib/aspose_tasks_cloud/models/extended_attribute_items.rb +47 -0
- data/lib/aspose_tasks_cloud/models/extended_attribute_items_response.rb +61 -0
- data/lib/aspose_tasks_cloud/models/extended_attribute_response.rb +61 -0
- data/lib/aspose_tasks_cloud/models/link.rb +61 -0
- data/lib/aspose_tasks_cloud/models/outline_code.rb +53 -0
- data/lib/aspose_tasks_cloud/models/outline_code_definition.rb +145 -0
- data/lib/aspose_tasks_cloud/models/outline_code_item.rb +45 -0
- data/lib/aspose_tasks_cloud/models/outline_code_items.rb +47 -0
- data/lib/aspose_tasks_cloud/models/outline_code_items_response.rb +61 -0
- data/lib/aspose_tasks_cloud/models/outline_code_response.rb +61 -0
- data/lib/aspose_tasks_cloud/models/outline_mask.rb +61 -0
- data/lib/aspose_tasks_cloud/models/outline_value.rb +85 -0
- data/lib/aspose_tasks_cloud/models/recurring_info.rb +197 -0
- data/lib/aspose_tasks_cloud/models/recurring_info_response.rb +61 -0
- data/lib/aspose_tasks_cloud/models/resource.rb +945 -0
- data/lib/aspose_tasks_cloud/models/resource_assignment.rb +1063 -0
- data/lib/aspose_tasks_cloud/models/resource_assignments.rb +47 -0
- data/lib/aspose_tasks_cloud/models/resource_item.rb +61 -0
- data/lib/aspose_tasks_cloud/models/resource_item_response.rb +61 -0
- data/lib/aspose_tasks_cloud/models/resource_items.rb +47 -0
- data/lib/aspose_tasks_cloud/models/resource_items_response.rb +61 -0
- data/lib/aspose_tasks_cloud/models/resource_response.rb +61 -0
- data/lib/aspose_tasks_cloud/models/task.rb +1595 -0
- data/lib/aspose_tasks_cloud/models/task_document.rb +63 -0
- data/lib/aspose_tasks_cloud/models/task_document_response.rb +61 -0
- data/lib/aspose_tasks_cloud/models/task_item.rb +85 -0
- data/lib/aspose_tasks_cloud/models/task_item_response.rb +61 -0
- data/lib/aspose_tasks_cloud/models/task_items.rb +47 -0
- data/lib/aspose_tasks_cloud/models/task_items_response.rb +61 -0
- data/lib/aspose_tasks_cloud/models/task_link.rb +85 -0
- data/lib/aspose_tasks_cloud/models/task_link_response.rb +61 -0
- data/lib/aspose_tasks_cloud/models/task_links_response.rb +63 -0
- data/lib/aspose_tasks_cloud/models/task_response.rb +61 -0
- data/lib/aspose_tasks_cloud/models/value.rb +61 -0
- data/lib/aspose_tasks_cloud/models/wbs_code_mask.rb +61 -0
- data/lib/aspose_tasks_cloud/models/wbs_definition.rb +63 -0
- data/lib/aspose_tasks_cloud/models/wbs_definition_response.rb +61 -0
- data/lib/aspose_tasks_cloud/models/week_day.rb +71 -0
- data/lib/aspose_tasks_cloud/models/working_time.rb +45 -0
- data/lib/aspose_tasks_cloud/version.rb +3 -0
- data/test/data/ExtendedAttribute.mpp +0 -0
- data/test/data/Outlinecode.mpp +0 -0
- data/test/data/ResourceWithExtAttribs.xml +345 -0
- data/test/data/sample-project-2.mpp +0 -0
- data/test/data/sample-project.mpp +0 -0
- data/test/tasks_tests.rb +430 -0
- metadata +207 -0
@@ -0,0 +1,45 @@
|
|
1
|
+
module AsposeTasksCloud
|
2
|
+
#
|
3
|
+
class WorkingTime < BaseObject
|
4
|
+
attr_accessor :from_time, :to_time
|
5
|
+
# attribute mapping from ruby-style variable name to JSON key
|
6
|
+
def self.attribute_map
|
7
|
+
{
|
8
|
+
|
9
|
+
#
|
10
|
+
:'from_time' => :'FromTime',
|
11
|
+
|
12
|
+
#
|
13
|
+
:'to_time' => :'ToTime'
|
14
|
+
|
15
|
+
}
|
16
|
+
end
|
17
|
+
|
18
|
+
# attribute type
|
19
|
+
def self.swagger_types
|
20
|
+
{
|
21
|
+
:'from_time' => :'String',
|
22
|
+
:'to_time' => :'String'
|
23
|
+
|
24
|
+
}
|
25
|
+
end
|
26
|
+
|
27
|
+
def initialize(attributes = {})
|
28
|
+
return if !attributes.is_a?(Hash) || attributes.empty?
|
29
|
+
|
30
|
+
# convert string to symbol for hash key
|
31
|
+
attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
|
32
|
+
|
33
|
+
|
34
|
+
if attributes[:'FromTime']
|
35
|
+
self.from_time = attributes[:'FromTime']
|
36
|
+
end
|
37
|
+
|
38
|
+
if attributes[:'ToTime']
|
39
|
+
self.to_time = attributes[:'ToTime']
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
end
|
Binary file
|
Binary file
|
@@ -0,0 +1,345 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
2
|
+
<Project xmlns="http://schemas.microsoft.com/project">
|
3
|
+
<!--Published by Aspose.Tasks 2009 for .NET 6.2.0.0-->
|
4
|
+
<SaveVersion>14</SaveVersion>
|
5
|
+
<CreationDate>2000-09-10T08:00:00</CreationDate>
|
6
|
+
<LastSaved>2000-09-10T23:20:53</LastSaved>
|
7
|
+
<ScheduleFromStart>1</ScheduleFromStart>
|
8
|
+
<StartDate>2000-09-10T08:00:00</StartDate>
|
9
|
+
<FinishDate>2000-09-10T08:00:00</FinishDate>
|
10
|
+
<FYStartDate>1</FYStartDate>
|
11
|
+
<CriticalSlackLimit>0</CriticalSlackLimit>
|
12
|
+
<CurrencyDigits>2</CurrencyDigits>
|
13
|
+
<CurrencySymbol>$</CurrencySymbol>
|
14
|
+
<CurrencyCode>USD</CurrencyCode>
|
15
|
+
<CurrencySymbolPosition>0</CurrencySymbolPosition>
|
16
|
+
<CalendarUID>1</CalendarUID>
|
17
|
+
<DefaultStartTime>08:00:00</DefaultStartTime>
|
18
|
+
<DefaultFinishTime>17:00:00</DefaultFinishTime>
|
19
|
+
<MinutesPerDay>480</MinutesPerDay>
|
20
|
+
<MinutesPerWeek>2400</MinutesPerWeek>
|
21
|
+
<DaysPerMonth>20</DaysPerMonth>
|
22
|
+
<DefaultTaskType>0</DefaultTaskType>
|
23
|
+
<DefaultFixedCostAccrual>3</DefaultFixedCostAccrual>
|
24
|
+
<DefaultStandardRate>0</DefaultStandardRate>
|
25
|
+
<DefaultOvertimeRate>0</DefaultOvertimeRate>
|
26
|
+
<DurationFormat>7</DurationFormat>
|
27
|
+
<WorkFormat>2</WorkFormat>
|
28
|
+
<EditableActualCosts>0</EditableActualCosts>
|
29
|
+
<HonorConstraints>0</HonorConstraints>
|
30
|
+
<InsertedProjectsLikeSummary>0</InsertedProjectsLikeSummary>
|
31
|
+
<MultipleCriticalPaths>0</MultipleCriticalPaths>
|
32
|
+
<NewTasksEffortDriven>0</NewTasksEffortDriven>
|
33
|
+
<NewTasksEstimated>0</NewTasksEstimated>
|
34
|
+
<SplitsInProgressTasks>0</SplitsInProgressTasks>
|
35
|
+
<SpreadActualCost>0</SpreadActualCost>
|
36
|
+
<SpreadPercentComplete>0</SpreadPercentComplete>
|
37
|
+
<TaskUpdatesResource>0</TaskUpdatesResource>
|
38
|
+
<FiscalYearStart>0</FiscalYearStart>
|
39
|
+
<WeekStartDay>1</WeekStartDay>
|
40
|
+
<MoveCompletedEndsBack>0</MoveCompletedEndsBack>
|
41
|
+
<MoveRemainingStartsBack>0</MoveRemainingStartsBack>
|
42
|
+
<MoveRemainingStartsForward>0</MoveRemainingStartsForward>
|
43
|
+
<MoveCompletedEndsForward>0</MoveCompletedEndsForward>
|
44
|
+
<BaselineForEarnedValue>0</BaselineForEarnedValue>
|
45
|
+
<AutoAddNewResourcesAndTasks>0</AutoAddNewResourcesAndTasks>
|
46
|
+
<MicrosoftProjectServerURL>0</MicrosoftProjectServerURL>
|
47
|
+
<Autolink>0</Autolink>
|
48
|
+
<NewTaskStartDate>0</NewTaskStartDate>
|
49
|
+
<DefaultTaskEVMethod>0</DefaultTaskEVMethod>
|
50
|
+
<ProjectExternallyEdited>0</ProjectExternallyEdited>
|
51
|
+
<ExtendedCreationDate>2000-01-01T00:00:00</ExtendedCreationDate>
|
52
|
+
<ActualsInSync>0</ActualsInSync>
|
53
|
+
<RemoveFileProperties>0</RemoveFileProperties>
|
54
|
+
<AdminProject>0</AdminProject>
|
55
|
+
<OutlineCodes />
|
56
|
+
<ExtendedAttributes />
|
57
|
+
<Calendars>
|
58
|
+
<Calendar>
|
59
|
+
<UID>1</UID>
|
60
|
+
<Name>Standard</Name>
|
61
|
+
<IsBaseCalendar>1</IsBaseCalendar>
|
62
|
+
<BaseCalendarUID>-1</BaseCalendarUID>
|
63
|
+
<WeekDays>
|
64
|
+
<WeekDay>
|
65
|
+
<DayType>2</DayType>
|
66
|
+
<DayWorking>1</DayWorking>
|
67
|
+
<WorkingTimes>
|
68
|
+
<WorkingTime>
|
69
|
+
<FromTime>08:00:00</FromTime>
|
70
|
+
<ToTime>12:00:00</ToTime>
|
71
|
+
</WorkingTime>
|
72
|
+
<WorkingTime>
|
73
|
+
<FromTime>13:00:00</FromTime>
|
74
|
+
<ToTime>17:00:00</ToTime>
|
75
|
+
</WorkingTime>
|
76
|
+
</WorkingTimes>
|
77
|
+
</WeekDay>
|
78
|
+
<WeekDay>
|
79
|
+
<DayType>3</DayType>
|
80
|
+
<DayWorking>1</DayWorking>
|
81
|
+
<WorkingTimes>
|
82
|
+
<WorkingTime>
|
83
|
+
<FromTime>08:00:00</FromTime>
|
84
|
+
<ToTime>12:00:00</ToTime>
|
85
|
+
</WorkingTime>
|
86
|
+
<WorkingTime>
|
87
|
+
<FromTime>13:00:00</FromTime>
|
88
|
+
<ToTime>17:00:00</ToTime>
|
89
|
+
</WorkingTime>
|
90
|
+
</WorkingTimes>
|
91
|
+
</WeekDay>
|
92
|
+
<WeekDay>
|
93
|
+
<DayType>4</DayType>
|
94
|
+
<DayWorking>1</DayWorking>
|
95
|
+
<WorkingTimes>
|
96
|
+
<WorkingTime>
|
97
|
+
<FromTime>08:00:00</FromTime>
|
98
|
+
<ToTime>12:00:00</ToTime>
|
99
|
+
</WorkingTime>
|
100
|
+
<WorkingTime>
|
101
|
+
<FromTime>13:00:00</FromTime>
|
102
|
+
<ToTime>17:00:00</ToTime>
|
103
|
+
</WorkingTime>
|
104
|
+
</WorkingTimes>
|
105
|
+
</WeekDay>
|
106
|
+
<WeekDay>
|
107
|
+
<DayType>5</DayType>
|
108
|
+
<DayWorking>1</DayWorking>
|
109
|
+
<WorkingTimes>
|
110
|
+
<WorkingTime>
|
111
|
+
<FromTime>08:00:00</FromTime>
|
112
|
+
<ToTime>12:00:00</ToTime>
|
113
|
+
</WorkingTime>
|
114
|
+
<WorkingTime>
|
115
|
+
<FromTime>13:00:00</FromTime>
|
116
|
+
<ToTime>17:00:00</ToTime>
|
117
|
+
</WorkingTime>
|
118
|
+
</WorkingTimes>
|
119
|
+
</WeekDay>
|
120
|
+
<WeekDay>
|
121
|
+
<DayType>6</DayType>
|
122
|
+
<DayWorking>1</DayWorking>
|
123
|
+
<WorkingTimes>
|
124
|
+
<WorkingTime>
|
125
|
+
<FromTime>08:00:00</FromTime>
|
126
|
+
<ToTime>12:00:00</ToTime>
|
127
|
+
</WorkingTime>
|
128
|
+
<WorkingTime>
|
129
|
+
<FromTime>13:00:00</FromTime>
|
130
|
+
<ToTime>17:00:00</ToTime>
|
131
|
+
</WorkingTime>
|
132
|
+
</WorkingTimes>
|
133
|
+
</WeekDay>
|
134
|
+
<WeekDay>
|
135
|
+
<DayType>7</DayType>
|
136
|
+
<DayWorking>0</DayWorking>
|
137
|
+
</WeekDay>
|
138
|
+
<WeekDay>
|
139
|
+
<DayType>1</DayType>
|
140
|
+
<DayWorking>0</DayWorking>
|
141
|
+
</WeekDay>
|
142
|
+
</WeekDays>
|
143
|
+
</Calendar>
|
144
|
+
</Calendars>
|
145
|
+
<Tasks>
|
146
|
+
<Task>
|
147
|
+
<UID>0</UID>
|
148
|
+
<ID>0</ID>
|
149
|
+
<Manual>0</Manual>
|
150
|
+
<Type>0</Type>
|
151
|
+
<IsNull>0</IsNull>
|
152
|
+
<CreateDate>2000-09-10T23:20:53</CreateDate>
|
153
|
+
<OutlineLevel>0</OutlineLevel>
|
154
|
+
<Priority>500</Priority>
|
155
|
+
<Start>2000-09-10T08:00:00</Start>
|
156
|
+
<Finish>2000-09-10T08:00:00</Finish>
|
157
|
+
<Duration>PT0H0M0S</Duration>
|
158
|
+
<ManualStart>2000-09-10T08:00:00</ManualStart>
|
159
|
+
<ManualFinish>2000-09-10T08:00:00</ManualFinish>
|
160
|
+
<ManualDuration>PT0H0M0S</ManualDuration>
|
161
|
+
<DurationFormat>21</DurationFormat>
|
162
|
+
<Work>PT0H0M0S</Work>
|
163
|
+
<ResumeValid>0</ResumeValid>
|
164
|
+
<EffortDriven>0</EffortDriven>
|
165
|
+
<Recurring>0</Recurring>
|
166
|
+
<OverAllocated>0</OverAllocated>
|
167
|
+
<Estimated>0</Estimated>
|
168
|
+
<Milestone>0</Milestone>
|
169
|
+
<Summary>0</Summary>
|
170
|
+
<Critical>1</Critical>
|
171
|
+
<IsSubproject>0</IsSubproject>
|
172
|
+
<IsSubprojectReadOnly>0</IsSubprojectReadOnly>
|
173
|
+
<ExternalTask>0</ExternalTask>
|
174
|
+
<EarlyStart>2000-09-10T08:00:00</EarlyStart>
|
175
|
+
<EarlyFinish>2000-09-10T08:00:00</EarlyFinish>
|
176
|
+
<LateStart>2000-09-10T08:00:00</LateStart>
|
177
|
+
<LateFinish>2000-09-10T08:00:00</LateFinish>
|
178
|
+
<StartVariance>0</StartVariance>
|
179
|
+
<FinishVariance>0</FinishVariance>
|
180
|
+
<WorkVariance>0</WorkVariance>
|
181
|
+
<FreeSlack>0</FreeSlack>
|
182
|
+
<TotalSlack>0</TotalSlack>
|
183
|
+
<StartSlack>0</StartSlack>
|
184
|
+
<FinishSlack>0</FinishSlack>
|
185
|
+
<FixedCost>0</FixedCost>
|
186
|
+
<FixedCostAccrual>3</FixedCostAccrual>
|
187
|
+
<PercentComplete>0</PercentComplete>
|
188
|
+
<PercentWorkComplete>0</PercentWorkComplete>
|
189
|
+
<Cost>0</Cost>
|
190
|
+
<OvertimeCost>0</OvertimeCost>
|
191
|
+
<OvertimeWork>PT0H0M0S</OvertimeWork>
|
192
|
+
<ActualDuration>PT0H0M0S</ActualDuration>
|
193
|
+
<ActualCost>0</ActualCost>
|
194
|
+
<ActualOvertimeCost>0</ActualOvertimeCost>
|
195
|
+
<ActualWork>PT0H0M0S</ActualWork>
|
196
|
+
<ActualOvertimeWork>PT0H0M0S</ActualOvertimeWork>
|
197
|
+
<RegularWork>PT0H0M0S</RegularWork>
|
198
|
+
<RemainingDuration>PT0H0M0S</RemainingDuration>
|
199
|
+
<RemainingCost>0</RemainingCost>
|
200
|
+
<RemainingWork>PT0H0M0S</RemainingWork>
|
201
|
+
<RemainingOvertimeCost>0</RemainingOvertimeCost>
|
202
|
+
<RemainingOvertimeWork>PT0H0M0S</RemainingOvertimeWork>
|
203
|
+
<ACWP>0</ACWP>
|
204
|
+
<CV>0</CV>
|
205
|
+
<ConstraintType>0</ConstraintType>
|
206
|
+
<CalendarUID>-1</CalendarUID>
|
207
|
+
<LevelAssignments>1</LevelAssignments>
|
208
|
+
<LevelingCanSplit>1</LevelingCanSplit>
|
209
|
+
<LevelingDelay>0</LevelingDelay>
|
210
|
+
<LevelingDelayFormat>8</LevelingDelayFormat>
|
211
|
+
<IgnoreResourceCalendar>0</IgnoreResourceCalendar>
|
212
|
+
<HideBar>0</HideBar>
|
213
|
+
<Rollup>0</Rollup>
|
214
|
+
<BCWS>0</BCWS>
|
215
|
+
<BCWP>0</BCWP>
|
216
|
+
<PhysicalPercentComplete>0</PhysicalPercentComplete>
|
217
|
+
<EarnedValueMethod>0</EarnedValueMethod>
|
218
|
+
<IsPublished>0</IsPublished>
|
219
|
+
<CommitmentType>0</CommitmentType>
|
220
|
+
</Task>
|
221
|
+
</Tasks>
|
222
|
+
<Resources>
|
223
|
+
<Resource>
|
224
|
+
<UID>0</UID>
|
225
|
+
<ID>0</ID>
|
226
|
+
<Type>1</Type>
|
227
|
+
<IsNull>0</IsNull>
|
228
|
+
<WorkGroup>0</WorkGroup>
|
229
|
+
<MaxUnits>1</MaxUnits>
|
230
|
+
<PeakUnits>0</PeakUnits>
|
231
|
+
<OverAllocated>0</OverAllocated>
|
232
|
+
<CanLevel>1</CanLevel>
|
233
|
+
<AccrueAt>3</AccrueAt>
|
234
|
+
<Work>PT0H0M0S</Work>
|
235
|
+
<RegularWork>PT0H0M0S</RegularWork>
|
236
|
+
<OvertimeWork>PT0H0M0S</OvertimeWork>
|
237
|
+
<ActualWork>PT0H0M0S</ActualWork>
|
238
|
+
<RemainingWork>PT0H0M0S</RemainingWork>
|
239
|
+
<ActualOvertimeWork>PT0H0M0S</ActualOvertimeWork>
|
240
|
+
<RemainingOvertimeWork>PT0H0M0S</RemainingOvertimeWork>
|
241
|
+
<PercentWorkComplete>0</PercentWorkComplete>
|
242
|
+
<StandardRate>0</StandardRate>
|
243
|
+
<StandardRateFormat>2</StandardRateFormat>
|
244
|
+
<Cost>0</Cost>
|
245
|
+
<OvertimeRate>0</OvertimeRate>
|
246
|
+
<OvertimeRateFormat>2</OvertimeRateFormat>
|
247
|
+
<OvertimeCost>0</OvertimeCost>
|
248
|
+
<CostPerUse>0</CostPerUse>
|
249
|
+
<ActualCost>0</ActualCost>
|
250
|
+
<ActualOvertimeCost>0</ActualOvertimeCost>
|
251
|
+
<RemainingCost>0</RemainingCost>
|
252
|
+
<RemainingOvertimeCost>0</RemainingOvertimeCost>
|
253
|
+
<WorkVariance>0</WorkVariance>
|
254
|
+
<CostVariance>0</CostVariance>
|
255
|
+
<SV>0</SV>
|
256
|
+
<CV>0</CV>
|
257
|
+
<ACWP>0</ACWP>
|
258
|
+
<BCWS>0</BCWS>
|
259
|
+
<BCWP>0</BCWP>
|
260
|
+
<IsGeneric>0</IsGeneric>
|
261
|
+
<IsInactive>0</IsInactive>
|
262
|
+
<IsEnterprise>0</IsEnterprise>
|
263
|
+
<BookingType>0</BookingType>
|
264
|
+
<CreationDate>2000-09-10T23:20:53</CreationDate>
|
265
|
+
<IsBudget>0</IsBudget>
|
266
|
+
</Resource>
|
267
|
+
<Resource>
|
268
|
+
<UID>1</UID>
|
269
|
+
<ID>1</ID>
|
270
|
+
<Name>Resource 1</Name>
|
271
|
+
<Type>0</Type>
|
272
|
+
<IsNull>0</IsNull>
|
273
|
+
<Initials>R</Initials>
|
274
|
+
<MaterialLabel>TEST LABEL></MaterialLabel>
|
275
|
+
<WorkGroup>0</WorkGroup>
|
276
|
+
<PeakUnits>0</PeakUnits>
|
277
|
+
<OverAllocated>0</OverAllocated>
|
278
|
+
<CanLevel>1</CanLevel>
|
279
|
+
<AccrueAt>1</AccrueAt>
|
280
|
+
<Work>PT0H0M0S</Work>
|
281
|
+
<RegularWork>PT0H0M0S</RegularWork>
|
282
|
+
<OvertimeWork>PT0H0M0S</OvertimeWork>
|
283
|
+
<ActualWork>PT0H0M0S</ActualWork>
|
284
|
+
<RemainingWork>PT0H0M0S</RemainingWork>
|
285
|
+
<ActualOvertimeWork>PT0H0M0S</ActualOvertimeWork>
|
286
|
+
<RemainingOvertimeWork>PT0H0M0S</RemainingOvertimeWork>
|
287
|
+
<PercentWorkComplete>0</PercentWorkComplete>
|
288
|
+
<StandardRate>0</StandardRate>
|
289
|
+
<StandardRateFormat>2</StandardRateFormat>
|
290
|
+
<Cost>0</Cost>
|
291
|
+
<OvertimeRateFormat>2</OvertimeRateFormat>
|
292
|
+
<CostPerUse>0</CostPerUse>
|
293
|
+
<ActualCost>0</ActualCost>
|
294
|
+
<RemainingCost>0</RemainingCost>
|
295
|
+
<WorkVariance>0</WorkVariance>
|
296
|
+
<CostVariance>0</CostVariance>
|
297
|
+
<SV>0</SV>
|
298
|
+
<CV>0</CV>
|
299
|
+
<ACWP>0</ACWP>
|
300
|
+
<CalendarUID>0</CalendarUID>
|
301
|
+
<BCWS>0</BCWS>
|
302
|
+
<BCWP>0</BCWP>
|
303
|
+
<IsGeneric>1</IsGeneric>
|
304
|
+
<IsInactive>0</IsInactive>
|
305
|
+
<IsEnterprise>0</IsEnterprise>
|
306
|
+
<BookingType>1</BookingType>
|
307
|
+
<CreationDate>2000-09-10T23:20:53</CreationDate>
|
308
|
+
<IsCostResource>0</IsCostResource>
|
309
|
+
<IsBudget>0</IsBudget>
|
310
|
+
<ExtendedAttribute>
|
311
|
+
<FieldID>205520904</FieldID>
|
312
|
+
<Value>TEXT VALUE 1</Value>
|
313
|
+
</ExtendedAttribute>
|
314
|
+
<ExtendedAttribute>
|
315
|
+
<FieldID>205521021</FieldID>
|
316
|
+
<Value>12345.6</Value>
|
317
|
+
</ExtendedAttribute>
|
318
|
+
<ExtendedAttribute>
|
319
|
+
<FieldID>205520998</FieldID>
|
320
|
+
<Value>Tue Dec 17 05:00:00 PKT 2013</Value>
|
321
|
+
</ExtendedAttribute>
|
322
|
+
<ExtendedAttribute>
|
323
|
+
<FieldID>205521003</FieldID>
|
324
|
+
<Value>Tue Dec 24 05:00:00 PKT 2013</Value>
|
325
|
+
</ExtendedAttribute>
|
326
|
+
<ExtendedAttribute>
|
327
|
+
<FieldID>205521008</FieldID>
|
328
|
+
<Value>321</Value>
|
329
|
+
</ExtendedAttribute>
|
330
|
+
<ExtendedAttribute>
|
331
|
+
<FieldID>205521069</FieldID>
|
332
|
+
<Value>Mon Dec 09 05:00:00 PKT 2013</Value>
|
333
|
+
</ExtendedAttribute>
|
334
|
+
<ExtendedAttribute>
|
335
|
+
<FieldID>205521013</FieldID>
|
336
|
+
<Value>1800</Value>
|
337
|
+
</ExtendedAttribute>
|
338
|
+
<ExtendedAttribute>
|
339
|
+
<FieldID>205521023</FieldID>
|
340
|
+
<Value>1</Value>
|
341
|
+
</ExtendedAttribute>
|
342
|
+
</Resource>
|
343
|
+
</Resources>
|
344
|
+
<Assignments />
|
345
|
+
</Project>
|
Binary file
|
Binary file
|
data/test/tasks_tests.rb
ADDED
@@ -0,0 +1,430 @@
|
|
1
|
+
require "minitest/autorun"
|
2
|
+
require "minitest/unit"
|
3
|
+
|
4
|
+
require_relative '../lib/aspose_tasks_cloud'
|
5
|
+
|
6
|
+
class TasksTests < Minitest::Test
|
7
|
+
include MiniTest::Assertions
|
8
|
+
include AsposeTasksCloud
|
9
|
+
include AsposeStorageCloud
|
10
|
+
|
11
|
+
def setup
|
12
|
+
#Get App key and App SID from https://cloud.aspose.com
|
13
|
+
AsposeApp.app_key_and_sid("", "")
|
14
|
+
@tasks_api = TasksApi.new
|
15
|
+
end
|
16
|
+
|
17
|
+
def teardown
|
18
|
+
end
|
19
|
+
|
20
|
+
def upload_file(file_name)
|
21
|
+
@storage_api = StorageApi.new
|
22
|
+
response = @storage_api.put_create(file_name, File.open("data/" << file_name,"r") { |io| io.read } )
|
23
|
+
|
24
|
+
assert(response, message="Failed to upload {file_name} file.")
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_get_task_document
|
28
|
+
file_name = "sample-project-2.mpp"
|
29
|
+
upload_file(file_name)
|
30
|
+
|
31
|
+
response = @tasks_api.get_task_document(file_name)
|
32
|
+
assert(response, message="Failed to represents a project document.")
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_get_task_document_with_format
|
36
|
+
file_name = "sample-project.mpp"
|
37
|
+
upload_file(file_name)
|
38
|
+
format = "pdf"
|
39
|
+
|
40
|
+
response = @tasks_api.get_task_document_with_format(file_name, format)
|
41
|
+
assert(response, message="Failed to get a project document in specified format.")
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_get_project_assignments
|
45
|
+
file_name = "sample-project-2.mpp"
|
46
|
+
upload_file(file_name)
|
47
|
+
|
48
|
+
response = @tasks_api.get_project_assignments(file_name)
|
49
|
+
assert(response, message="Failed to read project assignment items.")
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_post_project_assignment
|
53
|
+
file_name = "sample-project.mpp"
|
54
|
+
upload_file(file_name)
|
55
|
+
task_uid = 1
|
56
|
+
resource_uid = 1
|
57
|
+
|
58
|
+
response = @tasks_api.post_project_assignment(file_name, task_uid, resource_uid)
|
59
|
+
assert(response, message="Failed to add a new assignment to a project")
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_get_project_assignment
|
63
|
+
file_name = "sample-project-2.mpp"
|
64
|
+
upload_file(file_name)
|
65
|
+
assignment_uid = 1
|
66
|
+
|
67
|
+
response = @tasks_api.get_project_assignment(file_name, assignment_uid)
|
68
|
+
assert(response, message="Failed to read project assignment.")
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_delete_project_assignment
|
72
|
+
file_name = "sample-project-2.mpp"
|
73
|
+
upload_file(file_name)
|
74
|
+
assignment_uid = 1
|
75
|
+
|
76
|
+
response = @tasks_api.delete_project_assignment(file_name, assignment_uid)
|
77
|
+
assert(response, message="Failed to deletes a project assignment with all references to it.")
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_get_project_calendars
|
81
|
+
file_name = "sample-project.mpp"
|
82
|
+
upload_file(file_name)
|
83
|
+
|
84
|
+
response = @tasks_api.get_project_calendars(file_name)
|
85
|
+
assert(response, message="Failed to read project calendar items.")
|
86
|
+
end
|
87
|
+
|
88
|
+
def test_post_project_calendar
|
89
|
+
file_name = "sample-project.mpp"
|
90
|
+
upload_file(file_name)
|
91
|
+
calendar = Calendar.new
|
92
|
+
calendar.name = "TestCalender"
|
93
|
+
calendar.uid = 0
|
94
|
+
|
95
|
+
response = @tasks_api.post_project_calendar(file_name, calendar)
|
96
|
+
assert(response, message="Failed to add a new calendar to project file.")
|
97
|
+
end
|
98
|
+
|
99
|
+
def test_get_project_calendar
|
100
|
+
file_name = "sample-project.mpp"
|
101
|
+
upload_file(file_name)
|
102
|
+
calendar_uid = 1
|
103
|
+
|
104
|
+
response = @tasks_api.get_project_calendar(file_name, calendar_uid)
|
105
|
+
assert(response, message="Failed to represents a project calendar.")
|
106
|
+
end
|
107
|
+
|
108
|
+
def test_delete_project_calendar
|
109
|
+
file_name = "sample-project.mpp"
|
110
|
+
upload_file(file_name)
|
111
|
+
calendar_uid = 2
|
112
|
+
|
113
|
+
response = @tasks_api.delete_project_calendar(file_name, calendar_uid)
|
114
|
+
assert(response, message="Failed to deletes a project calendar")
|
115
|
+
end
|
116
|
+
|
117
|
+
def test_get_calendar_exceptions
|
118
|
+
file_name = "sample-project.mpp"
|
119
|
+
upload_file(file_name)
|
120
|
+
calendar_uid = 1
|
121
|
+
|
122
|
+
response = @tasks_api.get_calendar_exceptions(file_name, calendar_uid)
|
123
|
+
assert(response, message="Failed to get list of calendar exceptions.")
|
124
|
+
end
|
125
|
+
|
126
|
+
def test_post_calendar_exceptions
|
127
|
+
file_name = "sample-project-2.mpp"
|
128
|
+
upload_file(file_name)
|
129
|
+
calendar_uid = 1
|
130
|
+
calendar_exception = CalendarException.new
|
131
|
+
calendar_exception.name = "Test"
|
132
|
+
calendar_exception.from_date = Time.utc(2016, 01, 28).to_s
|
133
|
+
calendar_exception.to_date = Time.utc(2016, 01, 30).to_s
|
134
|
+
|
135
|
+
response = @tasks_api.post_calendar_exceptions(file_name, calendar_uid, calendar_exception)
|
136
|
+
assert(response, message="Failed to add a new calendar exception to a calendar.")
|
137
|
+
end
|
138
|
+
|
139
|
+
def test_put_calendar_exception
|
140
|
+
file_name = "sample-project.mpp"
|
141
|
+
upload_file(file_name)
|
142
|
+
calendar_uid = 1
|
143
|
+
index = 1
|
144
|
+
calendar_exception = CalendarException.new
|
145
|
+
calendar_exception.name = "Test"
|
146
|
+
calendar_exception.from_date = Time.utc(2016, 01, 28).to_s
|
147
|
+
calendar_exception.to_date = Time.utc(2016, 01, 30).to_s
|
148
|
+
|
149
|
+
response = @tasks_api.put_calendar_exception(file_name, calendar_uid, index, calendar_exception)
|
150
|
+
assert(response, message="Failed to updates calendar exception.")
|
151
|
+
end
|
152
|
+
|
153
|
+
def test_delete_calendar_exception
|
154
|
+
file_name = "sample-project.mpp"
|
155
|
+
upload_file(file_name)
|
156
|
+
calendar_uid = 1
|
157
|
+
index = 1
|
158
|
+
|
159
|
+
response = @tasks_api.delete_calendar_exception(file_name, calendar_uid, index)
|
160
|
+
assert(response, message="Failed to deletes calendar exception from calendar exceptions collection.")
|
161
|
+
end
|
162
|
+
|
163
|
+
def test_get_critical_path
|
164
|
+
file_name = "sample-project.mpp"
|
165
|
+
upload_file(file_name)
|
166
|
+
|
167
|
+
response = @tasks_api.get_critical_path(file_name)
|
168
|
+
assert(response, message="Failed to returns created report in PDF format.")
|
169
|
+
end
|
170
|
+
|
171
|
+
def test_get_document_properties
|
172
|
+
file_name = "sample-project.mpp"
|
173
|
+
upload_file(file_name)
|
174
|
+
|
175
|
+
response = @tasks_api.get_document_properties(file_name)
|
176
|
+
assert(response, message="Failed to read document properties.")
|
177
|
+
end
|
178
|
+
|
179
|
+
def test_get_document_property
|
180
|
+
file_name = "sample-project.mpp"
|
181
|
+
upload_file(file_name)
|
182
|
+
property_name = "Title"
|
183
|
+
|
184
|
+
response = @tasks_api.get_document_property(file_name, property_name)
|
185
|
+
assert(response, message="Failed to read document property by name.")
|
186
|
+
end
|
187
|
+
|
188
|
+
def test_put_document_property
|
189
|
+
file_name = "sample-project-2.mpp"
|
190
|
+
upload_file(file_name)
|
191
|
+
property_name = "Title"
|
192
|
+
document_property = DocumentProperty.new
|
193
|
+
document_property.name = property_name
|
194
|
+
document_property.value = "New Title"
|
195
|
+
|
196
|
+
response = @tasks_api.put_document_property(file_name, property_name, document_property)
|
197
|
+
assert(response, message="Failed to set/create document property.")
|
198
|
+
end
|
199
|
+
|
200
|
+
def test_post_document_property
|
201
|
+
file_name = "sample-project-2.mpp"
|
202
|
+
upload_file(file_name)
|
203
|
+
property_name = "Title"
|
204
|
+
document_property = DocumentProperty.new
|
205
|
+
document_property.name = property_name
|
206
|
+
document_property.value = "New Title"
|
207
|
+
|
208
|
+
response = @tasks_api.post_document_property(file_name, property_name, document_property)
|
209
|
+
assert(response, message="Failed to set/create document property")
|
210
|
+
end
|
211
|
+
|
212
|
+
def test_get_extended_attributes
|
213
|
+
file_name = "ExtendedAttribute.mpp"
|
214
|
+
upload_file(file_name)
|
215
|
+
|
216
|
+
response = @tasks_api.get_extended_attributes(file_name)
|
217
|
+
assert(response, message="Failed to represents a project document.")
|
218
|
+
end
|
219
|
+
|
220
|
+
def test_get_extended_attribute_by_index
|
221
|
+
file_name = "ExtendedAttribute.mpp"
|
222
|
+
upload_file(file_name)
|
223
|
+
index = 1
|
224
|
+
|
225
|
+
response = @tasks_api.get_extended_attribute_by_index(file_name, index)
|
226
|
+
assert(response, message="Failed to represent a project extended attribute definition.")
|
227
|
+
end
|
228
|
+
|
229
|
+
def test_delete_extended_attribute_by_index
|
230
|
+
file_name = "ExtendedAttribute.mpp"
|
231
|
+
upload_file(file_name)
|
232
|
+
index = 1
|
233
|
+
|
234
|
+
response = @tasks_api.delete_extended_attribute_by_index(file_name, index)
|
235
|
+
assert(response, message="Failed to delete a project extended attribute.")
|
236
|
+
end
|
237
|
+
|
238
|
+
def test_get_outline_codes
|
239
|
+
file_name = "Outlinecode.mpp"
|
240
|
+
upload_file(file_name)
|
241
|
+
|
242
|
+
response = @tasks_api.get_outline_codes(file_name)
|
243
|
+
assert(response, message="Failed to read outline codes.")
|
244
|
+
end
|
245
|
+
|
246
|
+
def test_get_outline_code_by_index
|
247
|
+
file_name = "Outlinecode.mpp"
|
248
|
+
upload_file(file_name)
|
249
|
+
index = 1
|
250
|
+
|
251
|
+
response = @tasks_api.get_outline_code_by_index(file_name, index)
|
252
|
+
assert(response, message="Failed to get outline code by index.")
|
253
|
+
end
|
254
|
+
|
255
|
+
def test_delete_outline_code_by_index
|
256
|
+
file_name = "Outlinecode.mpp"
|
257
|
+
upload_file(file_name)
|
258
|
+
index = 1
|
259
|
+
|
260
|
+
response = @tasks_api.delete_outline_code_by_index(file_name, index)
|
261
|
+
assert(response, message="Failed to deletes a project outline code")
|
262
|
+
end
|
263
|
+
|
264
|
+
def test_get_report_pdf
|
265
|
+
file_name = "sample-project.mpp"
|
266
|
+
upload_file(file_name)
|
267
|
+
type = "WorkOverview"
|
268
|
+
|
269
|
+
response = @tasks_api.get_report_pdf(file_name, type)
|
270
|
+
assert(response, message="Failed to return created report in PDF format.")
|
271
|
+
end
|
272
|
+
|
273
|
+
def test_get_project_resources
|
274
|
+
file_name = "sample-project.mpp"
|
275
|
+
upload_file(file_name)
|
276
|
+
|
277
|
+
response = @tasks_api.get_project_resources(file_name)
|
278
|
+
assert(response, message="Failed to read project resources.")
|
279
|
+
end
|
280
|
+
|
281
|
+
def test_post_project_resource
|
282
|
+
file_name = "sample-project.mpp"
|
283
|
+
upload_file(file_name)
|
284
|
+
opts = {resource_name: "Resource6", before_resource_id: 1}
|
285
|
+
|
286
|
+
response = @tasks_api.post_project_resource(file_name, opts)
|
287
|
+
assert(response, message="Failed to add a new resource to a project.")
|
288
|
+
end
|
289
|
+
|
290
|
+
def test_get_project_resource
|
291
|
+
file_name = "sample-project.mpp"
|
292
|
+
upload_file(file_name)
|
293
|
+
resource_uid = 1
|
294
|
+
|
295
|
+
response = @tasks_api.get_project_resource(file_name, resource_uid)
|
296
|
+
assert(response, message="Failed to get project resource.")
|
297
|
+
end
|
298
|
+
|
299
|
+
def test_delete_project_resource
|
300
|
+
file_name = "sample-project.mpp"
|
301
|
+
upload_file(file_name)
|
302
|
+
resource_uid = 1
|
303
|
+
|
304
|
+
response = @tasks_api.delete_project_resource(file_name, resource_uid)
|
305
|
+
assert(response, message="Failed to deletes a project resource with all references to it.")
|
306
|
+
end
|
307
|
+
|
308
|
+
def test_get_resource_assignments
|
309
|
+
file_name = "sample-project.mpp"
|
310
|
+
upload_file(file_name)
|
311
|
+
resource_uid = 1
|
312
|
+
|
313
|
+
response = @tasks_api.get_resource_assignments(file_name, resource_uid)
|
314
|
+
assert(response, message="Failed to get resource assignments.")
|
315
|
+
end
|
316
|
+
|
317
|
+
def test_get_task_links
|
318
|
+
file_name = "sample-project-2.mpp"
|
319
|
+
upload_file(file_name)
|
320
|
+
|
321
|
+
response = @tasks_api.get_task_links(file_name)
|
322
|
+
assert(response, message="Failed to read task links.")
|
323
|
+
end
|
324
|
+
|
325
|
+
def test_post_task_link
|
326
|
+
file_name = "sample-project-2.mpp"
|
327
|
+
upload_file(file_name)
|
328
|
+
task_link = TaskLink.new
|
329
|
+
task_link.index = 2
|
330
|
+
task_link.predecessor_uid = 1
|
331
|
+
task_link.successor_uid = 2
|
332
|
+
|
333
|
+
response = @tasks_api.post_task_link(file_name, task_link)
|
334
|
+
assert(response, message="Failed to add a new task link to a project.")
|
335
|
+
end
|
336
|
+
|
337
|
+
def test_put_task_link
|
338
|
+
file_name = "sample-project.mpp"
|
339
|
+
upload_file(file_name)
|
340
|
+
index = 1
|
341
|
+
task_link = TaskLink.new
|
342
|
+
task_link.index = index
|
343
|
+
task_link.predecessor_uid = 0
|
344
|
+
task_link.successor_uid = 1
|
345
|
+
|
346
|
+
response = @tasks_api.put_task_link(file_name, index, task_link)
|
347
|
+
assert(response, message="Failed to updates task link.")
|
348
|
+
end
|
349
|
+
|
350
|
+
def test_delete_task_link
|
351
|
+
file_name = "sample-project.mpp"
|
352
|
+
upload_file(file_name)
|
353
|
+
index = 1
|
354
|
+
|
355
|
+
response = @tasks_api.delete_task_link(file_name, index)
|
356
|
+
assert(response, message="Failed to updates task link.")
|
357
|
+
end
|
358
|
+
|
359
|
+
def test_get_project_tasks
|
360
|
+
file_name = "sample-project.mpp"
|
361
|
+
upload_file(file_name)
|
362
|
+
|
363
|
+
response = @tasks_api.get_project_tasks(file_name)
|
364
|
+
assert(response, message="Failed to read project task items.")
|
365
|
+
end
|
366
|
+
|
367
|
+
def test_post_project_task
|
368
|
+
file_name = "sample-project.mpp"
|
369
|
+
upload_file(file_name)
|
370
|
+
opts = {task_name: "NewTask", before_task_id: 1}
|
371
|
+
|
372
|
+
response = @tasks_api.post_project_task(file_name, opts)
|
373
|
+
assert(response, message="Failed to add a new task to a project.")
|
374
|
+
end
|
375
|
+
|
376
|
+
def test_get_project_task
|
377
|
+
file_name = "sample-project-2.mpp"
|
378
|
+
upload_file(file_name)
|
379
|
+
task_uid = 1
|
380
|
+
|
381
|
+
response = @tasks_api.get_project_task(file_name, task_uid)
|
382
|
+
assert(response, message="Failed to read project task.")
|
383
|
+
end
|
384
|
+
|
385
|
+
def test_delete_project_task
|
386
|
+
file_name = "sample-project.mpp"
|
387
|
+
upload_file(file_name)
|
388
|
+
task_uid = 1
|
389
|
+
|
390
|
+
response = @tasks_api.delete_project_task(file_name, task_uid)
|
391
|
+
assert(response, message="Failed to delete a project task with all references to it and rebuilds tasks tree.")
|
392
|
+
end
|
393
|
+
|
394
|
+
def test_get_task_assignments
|
395
|
+
file_name = "sample-project-2.mpp"
|
396
|
+
upload_file(file_name)
|
397
|
+
task_uid = 1
|
398
|
+
|
399
|
+
response = @tasks_api.get_task_assignments(file_name, task_uid)
|
400
|
+
assert(response, message="Failed to get task assignments.")
|
401
|
+
end
|
402
|
+
|
403
|
+
def test_put_move_task
|
404
|
+
file_name = "sample-project.mpp"
|
405
|
+
upload_file(file_name)
|
406
|
+
task_uid = 1
|
407
|
+
parent_task_uid = 1
|
408
|
+
|
409
|
+
response = @tasks_api.put_move_task(file_name, task_uid, parent_task_uid)
|
410
|
+
assert(response, message="Failed to move one task to another parent task")
|
411
|
+
end
|
412
|
+
|
413
|
+
def test_get_task_recurring_info
|
414
|
+
file_name = "sample-project.mpp"
|
415
|
+
upload_file(file_name)
|
416
|
+
task_uid = 1
|
417
|
+
|
418
|
+
response = @tasks_api.get_task_recurring_info(file_name, task_uid)
|
419
|
+
assert(response, message="Failed to get recurring info for the task.")
|
420
|
+
end
|
421
|
+
|
422
|
+
def test_get_project_wbs_definition
|
423
|
+
file_name = "sample-project.mpp"
|
424
|
+
upload_file(file_name)
|
425
|
+
|
426
|
+
response = @tasks_api.get_project_wbs_definition(file_name)
|
427
|
+
assert(response, message="Failed to get project WBS Definition.")
|
428
|
+
end
|
429
|
+
|
430
|
+
end
|