Add: binding setting file items to `AppSettings` class so to provide DI access as `IOptions<OptixServeSettings>`. Add: EF Core and DbContext to access database in services. This results in disabling NativeAOT due to poor supports for *pre-compiled query*, however many design are optimized for AOT for later re-adoption. Add: `DesignTimeDbContextFactory` to support EF Core migrations in NativeAOT. (Kept for re-enabling AOT.) Add: `DbInitializer` for ensuring database connecting in startup. Add: `ConfigurationHelper.CreateDefaultBuilder()` to read configuration files in default locations. Note this method is currently ONLY used by `DesignTimeDbContextFactory`. Refactor is expected. Add: `CommonErrorDto` for simple error message. Add: `VersionEndpoint` ONLY for debugging and testing purpose. Verylikely to be removed in the future. Other: many utilities and fixes easy to understand. Note: EF Core migrations are excluded in the early development. Not expected to be added in version control before v1.0 beta.
25 lines
543 B
C#
25 lines
543 B
C#
using OptixServe.Core.Data;
|
|
using OptixServe.Core.Models;
|
|
|
|
namespace OptixServe.Core.Services;
|
|
|
|
public interface IUserService
|
|
{
|
|
IEnumerable<User> GetUsers();
|
|
User? GetUserById(string id);
|
|
}
|
|
|
|
public class UserService(AppDbContext dbContext) : IUserService
|
|
{
|
|
private readonly AppDbContext _dbContext = dbContext;
|
|
|
|
public User? GetUserById(string id)
|
|
{
|
|
return _dbContext.Users.FirstOrDefault(u => u.Id == id);
|
|
}
|
|
|
|
public IEnumerable<User> GetUsers()
|
|
{
|
|
return _dbContext.Users.AsEnumerable();
|
|
}
|
|
} |