Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

Status
colourYellow
titleWMS 2020 (1.0.3)

Die WmsNativeActivity ist eine Ableitung der herkömmlichen NativeActivity (System.Activities.NativeActivity). Unterschiede zur NativeActivity

  • Statt der Execute-Methode müssen Sie die ExectuteIntern-Methode implementieren

  • Zusätzliches Property "Disabled"

Seite einschließen

Basisklassen für AktivitätenBasisklassen für Aktivitäten

WmsNativeActivity (C#)
Codeblock
languagec#
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);
    }

}