Example #1
0
        /// <summary>
        /// Casts an identity instance to a more specific entity type.
        /// </summary>
        /// <param name="identity">The input identity.</param>
        /// <typeparam name="TCast">The entity type for which to cast the identity.</typeparam>
        public static IIdentity <TCast> Cast <TCast>(this IIdentity identity) where TCast : IEntity
        {
            if (identity == null)
            {
                throw new ArgumentNullException(nameof(identity));
            }

            if (!identity.EntityType.IsAssignableFrom(typeof(TCast)))
            {
                string message = String.Format(Resources.ExceptionMessages.CastTypeMustImplementEntityTypeFormat,
                                               identity.EntityType.Name,
                                               typeof(TCast).Name);
                throw new ArgumentException(message, nameof(identity));
            }

            return(Identity.Create <TCast>(identity.Value));
        }
Example #2
0
 /// <summary>
 /// Gets the identity for a given entity instance.
 /// </summary>
 /// <returns>The identity.</returns>
 /// <param name="entity">Entity.</param>
 /// <typeparam name="TEntity">The entity type.</typeparam>
 public static IIdentity <TEntity> GetIdentity <TEntity>(this TEntity entity) where TEntity : IEntity
 {
     return((IIdentity <TEntity>)Identity.Create(entity.GetType(),
                                                 entity.GetIdentityType(),
                                                 entity.IdentityValue));
 }