/// <summary> /// Returns true if binding object type exists. Otherwise, logs exception in event log. /// </summary> /// <param name="objectType">Object type to check existence for.</param> private bool BindingObjectTypeExists(string objectType) { BaseInfo bindingObject = ModuleManager.GetReadOnlyObject(objectType); if ((bindingObject == null) || (bindingObject.ColumnNames.Count < 2) || (!bindingObject.ContainsColumn(CurrentObjectIDColumn))) { EventLogProvider.LogEvent(EventType.ERROR, "ObjectBinding", "BindObject", "Object " + CurrentObjectInfo.ObjectDisplayName + " cannot be bound."); return(false); } return(true); }
/// <summary> /// Returns true if binding object type exists. Otherwise, logs exception in event log. /// </summary> /// <param name="objectType">Object type to check existence for.</param> private bool BindingObjectTypeExists(string objectType) { BaseInfo bindingObject = ModuleManager.GetReadOnlyObject(objectType); if ((bindingObject == null) || (bindingObject.ColumnNames.Count < 2) || (!bindingObject.ContainsColumn(CurrentObjectIDColumn))) { Service.Resolve <IEventLogService>().LogError("ObjectBinding", "BindObject", "Object " + CurrentObjectInfo.ObjectDisplayName + " cannot be bound."); return(false); } return(true); }
/// <summary> /// Returns value of the given object column. /// </summary> /// <param name="info">Object data</param> /// <param name="columnName">Column name</param> private static object GetColumnValue(BaseInfo info, string columnName) { if ((info != null) && info.ContainsColumn(columnName)) { return info.GetValue(columnName); } return null; }
private void Form_OnAfterSave(object sender, EventArgs e) { bool bindObjects = ValidationHelper.GetBoolean(Value, false); if ((bindObjects || !Form.IsInsertMode) && Visible) { GeneralizedInfo obj = (BaseInfo)Form.Data; if (obj != null) { try { BaseInfo bindingObj = ModuleManager.GetObject(Form.ResolveMacros(ObjectType)); int targetObjectID = ValidationHelper.GetInteger(Form.ResolveMacros(TargetObjectID), 0); var idColumn = obj.TypeInfo.IDColumn; if ((bindingObj != null) && (bindingObj.ColumnNames.Count >= 2) && (bindingObj.ContainsColumn(idColumn)) && (targetObjectID > 0)) { // Select proper column for target object string targetObjectColumn = (bindingObj.ColumnNames.IndexOf(idColumn) == 0) ? bindingObj.ColumnNames[1] : bindingObj.ColumnNames[0]; bindingObj.SetValue(idColumn, obj.ObjectID); bindingObj.SetValue(targetObjectColumn, targetObjectID); if (bindObjects) { // Bind objects bindingObj.Insert(); } else { // Remove binding bindingObj.Delete(); } } else { EventLogProvider.LogEvent(EventType.ERROR, "ObjectBinding", "BindObject", "Object " + obj.ObjectDisplayName + " cannot be bound."); } } catch (Exception ex) { EventLogProvider.LogException("ObjectBinding", "BindObject", ex); } } } }