2 using System.Collections.Generic;
\r
3 using System.Collections.ObjectModel;
\r
6 namespace NaGet.SubCommands
\r
8 #region NaGetTaskQueryHandler
\8aÖ
\98A
\r
10 public delegate NaGetTaskQueryResult NaGetTaskQueryHandler(object sender, NaGetTaskQueryArgs e);
\r
12 public class NaGetTaskQueryArgs
\r
15 ///
\83^
\83X
\83N
\82Ì
\8c»
\8bµ
\82Ì
\83\81\83b
\83Z
\81[
\83W
\r
17 public string Message;
\r
20 ///
\89ñ
\93\9a\82Ì
\8eí
\97Þ
\82Ì
\83t
\83\89\83O
\r
22 public NaGetTaskQueryResult SelectionFlag;
\r
24 public NaGetTaskQueryArgs(string message, NaGetTaskQueryResult selectionFlag)
\r
26 this.Message = message;
\r
27 this.SelectionFlag = selectionFlag;
\r
32 ///
\8e¿
\96â
\82Ì
\93\9a\82¦
\r
35 public enum NaGetTaskQueryResult : uint
\r
46 ///
\83L
\83\83\83\93\83Z
\83\8b\81A
\92\86\8e~
\r
50 ///
\8e©
\93®
\93I
\82È
\83L
\83\83\83\93\83Z
\83\8b(
\83\86\81[
\83U
\82Ì
\8eè
\82Å
\82Í
\82È
\82¢
\82à
\82Ì)
\r
52 CANCELED_AUTOMATICALLY = 0x00,
\r
59 /// NaGet
\83^
\83X
\83N
\8f\88\97\9d\82Ì
\83p
\83b
\83N
\r
61 public abstract class NaGetTaskSet : Task
\r
64 ///
\83^
\83X
\83N
\8f\88\97\9d\92\86\82Ì
\8e¿
\96â
\82Ì
\83n
\83\93\83h
\83\89\r
66 public event NaGetTaskQueryHandler TaskQueryRaised;
\r
69 ///
\95¶
\8e\9a\97ñ
\82Å
\95\
\8c»
\82µ
\82½
\8dì
\8bÆ
\88ê
\97\97\83\8a\83X
\83g
\r
71 protected IList<string> taskSetNames;
\r
74 ///
\95¶
\8e\9a\97ñ
\82Å
\95\
\8c»
\82µ
\82½
\8dì
\8bÆ
\88ê
\97\97\83\8a\83X
\83g
\r
76 public virtual IList<string> TaskSetNames {
\r
78 return new ReadOnlyCollection<string>(taskSetNames);
\r
83 ///
\8c»
\8dÝ
\8eÀ
\8ds
\92\86\82Ì
\8dì
\8bÆ
\94Ô
\8d\86\r
85 public abstract int CurrentTaskSetIndex {
\r
90 ///
\8c»
\8dÝ
\82Ì
\90i
\92»
\82ð
\96ß
\82·
\81B
\r
92 /// <param name="type">
\8dì
\8bÆ
\82Ì
\8fó
\91Ô</param>
\r
93 /// <param name="subTaskProgress">
\83T
\83u
\83^
\83X
\83N
\82Ì
\90i
\92»</param>
\r
94 /// <returns>
\8c»
\8dÝ
\82Ì
\90i
\92»</returns>
\r
95 protected virtual float GetProgressPercent(TaskEventType type, float subTaskProgress)
\r
97 if (CurrentTaskSetIndex >= 0) {
\r
98 if (subTaskProgress >= 0) {
\r
99 return (CurrentTaskSetIndex * 100 + subTaskProgress) / taskSetNames.Count;
\r
102 case TaskEventType.STARTED:
\r
104 case TaskEventType.COMPLETED:
\r
106 case TaskEventType.COMPLETED_SUBTASK:
\r
107 return ((CurrentTaskSetIndex+1) * 100) / taskSetNames.Count;
\r
109 return (CurrentTaskSetIndex * 100) / taskSetNames.Count;
\r
116 #region TaskEvent
\95Ö
\97\98\83\81\83\
\83b
\83h
\r
118 protected virtual void RaiseTaskSetEvent(TaskEventType type, string message)
\r
120 RaiseTaskSetEvent(type, message, GetProgressPercent(type, -1));
\r
123 protected virtual void ReceivedErrorData(object sender, NaGet.Utils.AnyDataEventArgs<string> e)
\r
125 if (! string.IsNullOrEmpty(e.Data)) {
\r
126 RaiseTaskSetEvent(TaskEventType.WARNING, e.Data);
\r
130 protected virtual void ReceivedOutputData(object sender, NaGet.Utils.AnyDataEventArgs<string> e)
\r
132 if (! string.IsNullOrEmpty(e.Data)) {
\r
133 RaiseTaskSetEvent(TaskEventType.INFO, e.Data);
\r
139 protected virtual NaGetTaskQueryResult RaiseTaskSetQueryEvent(string message, NaGetTaskQueryResult selection)
\r
141 if (TaskQueryRaised != null) {
\r
142 return TaskQueryRaised(this, new NaGetTaskQueryArgs(message, selection));
\r
144 return NaGetTaskQueryResult.CANCELED_AUTOMATICALLY;
\r
147 public override bool Running {
\r
148 get { return CurrentTaskSetIndex >= 0 && !Done; }
\r