// GET: Profile public ActionResult Index() { if (!User.Identity.IsAuthenticated) { return(Redirect("/")); } string userId = User.Identity.GetUserId(); var model = new ProfileViewModel(); var donations = _donationRepository.GetByDonor(userId).ToList(); model.Donations = AutoMapper.Mapper.Map <List <Donation>, List <DonationViewModel> >(donations); // a better way? this is not efficient foreach (var donation in model.Donations) { var fundraiser = _fundraiserRepository.FindById(donation.FundraiserId); if (fundraiser != null) { donation.FundraiserName = fundraiser.Name; } var campaign = _campaignRepository.FindById(donation.CampaignId); if (campaign != null) { donation.CampaignName = campaign.Name; } } var fundraisers = _fundraiserRepository.FindByCreator(userId).ToList(); model.Fundraisers = AutoMapper.Mapper.Map <List <Fundraiser>, List <FundraiserViewModel> >(fundraisers); return(View(model)); }
protected override List <Fundraiser> HandleCore(GetByCreatorId request) { return(_fundraiserRepository.FindByCreator(request.CreatorId).ToList()); }