public DbVote Insert(DbVote vote) { Command cmd = new Command("INSERT INTO Vote(UserId, UploadId, Comment, RateChoiceId) OUTPUT inserted.* VALUES (@userid, @uploadid, @comment, @ratechoiceid) "); cmd.SetParameters(vote); return(_connection.ExecuteReader(cmd, UniversalDbToEntityMapper.Mapper <DbVote>).FirstOrDefault()); }
public async Task <OneOf <DbVote, NotFound> > GetAsync(string userId, nhitomiObject obj, CancellationToken cancellationToken = default) { var vote = await _client.GetAsync <DbVote>(DbVote.MakeId(userId, obj.Id), cancellationToken); if (vote?.Target != obj.Type) { return(new NotFound()); } return(vote); }
public async Task <OneOf <Success, NotFound> > UnsetAsync(string userId, nhitomiObject obj, CancellationToken cancellationToken = default) { var entry = await _client.GetEntryAsync <DbVote>(DbVote.MakeId(userId, obj.Id), cancellationToken); do { if (entry.Value?.Target != obj.Type) { return(new NotFound()); } }while (await entry.TryDeleteAsync(cancellationToken)); return(new Success()); }