2025-07-17 17:08:19 +02:00

69 lines
2.1 KiB
C#

using skyscraper5.Data.PostgreSql;
using skyscraper5.Skyscraper.Scraper.Storage.InMemory;
using skyscraper8.EPGCollectorPort.SkyscraperSide.MediaHighway2;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace skyscraper8.EPGCollectorPort.SkyscraperSide.OpenTV
{
internal interface IOpenTvDataStorage
{
bool TestForTitles(int skyscraperContextCurrentNetworkId, int skyscraperContextCurrentTransportStreamId, int titleDataEventId, DateTime titleDataStartTime);
}
internal class OpenTvDataStorageImpl : IOpenTvDataStorage
{
private IOpenTvDataStorage _storageEngine;
public OpenTvDataStorageImpl(object[] getPluginConnector)
{
object o = getPluginConnector[0];
switch (o)
{
case InMemoryPluginToken t1:
_storageEngine = new OpenTvDataStorageMemory();
break;
case PostgresqlToken t2:
_storageEngine = new OpenTvDataStoragePostgresql(t2);
break;
default:
throw new NotImplementedException(o.GetType().FullName);
}
}
public bool TestForTitles(int skyscraperContextCurrentNetworkId, int skyscraperContextCurrentTransportStreamId,
int titleDataEventId, DateTime titleDataStartTime)
{
return _storageEngine.TestForTitles(skyscraperContextCurrentNetworkId, skyscraperContextCurrentTransportStreamId, titleDataEventId, titleDataStartTime);
}
}
internal class OpenTvDataStorageMemory : IOpenTvDataStorage
{
public bool TestForTitles(int skyscraperContextCurrentNetworkId, int skyscraperContextCurrentTransportStreamId,
int titleDataEventId, DateTime titleDataStartTime)
{
throw new NotImplementedException();
}
}
internal class OpenTvDataStoragePostgresql : IOpenTvDataStorage
{
private readonly PostgresqlToken _postgresql;
public OpenTvDataStoragePostgresql(PostgresqlToken postgresql)
{
_postgresql = postgresql;
}
public bool TestForTitles(int skyscraperContextCurrentNetworkId, int skyscraperContextCurrentTransportStreamId,
int titleDataEventId, DateTime titleDataStartTime)
{
throw new NotImplementedException();
}
}
}