Exemple #1
0
        public async Task <ActionResult> CreateWhitelistItem([FromBody] BlacklistWhitelist createWhitelistItem)
        {
            try
            {
                Log.Information($"Executed CreateWhitelistItem({createWhitelistItem}).");

                var foundBlackListItem = this.whitelistRepository.GetWhitelistItemByIdAndType(createWhitelistItem.Id, createWhitelistItem.Type);

                if (foundBlackListItem != null)
                {
                    return(this.Conflict(createWhitelistItem));
                }

                var inserted = await this.whitelistRepository.InsertWhitelistItem(createWhitelistItem);

                if (inserted)
                {
                    return(this.Ok(createWhitelistItem));
                }

                return(this.BadRequest(createWhitelistItem));
            }
            catch (Exception ex)
            {
                Log.Fatal(ex.Message, ex);
                return(this.InternalServerError(ex));
            }
        }
        /// <inheritdoc cref="IWhitelistRepository" />
        /// <summary>
        ///     Inserts a <see cref="BlacklistWhitelist" /> item to the database.
        /// </summary>
        /// <param name="whitelistItem">The <see cref="BlacklistWhitelist" /> item to insert.</param>
        /// <returns>A <see cref="Task" /> representing any asynchronous operation.</returns>
        /// <seealso cref="IWhitelistRepository" />
        public async Task <bool> InsertWhitelistItem(BlacklistWhitelist whitelistItem)
        {
            await using var connection = new NpgsqlConnection(this.connectionSettings.ToConnectionString());
            await connection.OpenAsync();

            var result = await connection.ExecuteAsync(InsertStatements.InsertWhitelistItem, whitelistItem);

            return(result == 1);
        }