Exemplo n.º 1
0
 /// <summary>
 /// Executes this instance.
 /// </summary>
 /// <param name="decisionSession">The decision session.</param>
 /// <exception cref="System.NotImplementedException"></exception>
 public void Execute(Model.DecisionModels.Decision decisionSession)
 {
     foreach (DecisionSubject decisionSubject in decisionSession.DecisionArray)
     {
         decisionSubject.FinalRate = System.Math.Round(decisionSubject.FinalRate * 100);
     }
 }
Exemplo n.º 2
0
 /// <summary>
 /// Counts the decision.
 /// </summary>
 /// <param name="decisionSession">The decision session.</param>
 /// <returns></returns>
 /// <exception cref="ArgumentNullException"><paramref /> or <paramref /> is null.</exception>
 private Model.DecisionModels.Decision CountDecision(Model.DecisionModels.Decision decisionSession)
 {
     foreach (DecisionSubject decisionSubject in decisionSession.DecisionArray)
     {
         decisionSubject.FinalRate = decisionSubject.CriteriaArray
                                     .Sum(criterion => criterion.CriterionPriority * criterion.ValuePriority);
     }
     return(decisionSession);
 }
Exemplo n.º 3
0
        /// <summary>
        /// Counts the decision.
        /// </summary>
        /// <param name="decision">The decision.</param>
        public DecisionViewModel CountDecision(DecisionViewModel decision)
        {
            Model.DecisionModels.Decision workflowDecision = Mapper.Map <Model.DecisionModels.Decision>(decision);

            foreach (IDecisionExecutionComponent decisionExecutionComponent in this.DecisionExecutionComponents)
            {
                decisionExecutionComponent.Execute(workflowDecision);
            }

            return(Mapper.Map <DecisionViewModel>(workflowDecision));
        }
Exemplo n.º 4
0
 /// <summary>
 /// Counts the local priorities.
 /// </summary>
 /// <param name="decisionSession">The decision session.</param>
 private void CountLocalPriorities(Model.DecisionModels.Decision decisionSession)
 {
     for (int i = 0; i < decisionSession.DecisionArray.First().CriteriaArray.Count(); i++)
     {
         List <Criterion> list = decisionSession.DecisionArray.Select(decisionSubject => decisionSubject.CriteriaArray[i]).ToList();
         double[]         c    = this._decisionMath.CountPriorities(list.Select(x => (double)x.ValueRate).ToArray());
         for (int j = 0; j < c.Length; j++)
         {
             list[j].ValuePriority = c[j];
         }
     }
 }
Exemplo n.º 5
0
        /// <summary>
        /// Counts the global decision.
        /// </summary>
        /// <param name="decisionSession">The decision session.</param>
        /// <returns></returns>
        /// <exception cref="ArgumentNullException"><paramref /> or <paramref /> is null.</exception>
        /// <exception cref="OverflowException">The number of elements in <paramref /> is larger than <see cref="F:System.Int32.MaxValue" />.</exception>
        /// <exception cref="ArgumentOutOfRangeException"><paramref /> is not a valid index in the <see cref="T:System.Collections.Generic.IList`1" />.</exception>
        /// <exception cref="NotSupportedException">The property is set and the <see cref="T:System.Collections.Generic.IList`1" /> is read-only.</exception>
        public Model.DecisionModels.Decision CountGlobalDecision(Model.DecisionModels.Decision decisionSession)
        {
            foreach (DecisionSubject decisionSubject in decisionSession.DecisionArray)
            {
                double[] criteriaRateArray = decisionSubject.CriteriaArray.Select(x => (double)x.Rate).ToArray();
                double[] countedPrioritise = this._decisionMath.CountPriorities(criteriaRateArray);
                int      count             = decisionSubject.CriteriaArray.Count();
                for (int i = 0; i < count; i++)
                {
                    decisionSubject.CriteriaArray[i].CriterionPriority = countedPrioritise[i];
                }
            }

            this.CountLocalPriorities(decisionSession);

            return(this.CountDecision(decisionSession));
        }
Exemplo n.º 6
0
 /// <summary>
 /// Executes this instance.
 /// </summary>
 /// <param name="decisionSession">The decision session.</param>
 /// <returns></returns>
 /// <exception cref="OverflowException">The number of elements in <paramref /> is larger than <see cref="F:System.Int32.MaxValue" />.</exception>
 public void Execute(Model.DecisionModels.Decision decisionSession)
 {
     this.MathManager.CountGlobalDecision(decisionSession);
 }