// This is a quick(ish) way to scan all the programmes in pips_programmes // and find all gaps in the schedule. // Note that this process will find all actual gaps where // the channel is not transmitting private void ScanGaps_Click(object sender, RoutedEventArgs e) { List<Gap> gaps = new List<Gap>(); Task.Factory.StartNew(() => { StringBuilder sql = new StringBuilder(); sql.AppendLine("insert into gaps (programme_id, service_id, gapstart,gapend)");// VALUES(1234,1,"2007-06-28 03:00","2007-06-28 06:00") using (var data = new ReduxEntities()) { var programmes = (from prog in data.pips_programmes //orderby prog.ServiceId, prog.StartTime select prog).ToList(); programmes = (from prog in programmes orderby prog.service_id, prog.start_gmt select prog).ToList(); pips_programmes prev = null; using (var newdata = new ReduxEntities()) { foreach (var prog in programmes) { if (prev != null && prev.service_id == prog.service_id && prev.end_gmt < prog.start_gmt) { gap gap = new gap { programme_id = prog.id, service_id = prog.service_id, gapstart = prev.end_gmt, gapend = prog.start_gmt }; newdata.gaps.AddObject(gap); Dispatcher.Invoke((MyDelegate)delegate { gapLabel.Content = string.Format("{0}", gap.gapstart); }); } if (prev == null || prog.service_id != prev.service_id || prog.end_gmt > prev.end_gmt) { prev = prog; } } newdata.SaveChanges(); } Dispatcher.Invoke((MyDelegate)delegate { gapGrid.ItemsSource = data.gaps; }); } }); }
/// <summary> /// Deprecated Method for adding a new object to the gaps EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead. /// </summary> public void AddTogaps(gap gap) { base.AddObject("gaps", gap); }
/// <summary> /// Create a new gap object. /// </summary> /// <param name="id">Initial value of the id property.</param> /// <param name="programme_id">Initial value of the programme_id property.</param> /// <param name="service_id">Initial value of the service_id property.</param> /// <param name="gapstart">Initial value of the gapstart property.</param> /// <param name="gapend">Initial value of the gapend property.</param> public static gap Creategap(global::System.Int32 id, global::System.Int32 programme_id, global::System.Int32 service_id, global::System.DateTime gapstart, global::System.DateTime gapend) { gap gap = new gap(); gap.id = id; gap.programme_id = programme_id; gap.service_id = service_id; gap.gapstart = gapstart; gap.gapend = gapend; return gap; }
/// <summary> /// Create a new gap object. /// </summary> /// <param name="id">Initial value of the id property.</param> public static gap Creategap(global::System.Int32 id) { gap gap = new gap(); gap.id = id; return gap; }