예제 #1
0
        private static bool ExecutePriority(string connectionString, string priorityValue, out int status, out int ruleCount)
        {
            int  tempStatus  = 0;
            bool executeRule = false;

            List <lfa.pmgmt.data.DTO.BusinessRule.Load> loadList = new List <data.DTO.BusinessRule.Load>();

            lfa.pmgmt.data.DAO.BusinessRule.Load loadDAO = new data.DAO.BusinessRule.Load();
            loadDAO.ConnectionString = connectionString;

            loadList = loadDAO.List();

            int currentUnitLoad = 0;

            if (loadList[0].ManualLoad > 0)
            {
                currentUnitLoad = loadList[0].ManualLoad;
            }
            else
            {
                currentUnitLoad = loadList[0].CurrentLoad;
            }

            lfa.pmgmt.data.DAO.BusinessRule.RuleSet ruleSetDAO = new data.DAO.BusinessRule.RuleSet();
            ruleSetDAO.ConnectionString = connectionString;

            List <lfa.pmgmt.data.DTO.BusinessRule.Priority> priorityRules = ruleSetDAO.ListPriority(priorityValue);

            int tmpRuleCount = 0;

            foreach (lfa.pmgmt.data.DTO.BusinessRule.Priority priorityRule in priorityRules)
            {
                if (priorityRule.PriorityType.ToLower().Equals(priorityValue.ToLower()))
                {
                    lfa.pmgmt.data.DAO.BusinessRule.Rule ruleDAO = new data.DAO.BusinessRule.Rule();
                    ruleDAO.ConnectionString = connectionString;

                    List <lfa.pmgmt.data.DTO.BusinessRule.Rule> ruleDTOList = ruleDAO.GetFromRuleSet(priorityRule.Id_RuleSet);

                    tmpRuleCount = ruleDTOList.Count;

                    foreach (lfa.pmgmt.data.DTO.BusinessRule.Rule ruleDTO in ruleDTOList)
                    {
                        if (executeRule)
                        {
                            break;
                        }

                        string[] ruleArray  = ruleDTO.Condition.Split(".".ToCharArray());
                        int      unitId     = int.Parse(ruleArray[0].ToString());
                        int      deviceId   = int.Parse(ruleArray[1].ToString());
                        string   mathMetric = ruleArray[2].ToString();
                        int      loadValue  = int.Parse(ruleArray[3].ToString());

                        string[] resultArray = ruleDTO.Result.Split(".".ToCharArray());
                        tempStatus = int.Parse(resultArray[2].ToString());

                        switch (mathMetric)
                        {
                        case "<=":
                            executeRule = CurrentLoadSmallerThenEqualsValue(executeRule, loadValue, currentUnitLoad);
                            break;

                        case ">=":
                            executeRule = CurrentLoadBiggerThenEqualsValue(executeRule, loadValue, currentUnitLoad);
                            break;

                        case "<":
                            executeRule = CurrentLoadSmallerThenValue(executeRule, loadValue, currentUnitLoad);
                            break;

                        case ">":
                            executeRule = CurrentLoadBiggerThenValue(executeRule, loadValue, currentUnitLoad);
                            break;

                        case "==":
                            executeRule = CurrentLoadEqualsValue(executeRule, loadValue, currentUnitLoad);
                            break;
                        }
                    }

                    if (executeRule)
                    {
                        break;
                    }
                }

                if (executeRule)
                {
                    break;
                }
            }

            status    = tempStatus;
            ruleCount = tmpRuleCount;

            return(executeRule);
        }
