public async Task <IActionResult> Index() { //AccountDetailsViewModels res = new AccountDetailsViewModels(); string CurrentUserId = string.Empty; Claim claimForCheck = User.Claims.FirstOrDefault(cl => cl.Type.ToLower() == "id"); if (claimForCheck == null) { throw new Exception("Claims problems on server"); } CurrentUserId = claimForCheck.Value; User u = await db.Users.FirstOrDefaultAsync(el => el.Id.ToString() == CurrentUserId); int commentsCounter = db.Comments.Where(com => com.UserId == u.Id).Count(); int reviewsCounter = db.Reviews.Where(com => com.UserId == u.Id).Count(); if (u != null) { AccountDetailsViewModels vm = new AccountDetailsViewModels(u, reviewsCounter, commentsCounter); return(View(vm)); } else { return(RedirectToAction("Login", "Account")); } }
public async Task <IActionResult> Details(int id) { if (User.Identity.IsAuthenticated) { string CurrentUserId = string.Empty; Claim claimForCheck = User.Claims.FirstOrDefault(cl => cl.Type.ToLower() == "id"); if (claimForCheck != null) { CurrentUserId = claimForCheck.Value; User user = await db.Users.FirstOrDefaultAsync(el => el.Id == id); if (user != null) { if (user.Id.ToString() == CurrentUserId) { return(RedirectToAction("Index", "Account")); } } else { return(StatusCode(404)); } } } User u = await db.Users.FirstOrDefaultAsync(el => el.Id == id); if (u != null) { int commentsCounter = db.Comments.Where(com => com.UserId == u.Id).Count(); int reviewsCounter = db.Reviews.Where(com => com.UserId == u.Id).Count(); AccountDetailsViewModels res = new AccountDetailsViewModels(u, reviewsCounter, commentsCounter); return(View(res)); } else { return(StatusCode(404)); } }