예제 #1
0
        public UserViewModel GetUserInfoByName(string userName)
        {
            ISpecification <ApplicationUser> alreadyRegisteredSpec = new AppUserAlreadyRegisteredSpec(userName);
            var existingUser = repository.FindOne(alreadyRegisteredSpec);
            var user         = new UserViewModel()
            {
                Id   = existingUser.Id,
                Name = existingUser.UserName
            };

            return(user);
        }
예제 #2
0
        public TokenViewModel Login(LoginViewModel model)
        {
            ISpecification <ApplicationUser> alreadyRegisteredSpec = new AppUserAlreadyRegisteredSpec(model.UserName);
            var existingUser = repository.FindOne(alreadyRegisteredSpec);

            if (existingUser == null)
            {
                throw new Exception("UserName or Password is invalid!");
            }
            if (existingUser.PasswordIsValid(model.Password))
            {
                return(GenerateToken(existingUser));
            }
            throw new Exception("UserName or Password is invalid!");
        }
예제 #3
0
        public TokenViewModel Registrate(RegistrateViewModel model)
        {
            ISpecification <ApplicationUser> alreadyRegisteredSpec = new AppUserAlreadyRegisteredSpec(model.UserName);
            var existingUser = repository.FindOne(alreadyRegisteredSpec);

            if (existingUser != null)
            {
                throw new Exception("User already registered.");
            }

            var newUser = ApplicationUser.Create(model.UserName, model.Password);

            unitOfWork.BeginTransaction();
            repository.Add(newUser);
            unitOfWork.Commit();

            return(GenerateToken(newUser));
        }