public async Task <ActionResult> Overview(string targetUserId) { if (String.IsNullOrEmpty(targetUserId)) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } string userId = User.Identity.GetUserId(); if (userId == targetUserId) { return(RedirectToAction("Index")); } var resultWithDataProfile = await UserService.GetProfileByUserIdAsync(targetUserId); var resultWithDataUser = await UserService.GetByUserIdAsync(targetUserId); var resultWithDataUserName = await UserService.GetUserNameByUserId(userId); var resultWithDataSubscribersCount = _subscriptionService.GetSubscribersCountByUserId(targetUserId); var resultWithDataSubscribtionsCount = _subscriptionService.GetSubscriptionsCountByUserId(targetUserId); var resultWithDataCanSubscribe = _subscriptionService.CanSubscribe(userId, targetUserId); if (!resultWithDataProfile.Success || !resultWithDataUser.Success || !resultWithDataUserName.Success) { // TODO } var profile = resultWithDataProfile.ResultData; var user = resultWithDataUser.ResultData; var model = new OverviewProfileViewModel { TargetUserId = targetUserId, Name = profile.Name, Surname = profile.Surname, DateOfBirth = profile.DateOfBirth?.ToString("d MMMM, yyyy"), CreatedAt = profile.CreatedAt.ToString("d MMMM, yyyy HH:mm"), AvatarImagePath = GetAvatarImagePath(targetUserId), UserName = resultWithDataUserName.ResultData, // TODO only public DictionariesCount = user.Dictionaries.Count, SubscribersCount = resultWithDataSubscribersCount.ResultData, SubscriptionsCount = resultWithDataSubscribtionsCount.ResultData, CanSubscribe = resultWithDataCanSubscribe.ResultData, }; return(View(model)); }