Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions src/CleanArchitecture.Domain/Common/Entity.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,7 @@ public abstract class Entity

protected readonly List<IDomainEvent> _domainEvents = [];

protected Entity(Guid id)
{
Id = id;
}
protected Entity(Guid id) => Id = id;

public List<IDomainEvent> PopDomainEvents()
{
Expand Down
16 changes: 4 additions & 12 deletions src/CleanArchitecture.Domain/Users/Calendar.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,7 @@ public class Calendar
/// </summary>
private readonly Dictionary<DateOnly, int> _calendar = [];

public static Calendar Empty()
{
return new Calendar();
}
public static Calendar Empty() => new Calendar();

public void IncrementEventCount(DateOnly date)
{
Expand All @@ -32,17 +29,12 @@ public void DecrementEventCount(DateOnly date)
_calendar[date]--;
}

public void SetEventCount(DateOnly date, int numEvents)
{
_calendar[date] = numEvents;
}
public void SetEventCount(DateOnly date, int numEvents) => _calendar[date] = numEvents;

public int GetNumEventsOnDay(DateTimeOffset dateTime)
{
return _calendar.TryGetValue(DateOnly.FromDateTime(dateTime.Date), out var numEvents)
public int GetNumEventsOnDay(DateTimeOffset dateTime) =>
_calendar.TryGetValue(DateOnly.FromDateTime(dateTime.Date), out var numEvents)
? numEvents
: 0;
}

private Calendar()
{
Expand Down
5 changes: 1 addition & 4 deletions src/CleanArchitecture.Domain/Users/Subscription.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,7 @@ public class Subscription : Entity
public SubscriptionType SubscriptionType { get; } = null!;

public Subscription(SubscriptionType subscriptionType, Guid? id = null)
: base(id ?? Guid.NewGuid())
{
SubscriptionType = subscriptionType;
}
: base(id ?? Guid.NewGuid()) => SubscriptionType = subscriptionType;

public static readonly Subscription Canceled = new(new SubscriptionType("Canceled", -1), Guid.Empty);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,13 @@ namespace CleanArchitecture.Infrastructure.Common.Persistence;
public static class FluentApiExtensions
{
// FYI: SQLite doesn't support JSON columns yet. Otherwise, we'd prefer calling .ToJson() on the owned entity instead.
public static PropertyBuilder<T> HasValueJsonConverter<T>(this PropertyBuilder<T> propertyBuilder)
{
return propertyBuilder.HasConversion(
public static PropertyBuilder<T> HasValueJsonConverter<T>(this PropertyBuilder<T> propertyBuilder) =>
propertyBuilder.HasConversion(
new ValueJsonConverter<T>(),
new ValueJsonComparer<T>());
}

public static PropertyBuilder<T> HasListOfIdsConverter<T>(this PropertyBuilder<T> propertyBuilder)
{
return propertyBuilder.HasConversion(
public static PropertyBuilder<T> HasListOfIdsConverter<T>(this PropertyBuilder<T> propertyBuilder) =>
propertyBuilder.HasConversion(
new ListOfIdsConverter(),
new ListOfIdsComparer());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,7 @@ public Task StopAsync(CancellationToken cancellationToken)
return Task.CompletedTask;
}

public void Dispose()
{
_timer?.Dispose();
}
public void Dispose() => _timer?.Dispose();

/// <summary>
/// TODO: there are many edge cases that aren't caught here. This is an immediate nice to have implementation for now.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,18 +14,14 @@ public async Task AddAsync(Reminder reminder, CancellationToken cancellationToke
await _dbContext.SaveChangesAsync(cancellationToken);
}

public async Task<Reminder?> GetByIdAsync(Guid reminderId, CancellationToken cancellationToken)
{
return await _dbContext.Reminders.FindAsync(reminderId, cancellationToken);
}
public async Task<Reminder?> GetByIdAsync(Guid reminderId, CancellationToken cancellationToken) =>
await _dbContext.Reminders.FindAsync(reminderId, cancellationToken);

public async Task<List<Reminder>> ListBySubscriptionIdAsync(Guid subscriptionId, CancellationToken cancellationToken)
{
return await _dbContext.Reminders
public async Task<List<Reminder>> ListBySubscriptionIdAsync(Guid subscriptionId, CancellationToken cancellationToken) =>
await _dbContext.Reminders
.AsNoTracking()
.Where(reminder => reminder.SubscriptionId == subscriptionId)
.ToListAsync(cancellationToken);
}

public async Task RemoveAsync(Reminder reminder, CancellationToken cancellationToken)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,12 @@ public class PolicyEnforcer : IPolicyEnforcer
public ErrorOr<Success> Authorize<T>(
IAuthorizeableRequest<T> request,
CurrentUser currentUser,
string policy)
{
return policy switch
string policy) =>
policy switch
{
Policy.SelfOrAdmin => SelfOrAdminPolicy(request, currentUser),
_ => Error.Unexpected(description: "Unknown policy name"),
};
}

private static ErrorOr<Success> SelfOrAdminPolicy<T>(IAuthorizeableRequest<T> request, CurrentUser currentUser) =>
request.UserId == currentUser.Id || currentUser.Roles.Contains(Role.Admin)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@ public sealed class JwtBearerTokenValidationConfiguration(IOptions<JwtSettings>

public void Configure(string? name, JwtBearerOptions options) => Configure(options);

public void Configure(JwtBearerOptions options)
{
public void Configure(JwtBearerOptions options) =>
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
Expand All @@ -28,5 +27,4 @@ public void Configure(JwtBearerOptions options)
IssuerSigningKey = new SymmetricSecurityKey(
Encoding.UTF8.GetBytes(_jwtSettings.Secret)),
};
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,11 @@ public async Task AddAsync(User user, CancellationToken cancellationToken)
await _dbContext.SaveChangesAsync(cancellationToken);
}

public async Task<User?> GetByIdAsync(Guid userId, CancellationToken cancellationToken)
{
return await _dbContext.Users.FindAsync(userId, cancellationToken);
}
public async Task<User?> GetByIdAsync(Guid userId, CancellationToken cancellationToken) =>
await _dbContext.Users.FindAsync(userId, cancellationToken);

public async Task<User?> GetBySubscriptionIdAsync(Guid subscriptionId, CancellationToken cancellationToken)
{
return await _dbContext.Users.FirstOrDefaultAsync(user => user.Subscription.Id == subscriptionId, cancellationToken);
}
public async Task<User?> GetBySubscriptionIdAsync(Guid subscriptionId, CancellationToken cancellationToken) =>
await _dbContext.Users.FirstOrDefaultAsync(user => user.Subscription.Id == subscriptionId, cancellationToken);

public async Task RemoveAsync(User user, CancellationToken cancellationToken)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,10 @@ public static CreateSubscriptionRequest CreateCreateSubscriptionRequest(
string firstName = Constants.User.FirstName,
string lastName = Constants.User.LastName,
string emailName = Constants.User.Email,
SubscriptionType? subscriptionType = null)
{
return new(
SubscriptionType? subscriptionType = null) =>
new(
firstName,
lastName,
emailName,
subscriptionType ?? SubscriptionType.Basic);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,13 @@ public static GenerateTokenRequest CreateGenerateTokenRequest(
string email = Constants.User.Email,
SubscriptionType? subscriptionType = null,
List<string>? permissions = null,
List<string>? roles = null)
{
return new(
List<string>? roles = null) =>
new(
id ?? Constants.User.Id,
firstName,
lastName,
email,
subscriptionType ?? SubscriptionType.Basic,
permissions ?? Constants.User.Permissions,
roles ?? Constants.User.Roles);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,7 @@ public void ResetDatabase()
InitializeDatabase();
}

public void Dispose()
{
Connection.Close();
}
public void Dispose() => Connection.Close();

private SqliteTestDatabase(string connectionString)
{
Connection = new SqliteConnection(connectionString);
}
private SqliteTestDatabase(string connectionString) => Connection = new SqliteConnection(connectionString);
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,7 @@ public class WebAppFactory : WebApplicationFactory<IAssemblyMarker>, IAsyncLifet
{
private SqliteTestDatabase _testDatabase = null!;

public AppHttpClient CreateAppHttpClient()
{
return new AppHttpClient(CreateClient());
}
public AppHttpClient CreateAppHttpClient() => new AppHttpClient(CreateClient());

public Task InitializeAsync() => Task.CompletedTask;

Expand All @@ -28,10 +25,7 @@ public AppHttpClient CreateAppHttpClient()
return Task.CompletedTask;
}

public void ResetDatabase()
{
_testDatabase.ResetDatabase();
}
public void ResetDatabase() => _testDatabase.ResetDatabase();

protected override void ConfigureWebHost(IWebHostBuilder builder)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,7 @@ public void ResetDatabase()
InitializeDatabase();
}

public void Dispose()
{
Connection.Close();
}
public void Dispose() => Connection.Close();

private SqliteTestDatabase(string connectionString)
{
Connection = new SqliteConnection(connectionString);
}
private SqliteTestDatabase(string connectionString) => Connection = new SqliteConnection(connectionString);
}