Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 5 Nächste Version anzeigen »

WMS 2020 (1.0.3)

Die WmsNativeActivity ist eine Ableitung der herkömmlichen NativeActivity (System.Activities.NativeActivity). Sie erweitert die Klasse um folgende Funktionalität:

  • Deaktivieren von Aktivitäten über das Disabled-Property 
  • Prüfen, ob es eine neuere Version der Aktivität gibt (SupersedesAttribute)

Unterschiede zur NativeActivity

  • Statt der Execute-Methode müssen Sie die ExectuteIntern-Methode implementieren
  • Zusätzliches Property "Disabled"
WmsNativeActivity (C#)
using System.Activities;
using Accantum.Wms.ActivityContracts.Attributes;
using Accantum.Wms.ActivityContracts.Properties;

namespace Accantum.Wms.ActivityContracts.Base
{
    /// <summary>
    /// Basisklasse für NativeActivities
    /// </summary>
    public abstract class WmsNativeActivity: NativeActivity, 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"/>)
	 	/// Prüft das Disabled-Property
        /// </summary>
        protected override void CacheMetadata(NativeActivityMetadata 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 Aktivität ausgeführt werden soll.</returns>
        protected virtual bool BeforeExecute(NativeActivityContext context)
        {
            if (!Disabled) 
                return true;

            var wmsApi = context.GetExtension<IWmsApiExtension>();
            wmsApi.TrackInfo(context, GetDisabledWarning());
            return false;
        }

        protected sealed override void Execute(NativeActivityContext context)
        {
            if (!BeforeExecute(context))
                return;

            ExecuteIntern(context);
        }

        protected abstract void ExecuteIntern(NativeActivityContext context);
    }

}
  • Keine Stichwörter