Exemple #1
0
        // 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);
        }
Exemple #2
0
        // 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;
        }
Exemple #5
0
 public Asset(AssetRegistrationModel model, AssetProfile profile) : base(model, profile, RoleNames.ROLE_ASSET)
 {
 }
Exemple #6
0
 public Asset(AssetRegistrationModel model, AssetProfile profile) : base(model, profile, RoleNames.ROLE_ASSET)
 {
 }