protected void Delete_Click(object sender, EventArgs e)
        {
            var isValid = true;

            if (isValid)
            {
                try
                {
                    ProgramsController sysmgr = new ProgramsController();
                    int rowsaffected          = sysmgr.Delete(int.Parse(ID.Text));
                    if (rowsaffected > 0)
                    {
                        ShowMessage("Record has been DELETED", "alert alert-success");
                        Clear(sender, e);
                    }
                    else
                    {
                        ShowMessage("Record was not found", "alert alert-warning");
                    }
                    UpdateButton.Enabled = false;
                    DeleteButton.Enabled = false;
                }
                catch (Exception ex)
                {
                    ShowMessage(GetInnerException(ex).ToString(), "alert alert-danger");
                }
            }
        }
        public void ProgramCRUDTest()
        {
            var account    = App.Config.Content.ContentProviders[0].MediaServicesSets[0].MediaServicesAccounts[0];
            var controller = new ProgramsController();
            var context    = account.GetContext();

            var channel      = context.Channels.FirstOrDefault();
            int programCount = context.Programs.Count();
            var name         = string.Format("New-Program-{0}", DateTime.UtcNow.ToOADate().ToString().Replace(".", "-"));

            var settings = new ProgramSettings
            {
                Name                = name,
                Description         = name,
                ArchiveWindowLength = TimeSpan.FromHours(1)
            };

            controller.Create(account.AccountName, channel.Id.NimbusIdToRawGuid(), settings);
            Assert.AreEqual(programCount + 1, context.Programs.Count());

            var program = context.Programs.ToList().First(o => o.Name == name);

            //update the channel.
            var updateSettings = new ProgramUpdateSettings
            {
                Description = "SomeDescription"
            };

            controller.Update(account.AccountName, program.Id.NimbusIdToRawGuid(), updateSettings);

            // create new context to avoid cache issue.
            context = account.GetContext();
            program = context.Programs.Where(p => p.Id == program.Id).FirstOrDefault();
            Assert.IsNotNull(program);

            Assert.AreEqual(updateSettings.Description, program.Description);

            controller.Delete(account.AccountName, program.Id.NimbusIdToRawGuid());
            Assert.AreEqual(programCount, context.Programs.Count());
        }