public static Boolean IsNeedAlert(Guid alertID) { if (AlertList == null) { GetAlertConfigs(ABCUserProvider.CurrentUser.ADUserID); } if (AlertList.ContainsKey(alertID) == false) { return(false); } GEAlertsInfo alertInfo = AlertList[alertID]; if (alertInfo == null || alertInfo.GetID() == null) { return(false); } String strQuery = QueryGenerator.GenSelect(alertInfo.TableName, "COUNT(*)", false); strQuery = QueryGenerator.AddCondition(strQuery, alertInfo.ConditionString); object obj = BusinessObjectController.GetData(strQuery); if (obj != null && obj != DBNull.Value) { return(Convert.ToInt32(obj) > 0); } return(false); }
public static String GetAlertQueryString(Guid alertID) { if (AlertList == null) { GetAlertConfigs(ABCUserProvider.CurrentUser.ADUserID); } if (AlertList.ContainsKey(alertID) == false) { return(String.Empty); } if (AlertQueryList.ContainsKey(alertID)) { return(AlertQueryList[alertID]); } GEAlertsInfo alertInfo = AlertList[alertID]; if (alertInfo == null || alertInfo.GetID() == null) { return(String.Empty); } String strQuery = QueryGenerator.GenSelect(alertInfo.TableName, "*", false); strQuery = QueryGenerator.AddCondition(strQuery, alertInfo.ConditionString); #region Filter with current User if (alertInfo.ByUser) { String strFK = DataStructureProvider.GetForeignKeyOfTableName(alertInfo.TableName, "ADUsers"); if (!String.IsNullOrWhiteSpace(strFK) && ABCUserProvider.CurrentUser != null) { strQuery = QueryGenerator.AddCondition(strQuery, String.Format(" {0} = '{1}'", strFK, ABCUserProvider.CurrentUser.ADUserID)); } } if (alertInfo.ByUserGroup) { String strFK = DataStructureProvider.GetForeignKeyOfTableName(alertInfo.TableName, "ADUsers"); if (!String.IsNullOrWhiteSpace(strFK) && ABCUserProvider.CurrentUser != null) { if (ABCUserProvider.CurrentUserGroup != null) { String strQueryUserID = QueryGenerator.AddEqualCondition(QueryGenerator.GenSelect("ADUsers", "ADUserID", false), "FK_ADUserGroupID", ABCUserProvider.CurrentUserGroup.ADUserGroupID); strQuery = QueryGenerator.AddCondition(strQuery, String.Format("{0} IN ({1})", strFK, strQueryUserID)); } } else { strFK = DataStructureProvider.GetForeignKeyOfTableName(alertInfo.TableName, "ADUserGroups"); if (!String.IsNullOrWhiteSpace(strFK) && ABCUserProvider.CurrentUserGroup != null) { strQuery = QueryGenerator.AddCondition(strQuery, String.Format(" {0} = '{1}'", strFK, ABCUserProvider.CurrentUserGroup.ADUserGroupID)); } } } if (alertInfo.ByEmployee) { String strFK = DataStructureProvider.GetForeignKeyOfTableName(alertInfo.TableName, "HREmployees"); if (!String.IsNullOrWhiteSpace(strFK) && ABCUserProvider.CurrentEmployee != null) { strQuery = QueryGenerator.AddCondition(strQuery, String.Format(" {0} = '{1}'", strFK, ABCUserProvider.CurrentEmployee.HREmployeeID)); } } if (alertInfo.ByCompanyUnit) { String strFK = DataStructureProvider.GetForeignKeyOfTableName(alertInfo.TableName, "GECompanyUnits"); if (!String.IsNullOrWhiteSpace(strFK) && ABCUserProvider.CurrentCompanyUnit != null) { strQuery = QueryGenerator.AddCondition(strQuery, String.Format(" {0} = '{1}'", strFK, ABCUserProvider.CurrentCompanyUnit.GECompanyUnitID)); } else { if (!String.IsNullOrWhiteSpace(strFK) && !String.IsNullOrWhiteSpace(DataStructureProvider.GetForeignKeyOfTableName("HREmployees", "GECompanyUnits"))) { String strTemp = QueryGenerator.GenSelect("GECompanyUnits", DataStructureProvider.GetForeignKeyOfTableName("HREmployees", "GECompanyUnits"), false); strQuery = QueryGenerator.AddCondition(strQuery, String.Format(" {0} IN ({1})", strFK, strTemp)); } } } #endregion if (DataStructureProvider.IsTableColumn(alertInfo.TableName, ABCCommon.ABCConstString.colDocumentDate)) { strQuery = strQuery + String.Format(@" ORDER BY {0} DESC", ABCCommon.ABCConstString.colDocumentDate); } AlertQueryList.Add(alertID, strQuery); return(strQuery); }