private void Save_Click(object sender, RoutedEventArgs e) { if (programmesToSave != null) { foreach (var prog in programmesToSave) { repository.pips_programmes.Add(prog); } repository.SaveChanges(); programmesToSave = null; } }
private void PartialMatchMarkOverlap_Click(object sender, RoutedEventArgs e) { var items = (from r in reduxItems.redux_items join rp in reduxItems.partialschedulematches on r.id equals rp.redux_id join rp1 in reduxItems.redux_to_pips on r.id equals rp1.redux_id join p in reduxItems.pips_programmes on rp.pips_id equals p.id where rp1.pips_id == 0 select new { ReduxItem = r, Programme = p, ReduxToProgramme = rp1 }).AsEnumerable().Select(it => new ReduxViewModel(it.ReduxItem, it.Programme, it.ReduxToProgramme)).ToList(); items = items.Where(i => i.IsPartialMatchWithDescription).ToList(); foreach (var item in items) { item.ReduxToProgramme.pips_id = item.Programme.id; item.ReduxToProgramme.partial_match = true; } reduxItems.SaveChanges(); }
// 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 ReduxItems()) { 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(); PipsProgramme prev = null; using (var newdata = new ReduxItems()) { foreach (var prog in programmes) { if (prev != null && prev.service_id == prog.service_id && prev.end_gmt < prog.start_gmt) { Gap gap = new Gap { pips_id = prog.id, service_id = prog.service_id, gapstart = prev.end_gmt, gapend = prog.start_gmt }; newdata.gaps.Add(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; }); } }); }
private void NewProgramme(object sender, RoutedEventArgs e) { //programmesEntities entities = new programmesEntities(); //var result = from item in entities.pips_programmes select item; //result.First(). using (var items = new ReduxItems()) { var newProgramme = new PipsProgramme() { start_time = new DateTime(2007, 9, 27, 10, 0, 0), end_time = new DateTime(2007, 9, 27, 10, 30, 0), duration = 30 * 60, service_id = 1, service_name = "bbcfour", programme_name = "Life on Mars", description = "Cop Show in the 70s", pid = "b00b8989", matched = true }; items.pips_programmes.Add(newProgramme); items.SaveChanges(); } }