public async Task <bool> FollowOffer(string offerId) { var currentUser = await profileService.GetCurrentUser(); if (currentUser == null) { return(false); } var offer = await database.OfferRepository.Get(offerId); if (offer == null) { return(false); } var offerFollow = offer.OfferFollows.FirstOrDefault(of => of.UserId == currentUser.Id); if (offerFollow != null) { database.OfferFollowRepository.Delete(offerFollow); } else { offerFollow = OfferFollow.Create(offer.Id, currentUser.Id); database.OfferFollowRepository.Add(offerFollow); } return(await database.Complete()); }