Ejemplo n.º 1
0
        public async Task AddArtistSlugAsync(
            ArtistSlugCreateViewModel artistSlug)
        {
            string connectionString = _databaseOptions.ConnectionString;
            string sqlStatement     = "insert into artist_slugs (name, is_primary, created_at, is_deleted, artist_id) values (@name, @is_primary, @created_at, @is_deleted, @artist_id)";

            using (NpgsqlConnection connection = new NpgsqlConnection(connectionString))
            {
                NpgsqlCommand command = new NpgsqlCommand(sqlStatement, connection);

                string   name      = artistSlug.Name.NormalizeStringForUrl();
                DateTime createdAt = DateTime.UtcNow;

                command.Parameters.AddWithValue("@name", name);
                command.Parameters.AddWithValue("@is_primary", artistSlug.IsPrimary);
                command.Parameters.AddWithValue("@created_at", createdAt);
                command.Parameters.AddWithValue("@is_deleted", artistSlug.IsDeleted);
                command.Parameters.AddWithValue("@artist_id", artistSlug.ArtistId);

                try
                {
                    await connection.OpenAsync();

                    await command.ExecuteNonQueryAsync();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
        }
Ejemplo n.º 2
0
        public async Task <ArtistCreationResult> AddArtistAsync(
            CreateArtistViewModel viewModel)
        {
            ArtistCreationResult result = new ArtistCreationResult();
            string connectionString     = _databaseOptions.ConnectionString;
            string sqlStatement         = "insert into artists (first_name, last_name, full_name, is_approved, user_id, created_at, is_deleted, has_image) values (@first_name, @last_name, @full_name, @is_approved, @user_id, @created_at, @is_deleted, @has_image) returning id";
            int    artistId             = 0;

            string   firstName  = viewModel.FirstName.ToLower();
            string   lastName   = viewModel.LastName.ToLower();
            string   fullName   = string.IsNullOrEmpty(lastName) ? firstName : $"{firstName} {lastName}";
            bool     isApproved = false;
            DateTime createdAt  = DateTime.UtcNow;
            string   userId     = viewModel.UserId;
            bool     isDeleted  = false;
            bool     hasImage   = false;

            using (NpgsqlConnection connection = new NpgsqlConnection(connectionString))
            {
                NpgsqlCommand command = new NpgsqlCommand(sqlStatement, connection);
                command.Parameters.AddWithValue("@first_name", firstName);
                command.Parameters.AddWithValue("@last_name", lastName);
                command.Parameters.AddWithValue("@full_name", fullName);
                command.Parameters.AddWithValue("@is_approved", isApproved);
                command.Parameters.AddWithValue("@user_id", userId);
                command.Parameters.AddWithValue("@created_at", createdAt);
                command.Parameters.AddWithValue("@is_deleted", isDeleted);
                command.Parameters.AddWithValue("@has_image", hasImage);

                try
                {
                    await connection.OpenAsync();

                    object artistIdentity = command.ExecuteScalar();
                    artistId = (int)artistIdentity;

                    ArtistSlugCreateViewModel artistSlug = new ArtistSlugCreateViewModel();
                    artistSlug.Name      = fullName.NormalizeStringForUrl();
                    artistSlug.IsPrimary = true;
                    artistSlug.CreatedAt = createdAt;
                    artistSlug.ArtistId  = artistId;

                    await _artistSlugsService.AddArtistSlugAsync(artistSlug);

                    result.PrimarySlug = artistSlug.Name;
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }

            return(result);
        }