Ejemplo n.º 1
0
 public XTriggerDefinitionAttribute(XTriggerActions action, XTriggerFireTimes when, XTriggerFireTypes fireType, string sObjectType)
 {
     m_action      = action;
     m_when        = when;
     m_fireType    = fireType;
     m_sObjectType = sObjectType;
 }
Ejemplo n.º 2
0
 public XTriggerArgs(XTriggerActions action, XTriggerFireTimes fireTimes, XTriggerFireTypes eventType, DomainObjectDataSet dataSet, DomainObjectData xobj)
 {
     m_action   = action;
     m_fireTime = fireTimes;
     m_fireType = eventType;
     m_dataSet  = dataSet;
     m_xobj     = xobj;
 }
Ejemplo n.º 3
0
        public XTriggerDescription(XTriggerActions action, XTriggerFireTimes fireTimes, XTriggerFireTypes eventType, string sObjectType, XDotNetClassDescription factory)
        {
            m_action      = action;
            m_fireTime    = fireTimes;
            m_fireType    = eventType;
            m_sObjectType = sObjectType;
            m_factory     = factory;
            if (!m_factory.Metaclass.IsSubclassOf(typeof(XTrigger)))
            {
                throw new ArgumentException(
                          String.Format(
                              "Класс {0} не является наследником XTrigger и не может быть использован в качестве триггера",
                              factory.Metaclass.Name
                              )
                          );
            }

            Type type = factory.Metaclass;

            object[] attrs = type.GetCustomAttributes(typeof(XTriggerDefinitionAttribute), false);
            if (attrs.Length > 0)
            {
                XTriggerDefinitionAttribute attr = (XTriggerDefinitionAttribute)attrs[0];
                if (m_action == XTriggerActions.Unspecified)
                {
                    m_action = attr.Action;
                }
                if (m_fireTime == XTriggerFireTimes.Unspecified)
                {
                    m_fireTime = attr.When;
                }
                if (m_fireType == XTriggerFireTypes.Unspecified)
                {
                    m_fireType = attr.FireType;
                }
                if (m_sObjectType == null || m_sObjectType.Length == 0)
                {
                    m_sObjectType = attr.ObjectType;
                }
            }

            if (m_action == XTriggerActions.Unspecified)
            {
                throw new ApplicationException("Не полностью специфицированное описание триггера " + type.Name + ": не задано действие (XTriggerActions)");
            }
            if (m_fireTime == XTriggerFireTimes.Unspecified)
            {
                throw new ApplicationException("Не полностью специфицированное описание триггера " + type.Name + ": не задано время срабатывания (XTriggerFireTimes)");
            }
            if (m_fireType == XTriggerFireTypes.Unspecified)
            {
                throw new ApplicationException("Не полностью специфицированное описание триггера " + type.Name + ": не задан тип срабатывания (XTriggerFireTypes)");
            }
            if ((m_sObjectType == null || m_sObjectType.Length == 0) && m_fireType != XTriggerFireTypes.ForWholeDataSet)
            {
                throw new ApplicationException("Не полностью специфицированное описание триггера " + type.Name + ": не задано наименование типа объекта");
            }
        }
Ejemplo n.º 4
0
 public XTriggerConfiguration(string sAction, string sWhen, string sFireType, string sObjectType, string sClassName)
 {
     try
     {
         if (sAction == null || sAction.Length == 0)
         {
             Action = XTriggerActions.Unspecified;
         }
         else
         {
             Action = (XTriggerActions)Enum.Parse(typeof(XTriggerActions), sAction);
         }
     }
     catch
     {
         throw new ArgumentException("Некорректное значение перечисления XTriggerActions: " + sAction);
     }
     try
     {
         if (sWhen == null || sWhen.Length == 0)
         {
             FireTime = XTriggerFireTimes.Unspecified;
         }
         else
         {
             FireTime = (XTriggerFireTimes)Enum.Parse(typeof(XTriggerFireTimes), sWhen);
         }
     }
     catch
     {
         throw new ArgumentException("Некорректное значение перечисления XTriggerFireTimes: " + sWhen);
     }
     try
     {
         if (sFireType == null || sFireType.Length == 0)
         {
             FireType = XTriggerFireTypes.Unspecified;
         }
         else
         {
             FireType = (XTriggerFireTypes)Enum.Parse(typeof(XTriggerFireTypes), sFireType);
         }
     }
     catch
     {
         throw new ArgumentException("Некорректное значение перечисления XTriggerFireTypes:" + sFireType);
     }
     if (sClassName == null || sClassName.Length == 0)
     {
         throw new ArgumentException("не задано наименование класса триггера");
     }
     ClassName  = sClassName;
     ObjectType = sObjectType;
 }