From 545ca2907ff6b4388b2d8f18a2db29fa593834c9 Mon Sep 17 00:00:00 2001 From: Hao Kung Date: Mon, 29 Sep 2014 11:35:49 -0700 Subject: [PATCH] Bye Bye Primary Ctors :( --- .../RoleStore.cs | 19 +++++++++----- .../UserStore.cs | 26 ++++++++++++------- .../DataProtectionTokenProvider.cs | 9 ++++--- .../EmailTokenProvider.cs | 10 +++++-- .../ExternalLoginInfo.cs | 11 +++++--- src/Microsoft.AspNet.Identity/IdentityRole.cs | 4 ++- src/Microsoft.AspNet.Identity/IdentityUser.cs | 4 ++- .../PhoneNumberTokenProvider.cs | 10 +++++-- .../UserLoginInfo.cs | 15 ++++++++--- 9 files changed, 76 insertions(+), 32 deletions(-) diff --git a/src/Microsoft.AspNet.Identity.SqlServer/RoleStore.cs b/src/Microsoft.AspNet.Identity.SqlServer/RoleStore.cs index 26db3d805c..5c75233738 100644 --- a/src/Microsoft.AspNet.Identity.SqlServer/RoleStore.cs +++ b/src/Microsoft.AspNet.Identity.SqlServer/RoleStore.cs @@ -12,34 +12,39 @@ using Microsoft.Data.Entity; namespace Microsoft.AspNet.Identity.SqlServer { - public class RoleStore(DbContext context) : RoleStore(context) + public class RoleStore : RoleStore where TRole : IdentityRole - { } + { + public RoleStore(DbContext context) : base(context) { } + } - public class RoleStore(TContext context) : RoleStore(context) + public class RoleStore : RoleStore where TRole : IdentityRole where TContext : DbContext - { } + { + public RoleStore(TContext context) : base(context) { } + } - public class RoleStore(TContext context) : + public class RoleStore : IQueryableRoleStore, IRoleClaimStore where TRole : IdentityRole where TKey : IEquatable where TContext : DbContext { - // Primary constructor + public RoleStore(TContext context) { if (context == null) { throw new ArgumentNullException("context"); } + Context = context; } private bool _disposed; - public TContext Context { get; } = context; + public TContext Context { get; private set; } /// /// If true will call SaveChanges after CreateAsync/UpdateAsync/DeleteAsync diff --git a/src/Microsoft.AspNet.Identity.SqlServer/UserStore.cs b/src/Microsoft.AspNet.Identity.SqlServer/UserStore.cs index 40ecb269e8..c38fcc540e 100644 --- a/src/Microsoft.AspNet.Identity.SqlServer/UserStore.cs +++ b/src/Microsoft.AspNet.Identity.SqlServer/UserStore.cs @@ -13,20 +13,26 @@ using Microsoft.Data.Entity; namespace Microsoft.AspNet.Identity.SqlServer { - public class UserStore(DbContext context) : UserStore(context) - { } + public class UserStore : UserStore + { + public UserStore(DbContext context) : base(context) { } + } - public class UserStore(DbContext context) : UserStore(context) + public class UserStore : UserStore where TUser : IdentityUser, new() - { } + { + public UserStore(DbContext context) : base(context) { } + } - public class UserStore(TContext context) : UserStore(context) + public class UserStore : UserStore where TUser : IdentityUser, new() where TRole : IdentityRole, new() where TContext : DbContext - { } + { + public UserStore(TContext context) : base(context) { } + } - public class UserStore(TContext context) : + public class UserStore : IUserLoginStore, IUserRoleStore, IUserClaimStore, @@ -42,17 +48,19 @@ namespace Microsoft.AspNet.Identity.SqlServer where TContext : DbContext where TKey : IEquatable { - // Primary constructor + + public UserStore(TContext context) { if (context == null) { throw new ArgumentNullException("context"); } + Context = context; } private bool _disposed; - public TContext Context { get; } = context; + public TContext Context { get; private set; } /// /// If true will call SaveChanges after CreateAsync/UpdateAsync/DeleteAsync diff --git a/src/Microsoft.AspNet.Identity/DataProtectionTokenProvider.cs b/src/Microsoft.AspNet.Identity/DataProtectionTokenProvider.cs index d29f234bff..b850e5a5a6 100644 --- a/src/Microsoft.AspNet.Identity/DataProtectionTokenProvider.cs +++ b/src/Microsoft.AspNet.Identity/DataProtectionTokenProvider.cs @@ -17,8 +17,9 @@ namespace Microsoft.AspNet.Identity /// /// Token provider that uses an IDataProtector to generate encrypted tokens based off of the security stamp /// - public class DataProtectorTokenProvider(DataProtectionTokenProviderOptions options, IDataProtector protector) : IUserTokenProvider where TUser : class + public class DataProtectorTokenProvider : IUserTokenProvider where TUser : class { + public DataProtectorTokenProvider(DataProtectionTokenProviderOptions options, IDataProtector protector) { if (options == null) { @@ -28,10 +29,12 @@ namespace Microsoft.AspNet.Identity { throw new ArgumentNullException(nameof(protector)); } + Options = options; + Protector = protector; } - public DataProtectionTokenProviderOptions Options { get; } = options; - public IDataProtector Protector { get; } = protector; + public DataProtectionTokenProviderOptions Options { get; private set; } + public IDataProtector Protector { get; private set; } public string Name { get { return Options.Name; } } diff --git a/src/Microsoft.AspNet.Identity/EmailTokenProvider.cs b/src/Microsoft.AspNet.Identity/EmailTokenProvider.cs index 800029b75b..a01f45e92e 100644 --- a/src/Microsoft.AspNet.Identity/EmailTokenProvider.cs +++ b/src/Microsoft.AspNet.Identity/EmailTokenProvider.cs @@ -21,12 +21,18 @@ namespace Microsoft.AspNet.Identity /// TokenProvider that generates tokens from the user's security stamp and notifies a user via their email /// /// - public class EmailTokenProvider(EmailTokenProviderOptions options) : TotpSecurityStampBasedTokenProvider + public class EmailTokenProvider : TotpSecurityStampBasedTokenProvider where TUser : class { + public EmailTokenProvider(EmailTokenProviderOptions options) + { + Options = options; + } + + public EmailTokenProvider() : this(new EmailTokenProviderOptions()) { } - public EmailTokenProviderOptions Options { get; } = options; + public EmailTokenProviderOptions Options { get; private set; } public override string Name { get { return Options.Name; } } diff --git a/src/Microsoft.AspNet.Identity/ExternalLoginInfo.cs b/src/Microsoft.AspNet.Identity/ExternalLoginInfo.cs index f324a75a90..6674d5e429 100644 --- a/src/Microsoft.AspNet.Identity/ExternalLoginInfo.cs +++ b/src/Microsoft.AspNet.Identity/ExternalLoginInfo.cs @@ -5,9 +5,14 @@ using System.Security.Claims; namespace Microsoft.AspNet.Identity { - public class ExternalLoginInfo(ClaimsIdentity externalIdentity, string loginProvider, string providerKey, - string displayName) : UserLoginInfo(loginProvider, providerKey, displayName) + public class ExternalLoginInfo : UserLoginInfo { - public ClaimsIdentity ExternalIdentity { get; set; } = externalIdentity; + public ExternalLoginInfo(ClaimsIdentity externalIdentity, string loginProvider, string providerKey, + string displayName) : base(loginProvider, providerKey, displayName) + { + ExternalIdentity = externalIdentity; + } + + public ClaimsIdentity ExternalIdentity { get; set; } } } \ No newline at end of file diff --git a/src/Microsoft.AspNet.Identity/IdentityRole.cs b/src/Microsoft.AspNet.Identity/IdentityRole.cs index 776ba46ac8..e9206c92ad 100644 --- a/src/Microsoft.AspNet.Identity/IdentityRole.cs +++ b/src/Microsoft.AspNet.Identity/IdentityRole.cs @@ -33,8 +33,10 @@ namespace Microsoft.AspNet.Identity /// Represents a Role entity /// /// - public class IdentityRole() where TKey : IEquatable + public class IdentityRole where TKey : IEquatable { + public IdentityRole() { } + /// /// Constructor /// diff --git a/src/Microsoft.AspNet.Identity/IdentityUser.cs b/src/Microsoft.AspNet.Identity/IdentityUser.cs index effa19ccb4..4fec7e27b1 100644 --- a/src/Microsoft.AspNet.Identity/IdentityUser.cs +++ b/src/Microsoft.AspNet.Identity/IdentityUser.cs @@ -19,8 +19,10 @@ namespace Microsoft.AspNet.Identity } } - public class IdentityUser() where TKey : IEquatable + public class IdentityUser where TKey : IEquatable { + public IdentityUser() { } + public IdentityUser(string userName) : this() { UserName = userName; diff --git a/src/Microsoft.AspNet.Identity/PhoneNumberTokenProvider.cs b/src/Microsoft.AspNet.Identity/PhoneNumberTokenProvider.cs index a1a1c74ac7..0a6f759af2 100644 --- a/src/Microsoft.AspNet.Identity/PhoneNumberTokenProvider.cs +++ b/src/Microsoft.AspNet.Identity/PhoneNumberTokenProvider.cs @@ -19,12 +19,18 @@ namespace Microsoft.AspNet.Identity /// TokenProvider that generates tokens from the user's security stamp and notifies a user via their phone number /// /// - public class PhoneNumberTokenProvider(PhoneNumberTokenProviderOptions options) : TotpSecurityStampBasedTokenProvider + public class PhoneNumberTokenProvider : TotpSecurityStampBasedTokenProvider where TUser : class { + public PhoneNumberTokenProvider(PhoneNumberTokenProviderOptions options) + { + Options = options; + } + + public PhoneNumberTokenProvider() : this(new PhoneNumberTokenProviderOptions()) { } - public PhoneNumberTokenProviderOptions Options { get; } = options; + public PhoneNumberTokenProviderOptions Options { get; private set; } public override string Name { get { return Options.Name; } } diff --git a/src/Microsoft.AspNet.Identity/UserLoginInfo.cs b/src/Microsoft.AspNet.Identity/UserLoginInfo.cs index 16c8e790d5..0f49599037 100644 --- a/src/Microsoft.AspNet.Identity/UserLoginInfo.cs +++ b/src/Microsoft.AspNet.Identity/UserLoginInfo.cs @@ -6,21 +6,28 @@ namespace Microsoft.AspNet.Identity /// /// Represents a linked login for a user (i.e. a local username/password or a facebook/google account /// - public class UserLoginInfo(string loginProvider, string providerKey, string displayName) + public class UserLoginInfo { + public UserLoginInfo(string loginProvider, string providerKey, string displayName) + { + LoginProvider = loginProvider; + ProviderKey = providerKey; + ProviderDisplayName = displayName; + } + /// /// Provider for the linked login, i.e. Local, Facebook, Google, etc. /// - public string LoginProvider { get; set; } = loginProvider; + public string LoginProvider { get; set; } /// /// Key for the linked login at the provider /// - public string ProviderKey { get; set; } = providerKey; + public string ProviderKey { get; set; } /// /// Display name for the provider /// - public string ProviderDisplayName { get; set; } = displayName; + public string ProviderDisplayName { get; set; } } } \ No newline at end of file