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); }
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); }