Example #1
0
    /// <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);
                }
            }
        }
    }