using System; using Xylem.Common.CommonCore.Consts; namespace Xylem.Common.Utils.ProcessExec.EventArguments { /// /// Event message needed to inform the caller about the ongoing process /// [Serializable] public class ProcessExecEventArgs : EventArgs { /// /// Event message for overall process /// public String OverallProcessMessage { get; } /// /// Event message for single process /// public String ActualProcessMessage { get; } /// /// Overall process percentage 0..100 /// public Double? OverallProcessPercent { get; } /// /// Single process percentage 0..100 /// public Double? ActualProcessPercent { get; } /// /// Status of message /// public StatusReturn StatusReturn { get; } /// /// Object containing specific information /// public Object SpecificInfoObj { get; } /// /// Ctor /// /// Message for overall process /// Internal limited to 0..100 % /// Message for actual subprocess /// Internal limited to 0..100 % /// Status information /// Specific information as object /// /// - Object as specific information. /// public ProcessExecEventArgs(String overallProcessMessage, Double? overallProcessPercent = null, String actualProcessMessage = null, Double? actualProcessPercent = null, StatusReturn statusReturn = StatusReturn.Unknown, Object specificInfoObj = null) { OverallProcessMessage = overallProcessMessage; ActualProcessMessage = actualProcessMessage; OverallProcessPercent = overallProcessPercent > 100.0 ? 100.0 : overallProcessPercent; OverallProcessPercent = OverallProcessPercent < 0 ? 0 : OverallProcessPercent; ActualProcessPercent = actualProcessPercent > 100.0 ? 100.0 : actualProcessPercent; ActualProcessPercent = ActualProcessPercent < 0 ? 0 : ActualProcessPercent; StatusReturn = statusReturn; SpecificInfoObj = specificInfoObj; } } }