Beispiel #1
0
        private void ReadNewReduxDataStream(object sender, RoutedEventArgs e)
        {
            Services    services = new Services();
            redux_items item     = null;
            var         context  = new ReduxEntities();
            int         count    = 0;
            XmlReader   reader   = XmlReader.Create(@"D:\Docs\prog.txt");

            while (reader.Read())
            {
                if (reader.IsStartElement() && reader.Name == "row")
                {
                    if (item != null)
                    {
                        if (context.redux_items.Any(i => i.disk_reference == item.disk_reference) == false)
                        {
                            //context.redux_items.AddObject(item);
                            //count++;
                            //if (count > 100)
                            //{
                            //    context.SaveChanges();
                            //    context = new ReduxEntities();
                            //    count = 0;
                            //}
                        }
                    }
                    item = new redux_items();
                }

                /*
                 * channel_id
                 * disk_reference
                 * title
                 * description
                 * duration
                 * start
                 * pcrid
                 * scrid
                 * end
                 */
                CultureInfo provider = CultureInfo.InvariantCulture;

                if (reader.IsStartElement() && reader.Name == "field")
                {
                    var fieldname = reader.GetAttribute("name");
                    switch (fieldname)
                    {
                    case "channel_id":
                        Service service = services.GetServiceByReduxId(reader.ReadElementContentAsString());
                        item.service_id = service.Id;
                        break;

                    case "disk_reference":
                        item.disk_reference = reader.ReadElementContentAsString();
                        break;

                    case "title":
                        item.programme_name = reader.ReadElementContentAsString();
                        break;

                    case "description":
                        item.short_description = reader.ReadElementContentAsString();
                        break;

                    case "duration":
                        item.duration = reader.ReadElementContentAsInt();
                        break;

                    case "start":
                        string dt = reader.ReadElementContentAsString();
                        item.aired = DateTime.Parse(dt, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal);
                        break;

                    case "pcrid":
                        item.programme_crid = reader.ReadElementContentAsString();
                        break;

                    case "scrid":
                        item.series_crid = reader.ReadElementContentAsString();
                        break;

                    case "end":
                        break;

                    default:
                        break;
                    }
                }
            }
            if (item != null)
            {
                //context.redux_items.AddObject(item);
                //context.SaveChanges();
            }
        }