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;
}
}
}