/// <summary> /// Builds the DbCommand to Change the value of the edited columns found in the given dictionary. /// </summary> /// <param name="daMgr">DataAccessMgr object</param> /// <param name="taskQueueItem">The data row containing the values of the parameters</param> /// <param name="editedColumns">The columns that need to be updated</param> /// <param name="userCode">The userCode that updated the data</param> /// <returns>DbCommand Object with DbNull Parameter values</returns> public static DbCommand GetDependencyDmlCmd(DataAccessMgr daMgr , DataRow taskQueueItem , Dictionary <string, object> editedColumns , Int32?userCode = null) { DbCommand dbCmd = null; DbTableDmlMgr dmlMgr = daMgr.DbCatalogGetTableDmlMgr(DataAccess.Constants.SCHEMA_CORE , TaskProcessing.Constants.TaskDependencies); foreach (string column in editedColumns.Keys) { dmlMgr.AddColumn(column); } if (taskQueueItem == null) // add new item { dmlMgr.AddColumn(TaskProcessing.Constants.LastModifiedUserCode); dmlMgr.AddColumn(TaskProcessing.Constants.LastModifiedDateTime); dbCmd = daMgr.BuildInsertDbCommand(dmlMgr); } else { dbCmd = daMgr.BuildChangeDbCommand(dmlMgr, TaskProcessing.Constants.LastModifiedUserCode , TaskProcessing.Constants.LastModifiedDateTime); } foreach (string column in editedColumns.Keys) { dbCmd.Parameters[daMgr.BuildParamName(column)].Value = editedColumns[column]; } if (taskQueueItem == null) // add new { if (userCode.HasValue) { dbCmd.Parameters[daMgr.BuildParamName(TaskProcessing.Constants.LastModifiedUserCode)].Value = userCode.Value; dbCmd.Parameters[daMgr.BuildParamName(TaskProcessing.Constants.LastModifiedDateTime)].Value = daMgr.DbSynchTime; } else { dbCmd.Parameters[daMgr.BuildParamName(TaskProcessing.Constants.LastModifiedUserCode)].Value = DBNull.Value; dbCmd.Parameters[daMgr.BuildParamName(TaskProcessing.Constants.LastModifiedDateTime)].Value = DBNull.Value; } } else // change; where condition params { dbCmd.Parameters[daMgr.BuildParamName(TaskProcessing.Constants.LastModifiedUserCode)].Value = taskQueueItem[TaskProcessing.Constants.LastModifiedUserCode]; dbCmd.Parameters[daMgr.BuildParamName(TaskProcessing.Constants.LastModifiedDateTime)].Value = taskQueueItem[TaskProcessing.Constants.LastModifiedDateTime]; // set portion of the update if (userCode.HasValue) { dbCmd.Parameters[daMgr.BuildParamName(TaskProcessing.Constants.LastModifiedUserCode, true)].Value = userCode.Value; dbCmd.Parameters[daMgr.BuildParamName(TaskProcessing.Constants.LastModifiedDateTime, true)].Value = daMgr.DbSynchTime; } else { dbCmd.Parameters[daMgr.BuildParamName(TaskProcessing.Constants.LastModifiedUserCode, true)].Value = DBNull.Value; dbCmd.Parameters[daMgr.BuildParamName(TaskProcessing.Constants.LastModifiedDateTime, true)].Value = DBNull.Value; } } return(dbCmd); }
/// <summary> /// Method with change the settings of the SignonControl table to the given new settings only if they have not already been changed. /// <para>If </para> /// </summary> /// <param name="lastModifiedUser">The userCode of the user who last updated the record (or null if not changed)</param> /// <param name="lastModifiedDateTime">The DateTime of when the user last updated the record (or null if not changed)</param> /// <param name="newControlSettings">Signon Control Data Strcutre containing the new values.</param> /// <returns>Boolean indicating if record was changed or not.</returns> internal bool ChangeControl(int?lastModifiedByUserCode , DateTime?lastModifiedDateTime , SignonControlStructure newControlSettings) { DbTableDmlMgr dmlChange = _daMgr.DbCatalogGetTableDmlMgr(DataAccess.Constants.SCHEMA_CORE , Constants.SignonControl); dmlChange.AddColumn(Constants.TimeoutSeconds); dmlChange.AddColumn(Constants.SignoffWarningMsg); dmlChange.AddColumn(Constants.ForceSignOff); dmlChange.AddColumn(Constants.RestrictSignon); dmlChange.AddColumn(Constants.StatusSeconds); dmlChange.AddColumn(Constants.RestrictSignonMsg); dmlChange.AddColumn(Constants.FailedAttemptLimit); dmlChange.SetWhereCondition((j) => j.Column(Constants.SignonControl) == j.Parameter(Constants.SignonControl)); DbCommandMgr dbCmdMgr = new DbCommandMgr(_daMgr); DbCommand cmdChangeOrig = _daMgr.BuildChangeDbCommand(dmlChange , Constants.LastModifiedUserCode , Constants.LastModifiedDateTime); cmdChangeOrig.Parameters[_daMgr.BuildParamName(Constants.ControlCode)].Value = newControlSettings.SessionControlCode; cmdChangeOrig.Parameters[_daMgr.BuildParamName(Constants.TimeoutSeconds)].Value = Convert.ToInt16(newControlSettings.TimeOutSeconds); cmdChangeOrig.Parameters[_daMgr.BuildParamName(Constants.SignoffWarningMsg)].Value = newControlSettings.SignoffWarningMsg; cmdChangeOrig.Parameters[_daMgr.BuildParamName(Constants.ForceSignOff)].Value = newControlSettings.ForceSignoff; cmdChangeOrig.Parameters[_daMgr.BuildParamName(Constants.RestrictSignon)].Value = newControlSettings.RestrictSignon; cmdChangeOrig.Parameters[_daMgr.BuildParamName(Constants.RestrictSignonMsg)].Value = newControlSettings.RestrictSignonMsg; cmdChangeOrig.Parameters[_daMgr.BuildParamName(Constants.StatusSeconds)].Value = newControlSettings.StatusSeconds; cmdChangeOrig.Parameters[_daMgr.BuildParamName(Constants.FailedAttemptLimit)].Value = newControlSettings.FailedAttemptLimit; if (lastModifiedByUserCode.HasValue) { cmdChangeOrig.Parameters[_daMgr.BuildParamName(Constants.LastModifiedUserCode)].Value = lastModifiedByUserCode.Value; } if (lastModifiedDateTime.HasValue) { cmdChangeOrig.Parameters[_daMgr.BuildParamName(Constants.LastModifiedDateTime)].Value = lastModifiedDateTime.Value; } if (newControlSettings.LastModifiedByUserCode.HasValue) { cmdChangeOrig.Parameters[_daMgr.BuildParamName(Constants.LastModifiedUserCode, true)].Value = newControlSettings.LastModifiedByUserCode.Value; } cmdChangeOrig.Parameters[_daMgr.BuildParamName(Constants.LastModifiedDateTime, true)].Value = newControlSettings.LastModifiedByDateTime.Value; int rowsAffected = _daMgr.ExecuteNonQuery(cmdChangeOrig, null, null); if (rowsAffected == 1) { _signonControl.FailedAttemptLimit = newControlSettings.FailedAttemptLimit; _signonControl.ForceSignoff = newControlSettings.ForceSignoff; _signonControl.RestrictSignon = newControlSettings.RestrictSignon; _signonControl.RestrictSignonMsg = newControlSettings.RestrictSignonMsg; _signonControl.SignoffWarningMsg = newControlSettings.SignoffWarningMsg; _signonControl.StatusSeconds = newControlSettings.StatusSeconds; _signonControl.TimeOutSeconds = newControlSettings.TimeOutSeconds; _signonControl.LastModifiedByUserCode = newControlSettings.LastModifiedByUserCode; _signonControl.LastModifiedByDateTime = newControlSettings.LastModifiedByDateTime; return(true); } else { return(false); } }