public XTriggerDefinitionAttribute(XTriggerActions action, XTriggerFireTimes when, XTriggerFireTypes fireType, string sObjectType) { m_action = action; m_when = when; m_fireType = fireType; m_sObjectType = sObjectType; }
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; }
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 + ": не задано наименование типа объекта"); } }
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; }