예제 #2
0
        private static bool ExecutePriority(string connectionString, string priorityValue, out int status, out int ruleCount)
        {
            int tempStatus = 0;
            bool executeRule = false;

            List<lfa.pmgmt.data.DTO.BusinessRule.Load> loadList = new List<data.DTO.BusinessRule.Load>();

            lfa.pmgmt.data.DAO.BusinessRule.Load loadDAO = new data.DAO.BusinessRule.Load();
            loadDAO.ConnectionString = connectionString;

            loadList = loadDAO.List();

            int currentUnitLoad = 0;

            if (loadList[0].ManualLoad > 0)
            {
                currentUnitLoad = loadList[0].ManualLoad;
            }
            else
            {
                currentUnitLoad = loadList[0].CurrentLoad;
            }

            //System.Diagnostics.EventLog.WriteEntry("BUGGER", currentUnitLoad.ToString(), System.Diagnostics.EventLogEntryType.Warning);

            lfa.pmgmt.data.DAO.BusinessRule.RuleSet ruleSetDAO = new data.DAO.BusinessRule.RuleSet();
            ruleSetDAO.ConnectionString = connectionString;

            List<lfa.pmgmt.data.DTO.BusinessRule.Priority> priorityRules = ruleSetDAO.ListPriority(priorityValue);

            int tmpRuleCount = 0;

            foreach (lfa.pmgmt.data.DTO.BusinessRule.Priority priorityRule in priorityRules)
            {
                if (priorityRule.PriorityType.ToLower().Equals(priorityValue.ToLower()))
                {
                    lfa.pmgmt.data.DAO.BusinessRule.Rule ruleDAO = new data.DAO.BusinessRule.Rule();
                    ruleDAO.ConnectionString = connectionString;

                    List<lfa.pmgmt.data.DTO.BusinessRule.Rule> ruleDTOList = ruleDAO.GetFromRuleSet(priorityRule.Id_RuleSet);

                    tmpRuleCount = ruleDTOList.Count;

                    foreach (lfa.pmgmt.data.DTO.BusinessRule.Rule ruleDTO in ruleDTOList)
                    {
                        if (executeRule)
                        {
                            break;
                        }

                        string[] ruleArray = ruleDTO.Condition.Split(".".ToCharArray());
                        int unitId = int.Parse(ruleArray[0].ToString());
                        int deviceId = int.Parse(ruleArray[1].ToString());
                        string mathMetric = ruleArray[2].ToString();
                        int loadValue = int.Parse(ruleArray[3].ToString());

                        string[] resultArray = ruleDTO.Result.Split(".".ToCharArray());
                        tempStatus = int.Parse(resultArray[2].ToString());

                        switch (mathMetric)
                        {
                            case "<=":
                                executeRule = CurrentLoadSmallerThenEqualsValue(executeRule, loadValue, currentUnitLoad);
                                break;
                            case ">=":
                                executeRule = CurrentLoadBiggerThenEqualsValue(executeRule, loadValue, currentUnitLoad);
                                break;
                            case "<":
                                executeRule = CurrentLoadSmallerThenValue(executeRule, loadValue, currentUnitLoad);
                                break;
                            case ">":
                                executeRule = CurrentLoadBiggerThenValue(executeRule, loadValue, currentUnitLoad);
                                break;
                            case "==":
                                executeRule = CurrentLoadEqualsValue(executeRule, loadValue, currentUnitLoad);
                                break;
                        }

                    }

                    if (executeRule)
                    {
                        break;
                    }
                }

                if (executeRule)
                {
                    break;
                }
            }

            status = tempStatus;
            ruleCount = tmpRuleCount;

            return executeRule;
        }
예제 #3
0
        private static bool ExecutePriority(string connectionString, string priorityValue)
        {
            bool executeRule = false;

            List <lfa.pmgmt.data.DTO.BusinessRule.Load> loadList = new List <data.DTO.BusinessRule.Load>();

            lfa.pmgmt.data.DAO.BusinessRule.Load loadDAO = new data.DAO.BusinessRule.Load();
            loadDAO.ConnectionString = connectionString;

            loadList = loadDAO.List();

            int currentUnitLoad = loadList[0].CurrentLoad;

            lfa.pmgmt.data.DAO.BusinessRule.RuleSet ruleSetDAO = new data.DAO.BusinessRule.RuleSet();
            ruleSetDAO.ConnectionString = connectionString;

            List <lfa.pmgmt.data.DTO.BusinessRule.Priority> priorityRules = ruleSetDAO.ListPriority();

            foreach (lfa.pmgmt.data.DTO.BusinessRule.Priority priorityRule in priorityRules)
            {
                if (priorityRule.PriorityType.ToLower().Equals(priorityValue.ToLower()))
                {
                    lfa.pmgmt.data.DAO.BusinessRule.Rule ruleDAO = new data.DAO.BusinessRule.Rule();
                    ruleDAO.ConnectionString = connectionString;

                    lfa.pmgmt.data.DTO.BusinessRule.Rule ruleDTO = ruleDAO.GetFromRuleSet(priorityRule.Id_RuleSet);

                    string[] ruleArray  = ruleDTO.Condition.Split(".".ToCharArray());
                    int      unitId     = int.Parse(ruleArray[0].ToString());
                    int      deviceId   = int.Parse(ruleArray[1].ToString());
                    string   mathMetric = ruleArray[2].ToString();
                    int      loadValue  = int.Parse(ruleArray[3].ToString());

                    switch (mathMetric)
                    {
                    case "<=":
                        executeRule = CurrentLoadSmallerThenEqualsValue(executeRule, loadValue, currentUnitLoad);
                        break;

                    case ">=":
                        executeRule = CurrentLoadBiggerThenEqualsValue(executeRule, loadValue, currentUnitLoad);
                        break;

                    case "<":
                        executeRule = CurrentLoadSmallerThenValue(executeRule, loadValue, currentUnitLoad);
                        break;

                    case ">":
                        executeRule = CurrentLoadBiggerThenValue(executeRule, loadValue, currentUnitLoad);
                        break;

                    case "==":
                        executeRule = CurrentLoadEqualsValue(executeRule, loadValue, currentUnitLoad);
                        break;
                    }
                }
            }

            #region OBSOLETE
            //int currentUnitLoad = loadList[0].CurrentLoad;
            //int maxLoad = loadList[0].MaximumLoad;

            //if (currentUnitLoad >= maxLoad)
            //{
            //    executePriority = true;
            //}
            #endregion

            return(executeRule);
        }
