public async Task <UserViewModel> RegisterUser(UserViewModel user) { ValidateUserRegistration(user); var userModel = UserConverter.ConvertUserViewModelToUserModel(user); var savedUser = await _iUserDao.RegisterUser(userModel, user.Password); if (user.NewsletterSubscription.HasValue && user.NewsletterSubscription.Value) { var subscriber = new Subscriber(user.Email); _iUserDao.RegisterToNewsletter(subscriber); } await SendWelcomeEmail(userModel); return(UserConverter.FromUserModelToUserViewModel(savedUser)); }