OSDN Git Service

na-get-lib,旧方式のタスク(NaGetTaskSet)系のクラスを削除。
[applistation/AppliStation.git] / na-get-lib / NaGet.SubCommands / NaGetTaskSet.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Collections.ObjectModel;\r
4 using NaGet.Tasks;\r
5 \r
6 namespace NaGet.SubCommands\r
7 {\r
8         /// <summary>\r
9         /// NaGet\83^\83X\83N\8f\88\97\9d\82Ì\83p\83b\83N\r
10         /// </summary>\r
11         [Obsolete]\r
12         public abstract class NaGetTaskSet : Task\r
13         {\r
14                 /// <summary>\r
15                 /// \83^\83X\83N\8f\88\97\9d\92\86\82Ì\8e¿\96â\82Ì\83n\83\93\83h\83\89\r
16                 /// </summary>\r
17                 public event NaGetTaskQueryHandler TaskQueryRaised;\r
18                 \r
19                 /// <summary>\r
20                 /// \95\8e\9a\97ñ\82Å\95\\8c»\82µ\82½\8dì\8bÆ\88ê\97\97\83\8a\83X\83g\r
21                 /// </summary>\r
22                 protected IList<string> taskSetNames;\r
23                 \r
24                 /// <summary>\r
25                 /// \95\8e\9a\97ñ\82Å\95\\8c»\82µ\82½\8dì\8bÆ\88ê\97\97\83\8a\83X\83g\r
26                 /// </summary>\r
27                 public virtual IList<string> TaskSetNames {\r
28                         get {\r
29                                 return new ReadOnlyCollection<string>(taskSetNames);\r
30                         }\r
31                 }\r
32                 \r
33                 /// <summary>\r
34                 /// \8c»\8dÝ\8eÀ\8ds\92\86\82Ì\8dì\8bÆ\94Ô\8d\86\r
35                 /// </summary>\r
36                 public abstract int CurrentTaskSetIndex {\r
37                         get;\r
38                 }\r
39                 \r
40                 /// <summary>\r
41                 /// \8c»\8dÝ\82Ì\90i\92»\82ð\96ß\82·\81B\r
42                 /// </summary>\r
43                 /// <param name="type">\8dì\8bÆ\82Ì\8fó\91Ô</param>\r
44                 /// <param name="subTaskProgress">\83T\83u\83^\83X\83N\82Ì\90i\92»</param>\r
45                 /// <returns>\8c»\8dÝ\82Ì\90i\92»</returns>\r
46                 protected virtual float GetProgressPercent(TaskEventType type, float subTaskProgress)\r
47                 {\r
48                         if (CurrentTaskSetIndex >= 0) {\r
49                                 if (subTaskProgress >= 0) {\r
50                                         return (CurrentTaskSetIndex * 100 + subTaskProgress) / taskSetNames.Count;\r
51                                 }\r
52                                 switch (type) {\r
53                                         case TaskEventType.STARTED:\r
54                                                 return 0;\r
55                                         case TaskEventType.COMPLETED:\r
56                                                 return 100;\r
57                                         case TaskEventType.COMPLETED_SUBTASK:\r
58                                                 return ((CurrentTaskSetIndex+1) * 100) / taskSetNames.Count;\r
59                                         default:\r
60                                                 return (CurrentTaskSetIndex * 100) / taskSetNames.Count;\r
61                                 }\r
62                         }\r
63                         \r
64                         return -1;\r
65                 }\r
66                 \r
67                 #region TaskEvent\95Ö\97\98\83\81\83\\83b\83h\r
68                 \r
69                 protected virtual void RaiseTaskSetEvent(TaskEventType type, string message)\r
70                 {\r
71                         RaiseTaskSetEvent(type, message, GetProgressPercent(type, -1));\r
72                 }\r
73                 \r
74                 protected virtual void ReceivedErrorData(object sender, NaGet.Utils.AnyDataEventArgs<string> e)\r
75                 {\r
76                         if (! string.IsNullOrEmpty(e.Data)) {\r
77                                 RaiseTaskSetEvent(TaskEventType.WARNING, e.Data);\r
78                         }\r
79                 }\r
80                 \r
81                 protected virtual void ReceivedOutputData(object sender, NaGet.Utils.AnyDataEventArgs<string> e)\r
82                 {\r
83                         if (! string.IsNullOrEmpty(e.Data)) {\r
84                                 RaiseTaskSetEvent(TaskEventType.INFO, e.Data);\r
85                         }\r
86                 }\r
87                 \r
88                 #endregion\r
89                 \r
90                 protected virtual NaGetTaskQueryResult RaiseTaskSetQueryEvent(string message, NaGetTaskQueryResult selection)\r
91                 {\r
92                         if (TaskQueryRaised != null) {\r
93                                 return TaskQueryRaised(this, new NaGetTaskQueryArgs(message, selection));\r
94                         }\r
95                         return NaGetTaskQueryResult.CANCELED_AUTOMATICALLY;\r
96                 }\r
97                 \r
98                 public override bool Running {\r
99                         get { return CurrentTaskSetIndex >= 0 && !Done; }\r
100                 }\r
101         }\r
102 }\r