示例#1
0
        private void TraceTagEvaluated(TagValue value)
        {
            Dictionary <TagType, TagValue> memoriesValuesForPrensa = new Dictionary <TagType, TagValue>();
            Conditions evalConditions = new RequestManager.Conditions.Conditions();

            //Recogemos el valor de cada uno de los tags relacionados con PrensaId
            foreach (var item in Enum.GetNames(typeof(TagType)))
            {
                TagType tagType     = (TagType)Enum.Parse(typeof(TagType), item);
                var     memoryValue = _datosEnMemoria.GetTagValue(value.Id_Prensa, tagType);
                memoriesValuesForPrensa.Add(tagType, memoryValue);
            }
            //Evaluamos condiciones relacionadas con el tag que ha cambiado
            listBox1.Items.Add("Tag Evaluado: " + value.Type);
            listBox1.Items.Add("Tag " + value.Type + " a cambiado de " + memoriesValuesForPrensa[value.Type] + " a " + value.Value);
            List <ICondition> conditionsEvalToApply = evalConditions.GetConditions(value.Type);

            foreach (ICondition cond in conditionsEvalToApply)
            {
                bool validation = cond.validateCondition(value, memoriesValuesForPrensa[value.Type]);
                if (validation == true)
                {
                    switch (cond.action)
                    {
                    case ActionForRequest.Delete:
                        listBox1.Items.Add("Solicitud borrada");
                        break;

                    case ActionForRequest.Generated:
                        listBox1.Items.Add("Solicitud Creada");
                        break;
                    }
                }
            }
        }
示例#2
0
        /// <summary>
        /// Método al que se llama cada vez que llegan valores al dataprovider para evaluar las reglas aqui cargadas
        /// </summary>
        /// <param name="value"></param>
        public void EvaluateData(TagValue value)
        {
            try
            {
                Dictionary <TagType, TagValue>       memoriesValuesForPrensa = new Dictionary <TagType, TagValue>();
                RequestManager.Conditions.Conditions evalConditions          = new RequestManager.Conditions.Conditions();
                //Recogemos el valor de cada uno de los tags relacionados con PrensaId
                foreach (var item in Enum.GetNames(typeof(TagType)))
                {
                    TagType tagType     = (TagType)Enum.Parse(typeof(TagType), item);
                    var     memoryValue = _datosEnMemoria.GetTagValue(value.Id_Prensa, tagType);
                    memoriesValuesForPrensa.Add(tagType, memoryValue);
                }
                //Evaluamos condiciones relacionadas con el tag que ha cambiado

                List <ICondition> conditionsEvalToApply            = evalConditions.GetConditions(value.Type);
                KeyValuePair <long, PendingRequestLogic> solicitud = this._solicitudesGeneradas.GetAll().Where(x => x.Value.GetIdPrensa == value.Id_Prensa).SingleOrDefault();
                foreach (ICondition cond in conditionsEvalToApply)
                {
                    bool validation = cond.validateCondition(value, memoriesValuesForPrensa[value.Type]);
                    if (validation == true)
                    {
                        switch (cond.action)
                        {
                        case ActionForRequest.Delete:
                            this._solicitudesGeneradas.Remove(value.Id_Prensa);
                            break;

                        case ActionForRequest.Generated:
                            this._solicitudesGeneradas.Add(value.Id_Prensa);
                            break;
                        }
                    }
                }
            }
            catch (Exception er)
            {
                log.Error("EvaluateData()", er);
            }
        }