public async Task CreateAsync(ExternalApplication externalApplication)
        {
            using (var connection = new SqlConnection(_identityOptions.ConnectionString))
            {
                try
                {
                    using (var command = new SqlCommand(_createSql, connection))
                    {
                        command.Parameters.Add(new SqlParameter("@Active", externalApplication.Active));
                        command.Parameters.Add(new SqlParameter("@ActiveUntil", externalApplication.ActiveUntil));
                        command.Parameters.Add(new SqlParameter("@Created", externalApplication.Created));
                        command.Parameters.Add(new SqlParameter("@ExternalApplicationId", externalApplication.ExternalApplicationId));
                        command.Parameters.Add(new SqlParameter("@Name", externalApplication.Name));
                        command.Parameters.Add(new SqlParameter("@ApplicationKey", externalApplication.ApplicationKey));
                        connection.Open();

                        externalApplication.Id = (int)await command.ExecuteScalarAsync();
                    }
                }
                catch (SqlException ex)
                {
                    if (ex.Number == 2601 || ex.Number == 2627)
                    {
                        throw new ExternalApplicationAlreadyExistException($"External application {externalApplication.Name} already exist", ex);
                    }
                    throw;
                }
            }
        }
        public async Task UpdateAsync(ExternalApplication externalApplication)
        {
            using (var connection = new SqlConnection(_identityOptions.ConnectionString))
                using (var command = new SqlCommand(_updateSql, connection))
                {
                    command.Parameters.Add(new SqlParameter("@Active", externalApplication.Active));
                    command.Parameters.Add(new SqlParameter("@ActiveUntil", externalApplication.ActiveUntil));
                    command.Parameters.Add(new SqlParameter("@ExternalApplicationId", externalApplication.ExternalApplicationId));
                    command.Parameters.Add(new SqlParameter("@Name", externalApplication.Name));
                    command.Parameters.Add(new SqlParameter("@ApplicationKey", externalApplication.ApplicationKey));
                    connection.Open();

                    await command.ExecuteNonQueryAsync();
                }
        }
 public Task DeleteAsync(ExternalApplication externalApplication)
 {
     throw new NotImplementedException();
 }