2 using System.Collections.Generic;
\r
3 using System.Collections.ObjectModel;
\r
6 namespace NaGet.SubCommands
\r
9 /// NaGet
\83^
\83X
\83N
\8f\88\97\9d\82Ì
\83p
\83b
\83N
\r
12 public abstract class NaGetTaskSet : Task
\r
15 ///
\83^
\83X
\83N
\8f\88\97\9d\92\86\82Ì
\8e¿
\96â
\82Ì
\83n
\83\93\83h
\83\89\r
17 public event NaGetTaskQueryHandler TaskQueryRaised;
\r
20 ///
\95¶
\8e\9a\97ñ
\82Å
\95\
\8c»
\82µ
\82½
\8dì
\8bÆ
\88ê
\97\97\83\8a\83X
\83g
\r
22 protected IList<string> taskSetNames;
\r
25 ///
\95¶
\8e\9a\97ñ
\82Å
\95\
\8c»
\82µ
\82½
\8dì
\8bÆ
\88ê
\97\97\83\8a\83X
\83g
\r
27 public virtual IList<string> TaskSetNames {
\r
29 return new ReadOnlyCollection<string>(taskSetNames);
\r
34 ///
\8c»
\8dÝ
\8eÀ
\8ds
\92\86\82Ì
\8dì
\8bÆ
\94Ô
\8d\86\r
36 public abstract int CurrentTaskSetIndex {
\r
41 ///
\8c»
\8dÝ
\82Ì
\90i
\92»
\82ð
\96ß
\82·
\81B
\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
48 if (CurrentTaskSetIndex >= 0) {
\r
49 if (subTaskProgress >= 0) {
\r
50 return (CurrentTaskSetIndex * 100 + subTaskProgress) / taskSetNames.Count;
\r
53 case TaskEventType.STARTED:
\r
55 case TaskEventType.COMPLETED:
\r
57 case TaskEventType.COMPLETED_SUBTASK:
\r
58 return ((CurrentTaskSetIndex+1) * 100) / taskSetNames.Count;
\r
60 return (CurrentTaskSetIndex * 100) / taskSetNames.Count;
\r
67 #region TaskEvent
\95Ö
\97\98\83\81\83\
\83b
\83h
\r
69 protected virtual void RaiseTaskSetEvent(TaskEventType type, string message)
\r
71 RaiseTaskSetEvent(type, message, GetProgressPercent(type, -1));
\r
74 protected virtual void ReceivedErrorData(object sender, NaGet.Utils.AnyDataEventArgs<string> e)
\r
76 if (! string.IsNullOrEmpty(e.Data)) {
\r
77 RaiseTaskSetEvent(TaskEventType.WARNING, e.Data);
\r
81 protected virtual void ReceivedOutputData(object sender, NaGet.Utils.AnyDataEventArgs<string> e)
\r
83 if (! string.IsNullOrEmpty(e.Data)) {
\r
84 RaiseTaskSetEvent(TaskEventType.INFO, e.Data);
\r
90 protected virtual NaGetTaskQueryResult RaiseTaskSetQueryEvent(string message, NaGetTaskQueryResult selection)
\r
92 if (TaskQueryRaised != null) {
\r
93 return TaskQueryRaised(this, new NaGetTaskQueryArgs(message, selection));
\r
95 return NaGetTaskQueryResult.CANCELED_AUTOMATICALLY;
\r
98 public override bool Running {
\r
99 get { return CurrentTaskSetIndex >= 0 && !Done; }
\r