Skip to content

Instantly share code, notes, and snippets.

View leoguilen's full-sized avatar
👨‍💻
| In progress...

Leonardo Guilen leoguilen

👨‍💻
| In progress...
View GitHub Profile
@leoguilen
leoguilen / Program.cs
Last active February 5, 2024 16:16
Dotnet application to integrate Azure application configuration and the service bus
using Azure.Identity;
using Azure.Messaging.ServiceBus;
using Microsoft.Extensions.Azure;
var builder = Host.CreateDefaultBuilder(args);
builder.ConfigureAppConfiguration((ctx, config) =>
{
var configBuilded = config.Build();
config.AddAzureAppConfiguration(options =>
@leoguilen
leoguilen / Client.Program.cs
Created October 19, 2023 15:40
Gist with the implementation of 3 security mechanisms, authentication with API Key, request signing, and rate limiting in an API with .NET.
using Microsoft.Net.Http.Headers;
using System.Globalization;
using System.Security.Cryptography;
using System.Text;
const string ApiBaseUrl = "https://localhost/api";
const string ApiKey = "...";
const string RequestSigningKey = "...";
var httpClient = new HttpClient()
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using repository_dapper.Models;
namespace repository_dapper.Repositories
{
public interface IUserRepository : IRepository<User>
{
Task<IEnumerable<User>> GetUsersAsync();
using System.Data;
namespace repository_dapper.Data
{
public class DbContext
{
private IDbStrategy _dbStrategy;
public DbContext SetStrategy(string providerType)
{
_dbStrategy = providerType switch {
using System.Data;
using MySql.Data.MySqlClient;
namespace repository_dapper.Data
{
public class MySqlStrategy : IDbStrategy
{
public IDbConnection GetConnection(string connectionString)
{
return new MySqlConnection(connectionString);
@leoguilen
leoguilen / IDbStrategy.cs
Created August 16, 2020 17:51
Exemplo simples de contrato de estratégia para conexão com provedores de dados
using System.Data;
namespace repository_dapper.Data
{
public interface IDbStrategy
{
IDbConnection GetConnection(string connectionString);
}
}
@leoguilen
leoguilen / Repository.cs
Created August 16, 2020 17:36
Exemplo simples de implementação de um repositório genérico
using System;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using Dapper.Contrib.Extensions;
using repository_dapper.Data;
using repository_dapper.Options;
namespace repository_dapper.Repositories
{
@leoguilen
leoguilen / DatabaseSettings.cs
Created August 16, 2020 17:13
Classe que recebe as configurações do appsettings.json
namespace repository_dapper.Options
{
public class DatabaseSettings
{
public string ProviderName { get; set; }
public string ConnectionString { get; set; }
}
}
@leoguilen
leoguilen / IRepository.cs
Last active August 16, 2020 17:36
Exemplo simples de contrato de um repositório genérico
using System;
using System.Linq;
using System.Threading.Tasks;
namespace repository_dapper.Repositories
{
public interface IRepository<TEntity> where TEntity : class
{
Task<IQueryable<TEntity>> FindAllAsync();
Task<TEntity> FindByIdAsync(Guid id);
@leoguilen
leoguilen / UserDto.cs
Created August 3, 2020 01:02
Modelo de objeto de transferência de dados de um usuário
using System;
using Dapper.Contrib.Extensions;
namespace repository_dapper.Features.User
{
[Table("Users")]
public class UserDto
{
[ExplicitKey]
public string Id { get; set; }