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; }
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; }
public override Evaluation VisitParameterList(ParameterListSyntax node) { EvaluationList list = new EvaluationList(); foreach (ParameterSyntax parameter in node.Parameters) { list.Add(parameter.Accept <Evaluation>(this)); } return(list); }
public override Evaluation VisitAccessorList(AccessorListSyntax node) { EvaluationList list = new EvaluationList(); foreach (AccessorDeclarationSyntax accessor in node.Accessors) { list.Add(accessor.Accept <Evaluation>(this)); } return(list); }
public override Evaluation VisitBracketedArgumentList(BracketedArgumentListSyntax node) { EvaluationList list = new EvaluationList(); foreach (ArgumentSyntax argument in node.Arguments) { list.Add(argument.Accept <Evaluation>(this)); } return(list); }
public override Evaluation VisitBaseList(BaseListSyntax node) { EvaluationList list = new EvaluationList(); foreach (BaseTypeSyntax type in node.Types) { list.Add(type.Accept <Evaluation>(this)); } return(list); }
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); }
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; }