public PageExpression GetPage(AchieveRequest request) { var result = new PageExpression(); try { PageLogger.RecordInfoLog(String.Format("GetPage {0}.{1}", request.Id, request.UserName)); var user = UserInfoMaintenance.Instance[request.UserName]; if (user != null && user.Token == request.UserToken) { result.Result = ResponseResult.Success; var example = PageExampleMaintenance.Instance.AddPageExample(request, user.GetAdminIdx()); if (example != null) { example.Refresh(); result = example.Expression; } } else { result.Result = ResponseResult.UnAuthenticate; } } catch (Exception ex) { result.Result = ResponseResult.Fault; PageLogger.RecordErrorLog("GetPage", ex); } return result; }
public object Clone() { var result = new PageExpression(); result.Id = Id; result.InstanceId = InstanceId; result.Result = Result; result.Meta = Meta.Clone() as PageMeta; foreach (var item in Children) { result.Children.Add(item.Clone() as PageControl); } return result; }
private static void EvaluatePage(AchieveRequest request, PageScheme scheme, PageContext context) { var expression = new PageExpression(); var evaluate = new PageEvaluataion(); expression.Id = request.Id; expression.InstanceId = request.InstanceId; expression.Meta = scheme.Meta.Clone() as PageMeta; evaluate.InputParameters = request.Parameters; evaluate.InputUserName = request.UserName; evaluate.InputUserToken = request.UserToken; evaluate.PageParameters = EvaluateParameters(request, scheme); EvaluatePageControl(scheme, expression, evaluate); context.Expression = expression; context.Evaluataion = evaluate; }
private static void EvaluatePageControl(PageScheme scheme, PageExpression expression, PageEvaluataion evaluate) { foreach (var control in scheme.Children) { var expressionControl = control.Clone() as PageControl; expressionControl.Children.Clear(); var evaluationControl = new ControlEvaluataion(); evaluationControl.ControlId = control.Id; EvaluatePageControlProperty(control, expressionControl, evaluationControl); EvaluatePageControlEvent(control, expressionControl, evaluationControl); expression.Children.Add(expressionControl); if (evaluationControl.Propertys.Count > 0 || evaluationControl.Events.Count > 0) { evaluate.PageControls.Add(evaluationControl); } foreach (var childControl in control.Children) { RecursionEvaluatePageControl(childControl, expressionControl, evaluate); } } }