common/Utils/ProcessExec/EventArguments/ProcessExecEventArgs.cs
2026-04-23 17:50:07 +02:00

70 lines
2.7 KiB
C#

using System;
using Xylem.Common.CommonCore.Consts;
namespace Xylem.Common.Utils.ProcessExec.EventArguments
{
/// <summary>
/// Event message needed to inform the caller about the ongoing process
/// </summary>
[Serializable]
public class ProcessExecEventArgs : EventArgs
{
/// <summary>
/// Event message for overall process
/// </summary>
public String OverallProcessMessage { get; }
/// <summary>
/// Event message for single process
/// </summary>
public String ActualProcessMessage { get; }
/// <summary>
/// Overall process percentage 0..100
/// </summary>
public Double? OverallProcessPercent { get; }
/// <summary>
/// Single process percentage 0..100
/// </summary>
public Double? ActualProcessPercent { get; }
/// <summary>
/// Status of message
/// </summary>
public StatusReturn StatusReturn { get; }
/// <summary>
/// Object containing specific information
/// </summary>
public Object SpecificInfoObj { get; }
/// <summary>
/// Ctor
/// </summary>
/// <param name="overallProcessMessage">Message for overall process</param>
/// <param name="overallProcessPercent">Internal limited to 0..100 %</param>
/// <param name="actualProcessMessage">Message for actual subprocess</param>
/// <param name="actualProcessPercent">Internal limited to 0..100 %</param>
/// <param name="statusReturn">Status information</param>
/// <param name="specificInfoObj">Specific information as object</param>
/// <remarks date="2026-Jan-08" author="Thomas Wiedebusch">
/// - Object as specific information.
/// </remarks>
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;
}
}
}