Exemple #1
0
        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());
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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());
        }