Example #1
0
 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;
 }
Example #2
0
 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);
                }
	        }
        }