WmsCodeActivity
WMS 2020 (1.0.3)
Die WmsCodeActivity ist eine Ableitung der herkömmlichen CodeActivity (System.Activities.CodeActivity). Unterschiede zur CodeActivity
Statt der Execute-Methode müssen Sie die ExectuteIntern-Methode implementieren
Zusätzliches Property "Disabled"
WmsCodeActivity (C#)
using System.Activities;
using Accantum.Wms.ActivityContracts.Attributes;
using Accantum.Wms.ActivityContracts.Properties;
namespace Accantum.Wms.ActivityContracts.Base
{
/// <summary>
/// Basisklasse für CodeActivities
/// </summary>
public abstract class WmsCodeActivity: CodeActivity, IWmsActivityBase
{
/// <summary>
/// Kennzeichen, ob die Aktivität auskommentiert ist. Wenn Ja, wird die ExecuteMethode nicht aufgerufen.
/// </summary>
[ExcludeInAnnotation]
[LocalizedDisplayName("Activity_Disabled", typeof(WmsActivityResources))]
[LocalizedDescription("Activity_DisabledDesc", typeof(WmsActivityResources))]
public bool Disabled { get; set; }
/// <summary>
/// Prüft die Aktivitätsversion (<see cref="SupersedesAttribute"/>) und das Disabled-Property
/// </summary>
protected override void CacheMetadata(CodeActivityMetadata a_oMetadata)
{
//Bei deaktivierten Aktivitäten Fehler nicht anzeigen
if (Disabled)
{
a_oMetadata.SetValidationErrorsCollection(null);
a_oMetadata.AddValidationError(CreateDisabledValidationWarning());
}
else {
base.CacheMetadata(a_oMetadata);
}
SupersedesAttribute.AddWarningIfIsSuperseded(GetType(), a_oMetadata);
}
/// <summary>
/// Methode wird vor der Ausführung aufgerufen und prüft das Disabled-Kennzeichen.
/// </summary>
/// <returns>true, wenn die Aktivtät ausgeführt werden soll.</returns>
protected virtual bool BeforeExecute(CodeActivityContext context)
{
if (!Disabled)
return true;
var wmsApi = context.GetExtension<IWmsApiExtension>();
wmsApi.TrackInfo(context, GetDisabledWarning());
return false;
}
protected sealed override void Execute(CodeActivityContext context)
{
if (!BeforeExecute(context))
return;
ExecuteIntern(context);
}
protected abstract void ExecuteIntern(CodeActivityContext context);
}
}