private IEnumerable <IEdmEnumMember> ComputeMembers() { var members = new List <IEdmEnumMember>(); // Walk the members and assign implicit values where needed. long previousValue = -1; foreach (CsdlEnumMember member in this.enumeration.Members) { IEdmEnumMember semanticsMember; long? implicitValue = null; if (!member.Value.HasValue) { if (previousValue < long.MaxValue) { implicitValue = previousValue + 1; previousValue = implicitValue.Value; member.Value = implicitValue; semanticsMember = new CsdlSemanticsEnumMember(this, member); } else { semanticsMember = new CsdlSemanticsEnumMember(this, member); } semanticsMember.SetIsValueExplicit(this.Model, false); } else { previousValue = member.Value.Value; semanticsMember = new CsdlSemanticsEnumMember(this, member); semanticsMember.SetIsValueExplicit(this.Model, true); } members.Add(semanticsMember); } return(members); }
private IEnumerable<IEdmEnumMember> ComputeMembers() { var members = new List<IEdmEnumMember>(); // Walk the members and assign implicit values where needed. long previousValue = -1; foreach (CsdlEnumMember member in this.enumeration.Members) { IEdmEnumMember semanticsMember; long? implicitValue = null; if (!member.Value.HasValue) { if (previousValue < long.MaxValue) { implicitValue = previousValue + 1; previousValue = implicitValue.Value; member.Value = implicitValue; semanticsMember = new CsdlSemanticsEnumMember(this, member); } else { semanticsMember = new CsdlSemanticsEnumMember(this, member); } semanticsMember.SetIsValueExplicit(this.Model, false); } else { previousValue = member.Value.Value; semanticsMember = new CsdlSemanticsEnumMember(this, member); semanticsMember.SetIsValueExplicit(this.Model, true); } members.Add(semanticsMember); } return members; }