Ejemplo n.º 1
0
        public async override Task <string> AddAsync(UserAddApiModel model)
        {
            if (await _repository.AnyAsync(x => x.Email.ToLower() == model.Email.ToLower()))
            {
                throw new ArgumentException($"User with this Email already exist");
            }
            if (await _repository.AnyAsync(x => x.Phone == model.Phone))
            {
                throw new ArgumentException($"User with this Phone already exist");
            }

            var passwordHash = AppHelper.Current.GetCryptoHash(model.Password);

            User user = new User();

            user.Email          = model.Email;
            user.Phone          = model.Phone;
            user.UserName       = model.UserName;
            user.Password       = passwordHash;
            user.ActivityStatus = model.ActivityStatus;

            var userProfile = model.UserProfile;

            UserProfileHelper.Current.SetUserProfileDefaultDataForEntity(ref userProfile);

            user.SetId();
            user.UserProfile                = _dataMapper.Parse <UserProfileAddApiModel, UserProfile>(userProfile);
            user.UserProfileId              = user.Id;
            user.UserProfile.Id             = user.Id;
            user.UserProfile.ActivityStatus = user.ActivityStatus;
            user.UserProfile.FileEntityId   = user.UserProfile.FileEntityId ?? "default-user";

            await _repository.AddAsync(user);

            var roles = model.Roles.Select(x => x.Id).ToArray();
            await _userRoleRepository.AddRolesAsync(user.Id, roles);

            return(user.Id);
        }
Ejemplo n.º 2
0
        public async Task <UserGetFullApiModel> RegistrationAsync(string login, string password, ContactTypeEnum contactType,
                                                                  UserProfileAddApiModel userProfile)
        {
            var contact = login.ToLower();
            var hash    = AppHelper.Current.GetCryptoHash(password);

            User user = await CreateDefaultUserEntityAsync(contact, hash, contactType);

            UserProfileHelper.Current.SetUserProfileDefaultDataForRegistration(ref userProfile);

            user.SetId();
            user.UserProfileId  = user.Id;
            user.UserProfile    = _dataMapper.Parse <UserProfileAddApiModel, UserProfile>(userProfile);
            user.UserProfile.Id = user.Id;

            await _userRepository.AddAsync(user);

            user.UserRoles = (await _userRoleRepository.AddRolesAsync(user.Id, RoleHelper.Current.User.Id)).ToList();

            var userModel = _dataMapper.Parse <User, UserGetFullApiModel>(user);

            return(userModel);
        }