/// <summary>
        /// Seeds the data early on as some parts are used for lookups / updating
        /// Failed ingest will have the row data deleted
        /// </summary>
        private void SeedItvData()
        {
            try
            {
                using (ITVConversionContext seedDb = new ITVConversionContext())
                {
                    seedDb.ItvConversionData.Add(new ItvConversionData
                    {
                        Paid             = ITVParser.ITV_PAID,
                        Title            = ProgramTitle,
                        VersionMajor     = Version_Major,
                        LicenseStartDate = LicenseStart,
                        LicenseEndDate   = LicenseEnd,
                        ProviderName     = ProviderName,
                        ProviderId       = ProviderId,
                        OriginalItv      = ITVParser.ITV_Data.ToString(),
                        //updated to check for illegal chars
                        MediaFileName     = MediaFileName,
                        MediaFileLocation = MediaLocation,
                        ProcessedDateTime = DateTime.Now,
                        PublicationDate   = Publication_Date
                    });

                    int count = seedDb.SaveChanges();
                    ItvConversionData rowId = seedDb.ItvConversionData.Local.FirstOrDefault();
                    ItvData_RowId = rowId.Id;
                    log.Info($"{count} record(s) saved to the database with Row ID: {ItvData_RowId}");
                }
            }
            catch (Exception SID_EX)
            {
                throw new Exception($"Error encountered Seeding Data: {SID_EX.Message}");
            }
        }
        /// <summary>
        /// Function to update the db data upon successful parsing of the package
        /// </summary>
        private void UpdateItvData()
        {
            try
            {
                using (ITVConversionContext upDb = new ITVConversionContext())
                {
                    ItvConversionData entity = upDb.ItvConversionData.FirstOrDefault(i => i.Id == ItvData_RowId);
                    string            adi    = Path.Combine(WorkingDirectory, "ADI.xml");
                    AdiMapping.LoadXDocument(adi);

                    entity.IsTvod          = AdiMapping.IsTVOD;
                    entity.IsAdult         = iTVConversion.IsAdult.ToLower() == "y" ? true : false;
                    entity.PublicationDate = Publication_Date;

                    if (!IsUpdate)
                    {
                        entity.OriginalAdi       = AdiMapping.ADI_XDOC.ToString();
                        entity.MediaFileLocation = MediaLocation;
                        entity.MediaChecksum     = MediaChecksum;
                    }
                    else
                    {
                        entity.VersionMajor    = Version_Major;
                        entity.UpdateAdi       = AdiMapping.ADI_XDOC.ToString();
                        entity.UpdatedDateTime = DateTime.Now;
                        //entity.UpdatedFileLocation = MediaLocation;
                        //entity.UpdatedFileName = MediaFileName;
                        entity.UpdatedItv = ITVParser.ITV_Data.ToString();
                        //entity.UpdatedMediaChecksum = MediaChecksum;
                    }

                    int count = upDb.SaveChanges();
                    ItvConversionData rowId = upDb.ItvConversionData.Local.FirstOrDefault();
                    log.Info($"{count} record(s) updated in the database with Row ID: {ItvData_RowId}");
                }
            }
            catch (Exception UID_EX)
            {
                throw new Exception($"Error encountered Updating DB Data: {UID_EX.Message}");
            }
        }