public async Task <int> FlagSnippet(Flag flag) { var getSnippet = _snippetRepository.GetById(flag.ItemId); var existing = _flagRepository.GetAll().Where(f => f.ItemId == flag.ItemId && f.UserId == flag.UserId); if (existing.Count() == 0) { flag = _flagRepository.CreateFlag(flag); } var snippet = await getSnippet; snippet.Flags = _flagRepository.GetAll().Where(f => f.ItemId == flag.ItemId).Count(); var res = await _snippetRepository.Update(snippet); return(res.Flags); }
/// <summary> /// register a new vote on an snippet /// </summary> /// <param name="newVote"></param> /// <returns></returns> public async Task <int> RegisterVote(Vote newVote) { var snippet = await _snippetRepository.GetById(newVote.ItemId); if (snippet == null) { return(0); //No Snippet return zero } var existingVotes = await _voteRepository.GetByItemId(newVote.ItemId); if (existingVotes.Count(v => v.UserId == newVote.UserId) > 0) { return(snippet.Score); //Already voted return current score } //create the vote var created = await _voteRepository.CreateVote(newVote); if (created.Id != Guid.Empty) { //update the score on the snippet model var voteCount = _voteRepository.GetByItemId(snippet.Id).Result.Sum(v => v.Value); if (voteCount != snippet.Score) { snippet.Score = voteCount; } snippet = await _snippetRepository.Update(snippet); } return(snippet.Score); }
public async Task <Snippet> GetSnippet(Guid id) { return(await _repository.GetById(id)); }
public Snippet GetSnippet(int id) { var snippet = snippetsRepository.GetById(id); return(snippet); }