private TupleInternal <CsdlSemanticsAssociationSetEnd, CsdlSemanticsAssociationSetEnd> ComputeEnds() { CsdlAssociationSetEnd setEnd1 = this.associationSet.End1; CsdlAssociationSetEnd setEnd2 = this.associationSet.End2; IEdmAssociationEnd end1Role = null; IEdmAssociationEnd end2Role = null; bool end1Bad = false; bool end2Bad = false; if (setEnd1 != null) { end1Role = this.GetRole(setEnd1); end1Bad = end1Role is IUnresolvedElement; } if (setEnd2 != null) { end2Role = this.GetRole(setEnd2); end2Bad = end2Role is IUnresolvedElement; } // This is not an else statement above because the logic here depends on end2 having been calculated. if (setEnd1 == null) { if (end2Bad) { end1Role = new UnresolvedAssociationEnd(this.Association, "End1", this.Location); end1Bad = true; } else { if (end2Role != null) { end1Role = (end2Role != this.Association.End1) ? this.Association.End1 : this.Association.End2; } else { end1Role = this.Association.End1; } } } // This is not an else statement above because the logic here depends on end1 having been calculated. if (setEnd2 == null) { if (end1Bad) { end2Role = new UnresolvedAssociationEnd(this.Association, "End2", this.Location); end2Bad = true; } else { end2Role = (end1Role != this.Association.End1) ? this.Association.End1 : this.Association.End2; } } return(TupleInternal.Create( new CsdlSemanticsAssociationSetEnd(this, this.associationSet.End1, end1Role), new CsdlSemanticsAssociationSetEnd(this, this.associationSet.End2, end2Role))); }
private TupleInternal <IEdmAssociationEnd, IEdmAssociationEnd> ComputeEnds() { IEdmAssociationEnd csdlSemanticsAssociationEnd; IEdmAssociationEnd edmAssociationEnd; if (this.association.End1 != null) { csdlSemanticsAssociationEnd = new CsdlSemanticsAssociationEnd(this.context, this, this.association.End1); } else { EdmError[] edmError = new EdmError[1]; edmError[0] = new EdmError(base.Location, EdmErrorCode.InvalidAssociation, Strings.CsdlParser_InvalidAssociationIncorrectNumberOfEnds(string.Concat(this.Namespace, ".", this.Name))); IEdmAssociationEnd badAssociationEnd = new BadAssociationEnd(this, "End1", edmError); csdlSemanticsAssociationEnd = badAssociationEnd; } if (this.association.End2 != null) { edmAssociationEnd = new CsdlSemanticsAssociationEnd(this.context, this, this.association.End2); } else { EdmError[] edmErrorArray = new EdmError[1]; edmErrorArray[0] = new EdmError(base.Location, EdmErrorCode.InvalidAssociation, Strings.CsdlParser_InvalidAssociationIncorrectNumberOfEnds(string.Concat(this.Namespace, ".", this.Name))); IEdmAssociationEnd badAssociationEnd1 = new BadAssociationEnd(this, "End2", edmErrorArray); edmAssociationEnd = badAssociationEnd1; } return(TupleInternal.Create <IEdmAssociationEnd, IEdmAssociationEnd>(csdlSemanticsAssociationEnd, edmAssociationEnd)); }
private TupleInternal <CsdlSemanticsAssociationSetEnd, CsdlSemanticsAssociationSetEnd> ComputeEnds() { IEdmAssociationEnd end1; IEdmAssociationEnd end2; CsdlAssociationSetEnd csdlAssociationSetEnd = this.associationSet.End1; CsdlAssociationSetEnd end21 = this.associationSet.End2; IEdmAssociationEnd role = null; IEdmAssociationEnd unresolvedAssociationEnd = null; bool flag = false; bool flag1 = false; if (csdlAssociationSetEnd != null) { role = this.GetRole(csdlAssociationSetEnd); flag = role is IUnresolvedElement; } if (end21 != null) { unresolvedAssociationEnd = this.GetRole(end21); flag1 = unresolvedAssociationEnd is IUnresolvedElement; } if (csdlAssociationSetEnd == null) { if (!flag1) { if (unresolvedAssociationEnd == null) { role = this.Association.End1; } else { if (unresolvedAssociationEnd != this.Association.End1) { end2 = this.Association.End1; } else { end2 = this.Association.End2; } role = end2; } } else { role = new UnresolvedAssociationEnd(this.Association, "End1", base.Location); flag = true; } } if (end21 == null) { if (!flag) { if (role != this.Association.End1) { end1 = this.Association.End1; } else { end1 = this.Association.End2; } unresolvedAssociationEnd = end1; } else { unresolvedAssociationEnd = new UnresolvedAssociationEnd(this.Association, "End2", base.Location); } } return(TupleInternal.Create <CsdlSemanticsAssociationSetEnd, CsdlSemanticsAssociationSetEnd>(new CsdlSemanticsAssociationSetEnd(this, this.associationSet.End1, role), new CsdlSemanticsAssociationSetEnd(this, this.associationSet.End2, unresolvedAssociationEnd))); }
private TupleInternal <IEdmAssociationEnd, IEdmAssociationEnd> ComputeEnds() { return(TupleInternal.Create( (this.association.End1 != null) ? new CsdlSemanticsAssociationEnd(this.context, this, this.association.End1) : (IEdmAssociationEnd) new BadAssociationEnd(this, "End1", new EdmError[] { new EdmError(this.Location, EdmErrorCode.InvalidAssociation, Edm.Strings.CsdlParser_InvalidAssociationIncorrectNumberOfEnds(this.Namespace + "." + this.Name)) }), (this.association.End2 != null) ? new CsdlSemanticsAssociationEnd(this.context, this, this.association.End2) : (IEdmAssociationEnd) new BadAssociationEnd(this, "End2", new EdmError[] { new EdmError(this.Location, EdmErrorCode.InvalidAssociation, Edm.Strings.CsdlParser_InvalidAssociationIncorrectNumberOfEnds(this.Namespace + "." + this.Name)) }))); }