mirror of https://github.com/ErsatzTV/ErsatzTV.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
1.1 KiB
26 lines
1.1 KiB
using ErsatzTV.Core.Domain; |
|
using ErsatzTV.Core.Interfaces.Repositories; |
|
|
|
namespace ErsatzTV.Application.Configuration; |
|
|
|
public class GetXmltvSettingsHandler(IConfigElementRepository configElementRepository) |
|
: IRequestHandler<GetXmltvSettings, XmltvSettingsViewModel> |
|
{ |
|
public async Task<XmltvSettingsViewModel> Handle(GetXmltvSettings request, CancellationToken cancellationToken) |
|
{ |
|
Option<int> daysToBuild = await configElementRepository.GetValue<int>(ConfigElementKey.XmltvDaysToBuild); |
|
|
|
Option<XmltvTimeZone> maybeTimeZone = |
|
await configElementRepository.GetValue<XmltvTimeZone>(ConfigElementKey.XmltvTimeZone); |
|
|
|
Option<XmltvBlockBehavior> maybeBlockBehavior = |
|
await configElementRepository.GetValue<XmltvBlockBehavior>(ConfigElementKey.XmltvBlockBehavior); |
|
|
|
return new XmltvSettingsViewModel |
|
{ |
|
DaysToBuild = await daysToBuild.IfNoneAsync(2), |
|
TimeZone = await maybeTimeZone.IfNoneAsync(XmltvTimeZone.Local), |
|
BlockBehavior = await maybeBlockBehavior.IfNoneAsync(XmltvBlockBehavior.SplitTimeEvenly) |
|
}; |
|
} |
|
}
|
|
|