public ProfileDto GetProfileByUserName(string userName) { if (userName.IsNullOrEmpty()) { throw new ArgumentNullException(nameof(userName)); } var profile = _profileProvider.GetProfileByUserName(userName); if (profile == null) { throw new BusinessLogicException($"Profile for user with userName = {userName} was not found."); } var following = _profileProvider.GetFollowingByUserName(userName); var result = _mapper.Map <ProfileDto>(profile); result.Followers = profile.Followers.Select(x => _mapper.Map <ProfileDto>(x)).ToList(); result.Following = following.Select(x => _mapper.Map <ProfileDto>(x)).ToList(); return(result); }