Exemple #1
0
        private async Task LoadData()
        {
            this.IsBusy = true;

            var mth = new PositionDetail()
            {
                PositionID = this.ID
            };

            this.Data = await API.ApiClient.Execute(mth);

            this.NotifyOfPropertyChange(() => this.Data);

            var mth2 = new EvaluationList()
            {
                PositionID = this.ID
            };
            var evs = await API.ApiClient.Execute(mth2);

            this.Evaluations.AddRange(evs.Select(e => new EvaluationViewModel(e)));
            this.NotifyOfPropertyChange(() => this.Evaluations);

            this.HasEvaluations     = this.Evaluations.Count > 0;
            this.NotHaveEvaluations = !this.HasEvaluations;
            this.NotifyOfPropertyChange(() => this.HasEvaluations);
            this.NotifyOfPropertyChange(() => this.NotHaveEvaluations);

            this.IsBusy = false;
        }
Exemple #2
0
        public override Evaluation VisitObjectCreationExpression(ObjectCreationExpressionSyntax node)
        {
            //node.ArgumentList?.Accept(this);
            Evaluation     evaluation = node.Initializer?.Accept <Evaluation>(this); //TODO - choose ret
            EvaluationList accept     = node.ArgumentList.Accept <Evaluation>(this) as EvaluationList;


            node.Type?.Accept <Evaluation>(this);

            ITypeSymbol type = node.Type.GetSymbol(_comp) as ITypeSymbol;

            Instance instance = _callStack.Peek().CreateInstance(type, type.ToNodeKind());

            GraphBuilder <Evaluation> .From(_callStack.Peek().Node).Kind(EdgeKind.CreatesObject).To(instance.Node);

            InitializeInstance(instance);

            FunctionalFrame constructor = instance.InstanceHeap.CreateFrame(node.GetReference(), _comp, type.ToNodeKind());

            GraphBuilder <Evaluation> .From(instance.Node).Kind(EdgeKind.InvokesMember).To(constructor.Node);

            SimulateFrame(constructor, EvaluationUtil.From <Instance>(accept).ToArray());

            return(instance);
        }
 public void TestEvaluationList()
 {
     var method = new EvaluationList()
     {
         PositionID = 1178538
     };
     var a = ApiClient.Execute(method).Result;
 }
Exemple #4
0
        public override Evaluation VisitParameterList(ParameterListSyntax node)
        {
            EvaluationList list = new EvaluationList();

            foreach (ParameterSyntax parameter in node.Parameters)
            {
                list.Add(parameter.Accept <Evaluation>(this));
            }

            return(list);
        }
Exemple #5
0
        public override Evaluation VisitAccessorList(AccessorListSyntax node)
        {
            EvaluationList list = new EvaluationList();

            foreach (AccessorDeclarationSyntax accessor in node.Accessors)
            {
                list.Add(accessor.Accept <Evaluation>(this));
            }

            return(list);
        }
Exemple #6
0
        public override Evaluation VisitBracketedArgumentList(BracketedArgumentListSyntax node)
        {
            EvaluationList list = new EvaluationList();

            foreach (ArgumentSyntax argument in node.Arguments)
            {
                list.Add(argument.Accept <Evaluation>(this));
            }

            return(list);
        }
Exemple #7
0
        public override Evaluation VisitBaseList(BaseListSyntax node)
        {
            EvaluationList list = new EvaluationList();

            foreach (BaseTypeSyntax type in node.Types)
            {
                list.Add(type.Accept <Evaluation>(this));
            }

            return(list);
        }
Exemple #8
0
        public override Evaluation VisitAttributeList(AttributeListSyntax node)
        {
            EvaluationList list = new EvaluationList();

            foreach (AttributeSyntax attribute in node.Attributes)
            {
                list.Add(attribute.Accept <Evaluation>(this));
            }

            node.Target?.Accept <Evaluation>(this);

            return(list);
        }
Exemple #9
0
        public override Evaluation VisitInvocationExpression(InvocationExpressionSyntax node)
        {
            EvaluationList args             = node.ArgumentList?.Accept <Evaluation>(this) as EvaluationList;
            Evaluation     methodExpression = node.Expression?.Accept <Evaluation>(this);

            IMethodSymbol declaringSymbol = node.GetSymbol(_comp) as IMethodSymbol;

            if (declaringSymbol == null)
            {
                throw new Exception("Unhandled symbol type");
            }

            if (declaringSymbol.DeclaringSyntaxReferences.Length != 1)
            {
                throw new Exception("Unhandled declaring references length");
            }

            SyntaxReference methReference = declaringSymbol.DeclaringSyntaxReferences.FirstOrDefault();

            Frame newFrame = null;

            if (declaringSymbol.IsStatic)
            {
                //static method calls have no "instance"
                newFrame = StaticInstance.InstanceHeap.CreateFrame(methReference, _comp, declaringSymbol.ToNodeKind());
            }
            else
            {
                //method call on an instance
                IEnumerable <Instance> findInstance = FindInstance(node.GetReference());
                if (findInstance.Count() != 1)
                {
                    throw new Exception("Unhandled instance length");
                }

                Instance instance = findInstance.FirstOrDefault();
                newFrame = instance.InstanceHeap.CreateFrame(methReference, _comp, declaringSymbol.ToNodeKind());
            }

            //TODO link expression target to invocation
            SimulateFrame(newFrame, EvaluationUtil.From <Instance>(args).ToArray());

            return(base.VisitInvocationExpression(node));
        }
        private async Task LoadData() {

            this.IsBusy = true;

            var mth = new PositionDetail() {
                PositionID = this.ID
            };
            this.Data = await API.ApiClient.Execute(mth);
            this.NotifyOfPropertyChange(() => this.Data);

            if (this.Data != null) {
                this._title = $"{Data.JobTitle} - {Data.CompanyName}";
                this.NotifyOfPropertyChange(() => this.Title);
            }

            var mth2 = new EvaluationList() {
                PositionID = this.ID
            };
            var evs = await API.ApiClient.Execute(mth2);
            this.Evaluations.AddRange(evs.Select(e => new EvaluationViewModel(e)));
            this.NotifyOfPropertyChange(() => this.Evaluations);

            this.HasEvaluations = this.Evaluations.Count > 0;
            this.NotHaveEvaluations = !this.HasEvaluations;
            this.NotifyOfPropertyChange(() => this.HasEvaluations);
            this.NotifyOfPropertyChange(() => this.NotHaveEvaluations);

            this.IsBusy = false;
        }
Exemple #11
0
 public void TestEvaluationList() {
     var method = new EvaluationList() {
         PositionID = 1178538
     };
     var a = ApiClient.Execute(method).Result;
 }