예제 #4
0
        private static bool ExecutePriority(string connectionString, string priorityValue)
        {
            bool executeRule = false;

            List<lfa.pmgmt.data.DTO.BusinessRule.Load> loadList = new List<data.DTO.BusinessRule.Load>();

            lfa.pmgmt.data.DAO.BusinessRule.Load loadDAO = new data.DAO.BusinessRule.Load();
            loadDAO.ConnectionString = connectionString;

            loadList = loadDAO.List();

            int currentUnitLoad = loadList[0].CurrentLoad;

            lfa.pmgmt.data.DAO.BusinessRule.RuleSet ruleSetDAO = new data.DAO.BusinessRule.RuleSet();
            ruleSetDAO.ConnectionString = connectionString;

            List<lfa.pmgmt.data.DTO.BusinessRule.Priority> priorityRules = ruleSetDAO.ListPriority();

            foreach (lfa.pmgmt.data.DTO.BusinessRule.Priority priorityRule in priorityRules)
            {
                if(priorityRule.PriorityType.ToLower().Equals(priorityValue.ToLower()))
                {
                    lfa.pmgmt.data.DAO.BusinessRule.Rule ruleDAO = new data.DAO.BusinessRule.Rule();
                    ruleDAO.ConnectionString = connectionString;

                    lfa.pmgmt.data.DTO.BusinessRule.Rule ruleDTO = ruleDAO.GetFromRuleSet(priorityRule.Id_RuleSet);

                    string[] ruleArray = ruleDTO.Condition.Split(".".ToCharArray());
                    int unitId = int.Parse(ruleArray[0].ToString());
                    int deviceId = int.Parse(ruleArray[1].ToString());
                    string mathMetric = ruleArray[2].ToString();
                    int loadValue = int.Parse(ruleArray[3].ToString());

                    switch (mathMetric)
                    {
                        case "<=":
                            executeRule = CurrentLoadSmallerThenEqualsValue(executeRule, loadValue, currentUnitLoad);
                            break;
                        case ">=":
                            executeRule = CurrentLoadBiggerThenEqualsValue(executeRule, loadValue, currentUnitLoad);
                            break;
                        case "<":
                            executeRule = CurrentLoadSmallerThenValue(executeRule, loadValue, currentUnitLoad);
                            break;
                        case ">":
                            executeRule = CurrentLoadBiggerThenValue(executeRule, loadValue, currentUnitLoad);
                            break;
                        case "==":
                            executeRule = CurrentLoadEqualsValue(executeRule, loadValue, currentUnitLoad);
                            break;
                    }
                }
            }

            #region OBSOLETE
            //int currentUnitLoad = loadList[0].CurrentLoad;
            //int maxLoad = loadList[0].MaximumLoad;

            //if (currentUnitLoad >= maxLoad)
            //{
            //    executePriority = true;
            //}
            #endregion

            return executeRule;
        }