public override bool Equals(object obj) { var other = obj as ClientModel; if (other == null) { return(false); } var result = AbsoluteRefreshTokenLifetime.SafeEquals(other.AbsoluteRefreshTokenLifetime) && AccessTokenLifetime.SafeEquals(other.AccessTokenLifetime) && AccessTokenType.SafeEquals(other.AccessTokenType) && AllowAccessTokensViaBrowser.SafeEquals(other.AllowAccessTokensViaBrowser) && AllowedCorsOrigins.SafeListEquals(other.AllowedCorsOrigins) && AllowedGrantTypes.SafeListEquals(other.AllowedGrantTypes) && AllowedScopes.SafeListEquals(other.AllowedScopes) && AllowOfflineAccess.SafeEquals(other.AllowOfflineAccess) && AllowPlainTextPkce.SafeEquals(other.AllowPlainTextPkce) && AllowRememberConsent.SafeEquals(other.AllowRememberConsent) && AlwaysSendClientClaims.SafeEquals(other.AlwaysSendClientClaims) && AuthorizationCodeLifetime.SafeEquals(other.AuthorizationCodeLifetime) && BackChannelLogoutSessionRequired.SafeEquals(other.BackChannelLogoutSessionRequired) && BackChannelLogoutUri.SafeEquals(other.BackChannelLogoutUri) && Claims.SafeListEquals(other.Claims) && ClientId.SafeEquals(other.ClientId) && ClientName.SafeEquals(other.ClientName) && ClientSecrets.SafeListEquals(other.ClientSecrets) && ClientUri.SafeEquals(other.ClientUri) && ConsentLifetime.SafeEquals(other.ConsentLifetime) && Enabled.SafeEquals(other.Enabled) && EnableLocalLogin.SafeEquals(other.EnableLocalLogin) && FrontChannelLogoutSessionRequired.SafeEquals(other.FrontChannelLogoutSessionRequired) && FrontChannelLogoutUri.SafeEquals(other.FrontChannelLogoutUri) && IdentityProviderRestrictions.SafeListEquals(other.IdentityProviderRestrictions) && IdentityTokenLifetime.SafeEquals(other.IdentityTokenLifetime) && IncludeJwtId.SafeEquals(other.IncludeJwtId) && LogoUri.SafeEquals(other.LogoUri) && LogoutSessionRequired.SafeEquals(other.LogoutSessionRequired) && LogoutUri.SafeEquals(other.LogoutUri) && PostLogoutRedirectUris.SafeListEquals(other.PostLogoutRedirectUris) && Properties.SafeEquals(other.Properties) && ProtocolType.SafeEquals(other.ProtocolType) && RedirectUris.SafeListEquals(other.RedirectUris) && RefreshTokenExpiration.SafeEquals(other.RefreshTokenExpiration) && RefreshTokenUsage.SafeEquals(other.RefreshTokenUsage) && RequireClientSecret.SafeEquals(other.RequireClientSecret) && RequireConsent.SafeEquals(other.RequireConsent) && RequirePkce.SafeEquals(other.RequirePkce) && SlidingRefreshTokenLifetime.SafeEquals(other.SlidingRefreshTokenLifetime) && UpdateAccessTokenClaimsOnRefresh.SafeEquals(other.UpdateAccessTokenClaimsOnRefresh); return(result); }
/// <summary>验证数据,通过抛出异常的方式提示验证失败。</summary> /// <param name="isNew">是否插入</param> public override void Valid(Boolean isNew) { // 如果没有脏数据,则不需要进行任何处理 if (!HasDirty) { return; } // 这里验证参数范围,建议抛出参数异常,指定参数名,前端用户界面可以捕获参数异常并聚焦到对应的参数输入框 if (ClientId.IsNullOrEmpty()) { throw new ArgumentNullException(nameof(ClientId), "ClientId不能为空!"); } if (ProtocolType.IsNullOrEmpty()) { throw new ArgumentNullException(nameof(ProtocolType), "ProtocolType不能为空!"); } if (ClientName.IsNullOrEmpty()) { throw new ArgumentNullException(nameof(ClientName), "ClientName不能为空!"); } if (Description.IsNullOrEmpty()) { throw new ArgumentNullException(nameof(Description), "Description不能为空!"); } if (ClientUri.IsNullOrEmpty()) { throw new ArgumentNullException(nameof(ClientUri), "ClientUri不能为空!"); } if (LogoUri.IsNullOrEmpty()) { throw new ArgumentNullException(nameof(LogoUri), "LogoUri不能为空!"); } if (FrontChannelLogoutUri.IsNullOrEmpty()) { throw new ArgumentNullException(nameof(FrontChannelLogoutUri), "FrontChannelLogoutUri不能为空!"); } if (BackChannelLogoutUri.IsNullOrEmpty()) { throw new ArgumentNullException(nameof(BackChannelLogoutUri), "BackChannelLogoutUri不能为空!"); } if (ClientClaimsPrefix.IsNullOrEmpty()) { throw new ArgumentNullException(nameof(ClientClaimsPrefix), "ClientClaimsPrefix不能为空!"); } if (PairWiseSubjectSalt.IsNullOrEmpty()) { throw new ArgumentNullException(nameof(PairWiseSubjectSalt), "PairWiseSubjectSalt不能为空!"); } if (Created.IsNullOrEmpty()) { throw new ArgumentNullException(nameof(Created), "Created不能为空!"); } if (Updated.IsNullOrEmpty()) { throw new ArgumentNullException(nameof(Updated), "Updated不能为空!"); } if (LastAccessed.IsNullOrEmpty()) { throw new ArgumentNullException(nameof(LastAccessed), "LastAccessed不能为空!"); } if (UserCodeType.IsNullOrEmpty()) { throw new ArgumentNullException(nameof(UserCodeType), "UserCodeType不能为空!"); } // 在新插入数据或者修改了指定字段时进行修正 // 检查唯一索引 // CheckExist(isNew, __.ClientId); }