public async Task <ActionResult <MicroPostViewModel> > PostMicroPost([FromBody] MicroPostViewModel microPostViewModel) { MicroPost micropost = new MicroPost(); string currentUserId = User.FindFirstValue(ClaimTypes.NameIdentifier); ApplicationUser currentUser = await _context.Users.FirstOrDefaultAsync(x => x.Id == currentUserId).ConfigureAwait(false); micropost.Content = microPostViewModel.Content; micropost.Author = currentUser; micropost.CreatedAt = DateTime.Now; micropost.UpdatedAt = DateTime.Now; _context.MicroPost.Add(micropost); await _context.SaveChangesAsync(); return(microPostViewModel); }
public async Task <ActionResult <MicroPostsViewModel> > GetMicroPosts() { ApplicationUser user = null; try { user = await _context.Users.Include("FollowingUsers").Include("MicroPosts").SingleAsync(u => u.Id == User.FindFirstValue(ClaimTypes.NameIdentifier)); } catch (Exception exception) { Console.WriteLine($"GetMicroPost exception: {exception.Message}"); } MicroPostsViewModel microPostsViewModel = new MicroPostsViewModel(); IQueryable <MicroPost> microposts; foreach (FollowersFollowing followingUser in user.FollowingUsers) { // Need to find a way to make this async microposts = _context.MicroPost.Where(w => w.Author.Id == followingUser.FollowerId).Include(i => i.Author); foreach (MicroPost microPost in microposts) { MicroPostViewModel microPostViewModel = new MicroPostViewModel(); microPostViewModel.InjectFrom(microPost); microPostViewModel.Author = microPost.Author.ScreenName; microPostViewModel.Email = microPost.Author.Email; microPostsViewModel.MicroPosts.Add(microPostViewModel); } } foreach (MicroPost microPost in user.MicroPosts) { MicroPostViewModel microPostViewModel = new MicroPostViewModel(); microPostViewModel.InjectFrom(microPost); microPostViewModel.Author = microPost.Author.ScreenName; microPostViewModel.Email = microPost.Author.Email; microPostsViewModel.MicroPosts.Add(microPostViewModel); } return(microPostsViewModel); }