public DownloadHandler(int epid)
{
using (SQLiteCommand command = new SQLiteCommand("select pr.progid, pluginid, pr.image as progimg, ep.duration, ep.image as epimg, pr.extid as progextid, ep.extid as epextid from episodes as ep, programmes as pr where ep.epid=@epid and ep.progid=pr.progid", FetchDbConn()))
{
command.Parameters.Add(new SQLiteParameter("@epid", epid));
using (SQLiteMonDataReader reader = new SQLiteMonDataReader(command.ExecuteReader()))
{
if (!reader.Read())
{
throw new DataNotFoundException(epid, "Episode does not exist");
}
this.pluginId = new Guid(reader.GetString(reader.GetOrdinal("pluginid")));
this.progExtId = reader.GetString(reader.GetOrdinal("progextid"));
this.episodeExtId = reader.GetString(reader.GetOrdinal("epextid"));
this.progInfo = new Model.Programme(reader.GetInt32(reader.GetOrdinal("progid")));
this.episodeInfo = new Model.Episode(epid);
this.providerProgInfo = new Provider.ProgrammeInfo(this.progInfo);
if (reader.IsDBNull(reader.GetOrdinal("progimg")))
{
this.providerProgInfo.Image = null;
}
else
{
this.providerProgInfo.Image = RetrieveImage(reader.GetInt32(reader.GetOrdinal("progimg")));
}
this.providerEpisodeInfo = new Provider.EpisodeInfo(this.episodeInfo);
if (reader.IsDBNull(reader.GetOrdinal("duration")))
{
this.providerEpisodeInfo.Duration = null;
}
else
{
this.providerEpisodeInfo.Duration = reader.GetInt32(reader.GetOrdinal("duration"));
}
if (reader.IsDBNull(reader.GetOrdinal("epimg")))
{
this.providerEpisodeInfo.Image = null;
}
else
{
this.providerEpisodeInfo.Image = RetrieveImage(reader.GetInt32(reader.GetOrdinal("epimg")));
}
using (SQLiteCommand extCommand = new SQLiteCommand("select name, value from episodeext where epid=@epid", FetchDbConn()))
{
extCommand.Parameters.Add(new SQLiteParameter("@epid", epid));
using (SQLiteMonDataReader extReader = new SQLiteMonDataReader(extCommand.ExecuteReader()))
{
while (extReader.Read())
{
this.providerEpisodeInfo.ExtInfo.Add(extReader.GetString(extReader.GetOrdinal("name")), extReader.GetString(extReader.GetOrdinal("value")));
}
}
}
}
}
}