Ejemplo n.º 1
0
        public async Task AddTagsToPerformer(PerformerInfo performer, IEnumerable <string> tags)
        {
            await using var context = ContextFactory.CreateDbContext(ConnectionString);
            var connection = context.Database.GetDbConnection();
            var command    = connection.CreateCommand();
            var parameters = (tags as string[] ?? tags.ToArray()).Select(t => $"\'{t}\'");

            command.CommandText = $"call add_tags_to_performer({performer.Id}, {string.Join(',', parameters)})";

            try
            {
                await connection.OpenAsync();

                await command.ExecuteNonQueryAsync();
            }
            catch (PostgresException ex)
            {
                switch (ex.SqlState)
                {
                case PgsqlErrors.RaiseException:
                    throw new RepositoryException(ex.MessageText);
                }

                throw;
            }
        }
Ejemplo n.º 2
0
        public async Task DeletePerformerTags(PerformerInfo performer, IEnumerable <string> tags)
        {
            await using var context = ContextFactory.CreateDbContext(ConnectionString);
            var connection = context.Database.GetDbConnection();
            var command    = connection.CreateCommand();
            var parameters = (tags as string[] ?? tags.ToArray()).Select(t => $"\'{t}\'");

            command.CommandText = $"call delete_performer_tags({performer.Id}, {string.Join(',', parameters)})";
            await connection.OpenAsync();

            await command.ExecuteNonQueryAsync();
        }
Ejemplo n.º 3
0
        private async Task <PerformerInfoViewModel> CreatePerformerInfoViewModelAsync(PerformerInfo performer)
        {
            var model = _mapper.Map <PerformerInfoViewModel>(performer);

            model.Tags = (await _performerRepository.GetPerformerTags(model.Id)).Select(t => t.Name);
            return(model);
        }