Exemplo n.º 1
0
        private CartDetailDto GetCartData(string e)
        {
            CartDetailDto result = new CartDetailDto();

            if (e.Contains('.'))
            {
                var field = GetCartName(e);

                switch (field.Item1.ToLower())
                {
                case "zcfz":
                    var d = _typeHelper.GetPropertyAccess <ZCFZ, string>(field.Item2);
                    result.Data = _bill.Select(d).Select(x => string.IsNullOrEmpty(x) ? 0 : Convert.ToDecimal(x));
                    result.Name = _typeHelper.GetPropertyDescribe <ZCFZ>(field.Item2);
                    break;

                case "lr":
                    var lrd = _typeHelper.GetPropertyAccess <LRB, string>(field.Item2);
                    result.Data = _profit.Select(lrd).Select(x => string.IsNullOrEmpty(x) ? 0 : Convert.ToDecimal(x));
                    result.Name = _typeHelper.GetPropertyDescribe <LRB>(field.Item2);
                    break;

                case "xjll":
                    var xjlld = _typeHelper.GetPropertyAccess <XJLLB, string>(field.Item2);
                    result.Data = _cash.Select(xjlld).Select(x => string.IsNullOrEmpty(x) ? 0 : Convert.ToDecimal(x));
                    result.Name = _typeHelper.GetPropertyDescribe <XJLLB>(field.Item2);
                    break;
                }
                result.FieldName = field.Item2;
            }

            return(result);
        }
Exemplo n.º 2
0
        public CartDetailDto GetCartByExperssion(Queue <string> queue)
        {
            Stack <string> variable = new Stack <string>();
            CartDetailDto  computedVar = null;
            string         s, name = string.Empty;

            while (queue.Count > 0)
            {
                s = queue.Dequeue();
                if (_stringAnylize.IsOperation(s))
                {
                    if (computedVar == null)
                    {
                        computedVar = GetCartData(variable.Pop());
                    }

                    var v1 = GetCartData(variable.Pop());
                    computedVar.Data = Add(computedVar.Data, v1.Data);
                }
                else if (queue.Count == 0)
                {
                    computedVar = GetCartData(s);
                }
                else
                {
                    variable.Push(s);
                }
            }
            return(computedVar);
        }