bakery-erp / src /BakeryErp.Infrastructure /Repositories /MasterDataLookupRepository.cs
Neil67's picture
Deploy Bakery ERP Space
13240d3
Raw
History Blame Contribute Delete
1.89 kB
using BakeryErp.Infrastructure.Database;
namespace BakeryErp.Infrastructure.Repositories;
public sealed class MasterDataLookupRepository
{
private readonly DatabaseOptions _options;
public MasterDataLookupRepository(DatabaseOptions options)
{
_options = options;
}
public IReadOnlyList<LookupOption> Suppliers()
{
return LocalDataStoreFile.Load(_options).Suppliers
.Where(static supplier => supplier.IsActive)
.OrderBy(static supplier => supplier.Code)
.Select(static supplier => new LookupOption(supplier.Name, $"{supplier.Code} - {supplier.Name}"))
.ToList();
}
public IReadOnlyList<ItemLookupOption> Items()
{
return LocalDataStoreFile.Load(_options).Items
.Where(static item => item.IsActive)
.OrderBy(static item => item.Sku)
.Select(static item => new ItemLookupOption(item.Sku, item.Name, item.BaseUnit, $"{item.Sku} - {item.Name}"))
.ToList();
}
public IReadOnlyList<LookupOption> Stores()
{
return LocalDataStoreFile.Load(_options).Stores
.Where(static store => store.IsActive)
.OrderBy(static store => store.Code)
.Select(static store => new LookupOption(store.Name, $"{store.Code} - {store.Name}"))
.ToList();
}
public IReadOnlyList<LookupOption> Warehouses()
{
return LocalDataStoreFile.Load(_options).Warehouses
.Where(static warehouse => warehouse.IsActive)
.OrderBy(static warehouse => warehouse.Code)
.Select(static warehouse => new LookupOption(warehouse.Name, $"{warehouse.Code} - {warehouse.Name}"))
.ToList();
}
}
public sealed record LookupOption(string Value, string Label);
public sealed record ItemLookupOption(string Sku, string Name, string Unit, string Label);