// Register is always used for someone not in the database, only first time User or first time Asset use this method public async Task <AccountResult> RegisterUser(RegistrationModelBase model) { UserProfile profile; User user = null; switch (model.Type) { case IdentityTypes.USER: profile = new UserProfile(model as UserRegistrationModel); user = new User(model as UserRegistrationModel, profile); break; case IdentityTypes.BIKE_MESSENGER: case IdentityTypes.CNG_DRIVER: profile = new AssetProfile(model as AssetRegistrationModel); user = new Asset(model as AssetRegistrationModel, profile as AssetProfile); break; case IdentityTypes.ENTERPRISE: var enterpriseProfile = new EnterpriseUserProfile(model as EnterpriseUserRegistrationModel); user = new EnterpriseUser(model as EnterpriseUserRegistrationModel, enterpriseProfile); break; } var identityResult = await accountManager.CreateAsync(user, model.Password); var creationResult = new AccountResult(identityResult, user); return(creationResult); }
// Register is always used for someone not in the database, only first time User or first time Asset use this method public async Task<AccountResult> RegisterUser(RegistrationModelBase model) { UserProfile profile; User user = null; switch (model.Type) { case IdentityTypes.USER: profile = new UserProfile(model as UserRegistrationModel); user = new User(model as UserRegistrationModel, profile); break; case IdentityTypes.BIKE_MESSENGER: case IdentityTypes.CNG_DRIVER: profile = new AssetProfile(model as AssetRegistrationModel); user = new Asset(model as AssetRegistrationModel, profile as AssetProfile); break; case IdentityTypes.ENTERPRISE: var enterpriseProfile = new EnterpriseUserProfile(model as EnterpriseUserRegistrationModel); user = new EnterpriseUser(model as EnterpriseUserRegistrationModel, enterpriseProfile); break; } var identityResult = await accountManager.CreateAsync(user, model.Password); var creationResult = new AccountResult(identityResult, user); return creationResult; }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { var obj = JObject.Load(reader); IdentityProfile model; var type = obj["Type"]; if (type == null) { type = ((IdentityTypes)0).ToString(); } else { obj["Type"].Remove(); } string modelType = type.Value <string>(); IdentityTypes actualType; if (!Enum.TryParse <IdentityTypes>(modelType, out actualType)) { throw new NotSupportedException("Invalid AssetType Provided"); } switch (actualType) { case IdentityTypes.USER: model = new UserProfile(); break; case IdentityTypes.ENTERPRISE: model = new EnterpriseUserProfile(); break; default: model = new AssetProfile(); break; } serializer.Populate(obj.CreateReader(), model); return(model); }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { var obj = JObject.Load(reader); IdentityProfile model; var type = obj["Type"]; if (type == null) { type = ((IdentityTypes)0).ToString(); } else { obj["Type"].Remove(); } string modelType = type.Value<string>(); IdentityTypes actualType; if (!Enum.TryParse<IdentityTypes>(modelType, out actualType)) throw new NotSupportedException("Invalid AssetType Provided"); switch (actualType) { case IdentityTypes.USER: model = new UserProfile(); break; case IdentityTypes.ENTERPRISE: model = new EnterpriseUserProfile(); break; default: model = new AssetProfile(); break; } serializer.Populate(obj.CreateReader(), model); return model; }
public Asset(AssetRegistrationModel model, AssetProfile profile) : base(model, profile, RoleNames.ROLE_ASSET) { }