public void Update(string account, string id, [FromBody] ProgramUpdateSettings settings) { if (settings == null) { throw new HttpResponseException(HttpStatusCode.BadRequest); } var program = MapProgram(account, id); if (program == null) { throw new HttpResponseException(HttpStatusCode.NotFound); } if (program.State != ProgramState.Stopped) { throw new HttpResponseException(HttpStatusCode.PreconditionFailed); } program.Description = settings.Description ?? program.Description; program.ArchiveWindowLength = settings.ArchiveWindowLength == default(TimeSpan) ? program.ArchiveWindowLength : settings.ArchiveWindowLength; program.Update(); }
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()); }
public IActionResult Update(string account, string id, [FromBody] ProgramUpdateSettings settings) { if (settings == null) { return(BadRequest()); } var program = MapProgram(account, id); if (program == null) { return(NotFound()); } if (program.State != ProgramState.Stopped) { return(StatusCode(412)); } program.Description = settings.Description ?? program.Description; program.ArchiveWindowLength = settings.ArchiveWindowLength == default(TimeSpan) ? program.ArchiveWindowLength : settings.ArchiveWindowLength; program.Update(); return(Ok()); }