public static void ValidateIdentity(IProjectionIdentity identity) { if (identity.Field != null && !identity.Schema.Equals(identity.Field.Identity.Schema)) { throw new ProjectionException("Unable to create projection identity. Field schema mismatch."); } }
internal Projection(IProjectionIdentity identity, IProcContext context, IProjectionMetadata metadata) { this.Identity = identity ?? throw ProjectionException.ArgumentNull(nameof(identity)); this.Context = context ?? throw ProjectionException.ArgumentNull(nameof(context)); this.Metadata = metadata ?? throw ProjectionException.FromAttribute(identity.Schema.Model, null, message: "Projection metadata not found."); this.Source = identity.Field; this.Options = new ProjectionOptions(); this.Attributes = this.CreateDefaultAttributes(this.Metadata); }
public ProcLookupKey(string prefix, IProjectionIdentity identity, MetadataIdentity metadata, IField field) { this.Prefix = prefix; this.Identity = identity ?? throw new ArgumentNullException(nameof(identity)); this.Metadata = metadata; this.Field = field; if (string.IsNullOrWhiteSpace(this.Prefix)) { throw new ArgumentException("Prefix cannot be empty."); } }
public ProcLookupKey(string prefix, IProjectionIdentity identity, MetadataIdentity metadata, IField field) { this.Prefix = prefix; this.Identity = identity; this.Metadata = metadata; this.Field = field; this.HasValue = (identity != null || metadata != null || field != null); if (string.IsNullOrWhiteSpace(this.Prefix)) { throw new ArgumentException("Prefix cannot be empty."); } }
public string Variable(IProjectionIdentity identity, IField field) => this.Custom("V", identity, field: field);
public string Table(IProjectionIdentity identity, MetadataIdentity metadata) => this.Custom("T", identity, metadata);
public string Parameter(IProjectionIdentity identity, MetadataIdentity metadata) => this.Custom("P", identity, metadata: metadata);
public string Parameter(IProjectionIdentity identity, IField field) => this.Custom("P", identity, field: field);
public string Custom(string prefix, IProjectionIdentity identity, MetadataIdentity metadata = null, IField field = null) => this.FromKey(new ProcLookupKey(prefix, identity, metadata, field));
public Projection(IProjectionIdentity identity, IProcContext context) : base(identity, context) { }
internal Projection(IProjectionIdentity identity, IProcContext context, IProjectionMetadata metadata) : base(identity, context, metadata) { }
public virtual bool Equals(IProjectionIdentity other) => base.Equals(other);