private UserProfileDetailsModel MapUserProfileDetails(UserProfile userProfile) { var viewModel = Mapper.Map<UserProfile, UserProfileDetailsModel>(userProfile); var causes = causeRepository.FindCausesByUserProfileID(userProfile.UserProfileID); viewModel.Campaigns = userProfile.Campaigns .Select(Mapper.Map<Campaign, CampaignDetailsModel>) .OrderByDescending(c => c.EndDate).ToList(); viewModel.ActiveCampaignCount = userProfile.Campaigns.Where(c => c.IsActive).Count(); viewModel.ImagePath = userProfile.GetProfileImagePath(ProfileImageSize.Full); viewModel.DollarsRaised = userProfile.CalculateTotalDonations(); viewModel.DollarsGiven = userProfile.CalculateTotalDonationsGiven(); viewModel.ProjectsCompleted = causes.Count(); viewModel.ProjectsCompletedLabel = ModelHelpers.GetCausesLabelText(causes); viewModel.LastVisit = userProfile.Users.Any() ? userProfile.Users.First().LastLoggedIn : DateTime.Now; viewModel.Role = userProfile.Role != null ? userProfile.Role.Description : "Registered User"; viewModel.CurrentUserIsOwner = ((User != null) && (userProfile.Email.ToLower() == User.Identity.Name.ToLower())); return viewModel; }