Exemple #1
0
        public async Task PublishPost(CreatePostDTO createPostDTO)
        {
            var user = await _userService.GetUserIfValid(createPostDTO.NameAndPassword);

            _missioContext.Posts.Add(new Post(user, createPostDTO.Message, _timeService.GetCurrentTime(), createPostDTO.Picture));
            _missioContext.SaveChanges();
        }
Exemple #2
0
        public async Task RegisterUser(CreateUserDTO createUserDTO)
        {
            var userName = createUserDTO.UserName;
            var password = createUserDTO.Password;
            var email    = createUserDTO.Email;
            var picture  = createUserDTO.Picture ?? _webClientService.DownloadData("https://upload.wikimedia.org/wikipedia/commons/thumb/9/93/Default_profile_picture_%28male%29_on_Facebook.jpg/600px-Default_profile_picture_%28male%29_on_Facebook.jpg");
            var errors   = new List <string>();

            if (userName.Length < 5)
            {
                errors.Add(Strings.UserNameTooShortMessage);
            }
            if (password.Length < 4)
            {
                errors.Add(Strings.PasswordTooShortMessage);
            }
            if (await _missioContext.Users.AnyAsync(x => x.UserName == userName))
            {
                errors.Add(Strings.UserNameAlreadyInUseMessage);
            }
            if (errors.Count > 0)
            {
                throw new UserRegistrationException(errors);
            }
            var newUser = new User(userName, picture, email);

            _missioContext.Add(newUser);
            _missioContext.Add(new UserCredentials(newUser, _passwordService.HashPassword(password)));
            _missioContext.SaveChanges();
        }
Exemple #3
0
        public void NotifyPostLiked(Post post, User userThatLikedThePost)
        {
            var notification = new PostLikedNotification(userThatLikedThePost, post.Author, post);

            _missioContext.PostLikedNotifications.Add(notification);
            _missioContext.SaveChanges();
        }