Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

OMI SDK

Build your business logic

Build the logic in your app to solve a business problem. As there are many ways to achieve a particular result, use the methods that you are most comfortable using.

Let's say you want to build an app that gets property-change notifications. Among the tasks that need to be done are:

  • Create a simple property to get change event notifications from the SDK.
  • Add a reference to the appropriate SDK namespace (for example, ArchestrA.Client.MyViewApp.Navigation).
  • Specify the property your are interested in (for example, ArchestrA.Client.MyViewApp.Navigation.CurrentAssetName).
  • Determine if the ViewApp is functioning in run time or is being configured. If it is being configured, we are not interested in receiving notification.
  • Establish a reference to the SDK to get change notification.
CurrentAsset Changed Notification

namespace MyOMIApp
{
    /// <summary>
    /// Interaction logic for UserControl1.xaml
    /// </summary>
    public partial class UserControl1 : UserControl, INotifyPropertyChanged
    {
        /// <summary>
        /// this is a constructor
        /// </summary>
        public UserControl1()
        {
            InitializeComponent();
         
            /// if this control is in design mode, don't do anything
            if(!System.ComponentModel.DesignerProperties.GetIsInDesignMode(this))
          
            /// if not in design mode, subscribe
            ArchestrA.Client.MyViewApp.Navigation.PropertyChanged +- Navigation_PropertyChanged;
        }
        /// simple property - get asset change notification from SDK; need to get reference from SDK
        public string CurrentAssetName { get; set; }
        /// <summary>
        /// setting up business logic
        /// </summary>
      
        void Navigation_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            if (Incontext)
            {
                if (e.PropertyName == CurrentAsset)
                {
                    CurrentAssetName = ArchestrA.Client.MyViewApp.Navigation.CurrentAsset;
                    if (PropertyChanged != null)
                        PropertyChanged(this, new PropertyChangedEventsArgs("CurrentAssetName"));
                }
            }
        }
    /// Create a simple property to get notification from SDK
    /// use browsable(false) so this is not imported
    [Browsable(false)]
    public string CurrentAssetName { get; set; }
    public bool Incontext { get; set; }