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(); }
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(); }
public void NotifyPostLiked(Post post, User userThatLikedThePost) { var notification = new PostLikedNotification(userThatLikedThePost, post.Author, post); _missioContext.PostLikedNotifications.Add(notification); _missioContext.SaveChanges(); }