Exemplo n.º 1
0
 void sc_GetProgrammesCompleted(object sender, GetProgrammesCompletedEventArgs b)
 {
     if (b.Error == null)
     {
         if (b.Result != null)
         {
             programmes.Children.Clear();
             if (chkMain.IsChecked.HasValue && chkMain.IsChecked.Value)
             {
                 progresplist.Remove(strProgRespListMainKey);
                 progresplist.Add(strProgRespListMainKey, new ProgammeResponse()
                 {
                     resp = b, lastrun = DateTime.Now
                 });
                 showMain(b);
             }
             else if (chkNow.IsChecked.HasValue && chkNow.IsChecked.Value)
             {
                 progresplist.Remove(strProgRespListNowKey);
                 progresplist.Add(strProgRespListNowKey, new ProgammeResponse()
                 {
                     resp = b, lastrun = DateTime.Now
                 });
                 showNow(b);
             }
             else if (chkChannel.IsChecked.HasValue && chkChannel.IsChecked.Value)
             {
                 progresplist.Remove(strProgRespListChannelKey);
                 progresplist.Add(strProgRespListChannelKey, new ProgammeResponse()
                 {
                     resp = b, lastrun = DateTime.Now
                 });
                 showChannel(b);
             }
             else if (chkMatrix.IsChecked.HasValue && chkMatrix.IsChecked.Value)
             {
                 progresplist.Remove(strProgRespListMatrixKey);
                 progresplist.Add(strProgRespListMatrixKey, new ProgammeResponse()
                 {
                     resp = b, lastrun = DateTime.Now
                 });
                 showMatrix(b);
             }
         }
     }
 }
Exemplo n.º 2
0
        private void showChannel(GetProgrammesCompletedEventArgs b)
        {
            programmes.Children.Clear();

            programmes.Orientation = Orientation.Vertical;
            foreach (Programme prg in b.Result.programmes)
            {
                MyProgramme myp = Translate(prg);
                TextBlock   tb  = new TextBlock()
                {
                    Text = myp.start.ToString("HH:mm") + "-" + myp.stop.ToString("HH:mm") + " " + myp.title, Width = 400, FontSize = 9, Tag = myp
                };
                myp.Parent = tb;
                Border bo = inBorder(tb);
                if (myp.start <= DateTime.Now && DateTime.Now < myp.stop)
                {
                    tb.FontWeight = FontWeights.Bold;
                }
                if (myp.stop < DateTime.Now)
                {
                    bo.Style = sOld;
                }
                tb.MouseLeave += (x, z) =>
                {
                    if (myp.stop < DateTime.Now)
                    {
                        bo.Style = sOld;
                    }
                    else
                    {
                        bo.Style = sOrg;
                    }
                };
                tb.MouseEnter += (x, z) =>
                {
                    bo.Style          = sAlt;
                    canvas.Visibility = Visibility.Collapsed;
                    showCanvas(z.GetPosition(LayoutRoot));
                    info.Text = myp.start.ToString("yyyy-MM-dd HH:mm") + "-" + myp.stop.ToString("HH:mm") + "\r" +
                                myp.title + (!string.IsNullOrEmpty(myp.subtitle) ? " - " + myp.subtitle : "") +
                                "\r" + myp.desc;
                };
                programmes.Children.Add(bo);
            }
        }
Exemplo n.º 3
0
        private void showMain(GetProgrammesCompletedEventArgs b)
        {
            programmes.Children.Clear();

            programmes.Orientation = Orientation.Horizontal;
            int imin = 9999;

            /*
             * foreach (string chn in b.Result.programmes.Select(x=>x.channel).Distinct())
             * {
             *  int l = b.Result.programmes.Count(x => x.channel == chn);
             *  imin = Math.Min(imin, l);
             * }
             */
            List <StackPanel> sps = new List <StackPanel>();

            foreach (string chn in b.Result.programmes.OrderBy(x => FixToNum(x.channel)).Select(x => x.channel).Distinct())
            {
                StackPanel sp = new StackPanel();
                sp.Orientation = Orientation.Vertical;
                sp.Margin      = new Thickness(10);

                Image img = new Image();
                ImageSourceConverter isc         = new ImageSourceConverter();
                ImageSource          imagesource = isc.ConvertFromString("images/" + chn + ".png") as ImageSource;
                img.Source = imagesource;
                img.HorizontalAlignment = HorizontalAlignment.Left;
                img.MaxHeight           = 44;
                Border bimg = inBorder(img);
                bimg.BorderThickness = new Thickness(1);
                sp.Children.Add(bimg);
                var list = b.Result.programmes.Where(x => x.channel.Equals(chn)).OrderBy(x => x.start);
                int icnt = 0;

                foreach (Programme prg in list.Where(x => !x.title.Contains("Sändningsuppehåll")))
                {
                    MyProgramme myp = Translate(prg);

                    TextBlock tb = new TextBlock()
                    {
                        Text = myp.start.ToString("HH:mm") + " " + myp.title, Width = 200, FontFamily = new FontFamily("Verdana"), FontSize = 12, Tag = myp
                    };
                    myp.Parent = tb;

                    Border bo = inBorder(tb);
                    bo.BorderThickness = new Thickness(1, 0, 1, 1);

                    if (myp.start <= DateTime.Now && DateTime.Now < myp.stop)
                    {
                        tb.FontWeight = FontWeights.Bold;
                    }
                    if (myp.stop < DateTime.Now)
                    {
                        bo.Style = sOld;
                    }
                    tb.MouseLeave += (x, z) =>
                    {
                        if (myp.stop < DateTime.Now)
                        {
                            bo.Style = sOld;
                        }
                        else
                        {
                            bo.Style = sOrg;
                        }
                    };
                    tb.MouseEnter += (x, z) =>
                    {
                        bo.Style          = sAlt;
                        canvas.Visibility = Visibility.Collapsed;
                        showCanvas(z.GetPosition(LayoutRoot));

                        info.Text = myp.start.ToString("yyyy-MM-dd HH:mm") + "-" + myp.stop.ToString("HH:mm") + "\r" +
                                    myp.title + (!string.IsNullOrEmpty(myp.subtitle) ? " - " + myp.subtitle : "") +
                                    "\r" + myp.desc;
                    };
                    icnt++;

                    if (icnt == list.Count() || icnt == imin)
                    {
                        bo.BorderThickness = new Thickness(1, 0, 1, 1);
                    }
                    AddToSp(sp, bo);
                    if (icnt == imin)
                    {
                        break;
                    }
                }
                sps.Add(sp);
            }
            programmes.Orientation = Orientation.Vertical;
            List <StackPanel> spvs      = new List <StackPanel>();
            string            strPerRow = (programmes.ActualWidth / 220).ToString();
            int    numperrows           = int.Parse(strPerRow.Contains(",")?strPerRow.Substring(0, strPerRow.IndexOf(",")):strPerRow.Contains(".")?strPerRow.Substring(0, strPerRow.IndexOf(".")):strPerRow);
            double cnt = sps.Count;
            //int sqrt = int.Parse(Math.Round((Math.Sqrt(cnt)+1), 0).ToString());
            int sqrt = int.Parse(Math.Round((cnt / numperrows), 0).ToString());

            for (int ix = 0; ix < sqrt; ix++)
            {
                StackPanel sp = new StackPanel();
                sp.Orientation = Orientation.Horizontal;
                sp.Margin      = new Thickness(0);
                spvs.Add(sp);
            }
            int ispicnt = 0;
            int ispvcnt = 0;

            foreach (StackPanel spi in sps)
            {
                if (ispicnt > 0 && ispicnt >= numperrows) //ispicnt % sqrt == 0)
                {
                    ispicnt = 0;
                    ispvcnt++;
                }
                StackPanel spv = spvs[ispvcnt];
                spv.Children.Add(spi);
                ispicnt++;
            }

            foreach (StackPanel spv in spvs)
            {
                programmes.Children.Add(spv);
            }
            programmes.HorizontalAlignment = HorizontalAlignment.Stretch;
            programmes.VerticalAlignment   = VerticalAlignment.Stretch;
        }
Exemplo n.º 4
0
        private void showNow(GetProgrammesCompletedEventArgs b)
        {
            programmes.Children.Clear();

            programmes.Orientation = Orientation.Vertical;
            foreach (Programme prg in b.Result.programmes.OrderBy(x => FixToNum(x.channel)))
            {
                MyProgramme myp = Translate(prg);
                if (myp.start <= DateTime.Now && DateTime.Now < myp.stop)
                {
                    StackPanel sp = new StackPanel();
                    sp.Orientation = Orientation.Horizontal;
                    sp.Margin      = new Thickness(0);

                    Image img = new Image();
                    ImageSourceConverter isc         = new ImageSourceConverter();
                    ImageSource          imagesource = isc.ConvertFromString("images/" + prg.channel + ".png") as ImageSource;
                    img.Source    = imagesource;
                    img.MaxHeight = 44;

                    Border boimg = inBorder(img);
                    boimg.MinWidth = 44;
                    sp.Children.Add(boimg);

                    /*
                     * Border bochn = inBorder(new TextBlock() { Text = myp.channelname, Width = 100 });
                     * sp.Children.Add(bochn);
                     */

                    TextBlock tb = new TextBlock()
                    {
                        Text = myp.start.ToString("HH:mm") + "-" + myp.stop.ToString("HH:mm") + " " + myp.title, Width = 400, FontSize = 9, Tag = myp
                    };
                    myp.Parent = tb;
                    Border bo = inBorder(tb);
                    if (myp.stop < DateTime.Now)
                    {
                        bo.Style = sOld;
                    }
                    tb.MouseLeave += (x, z) =>
                    {
                        if (myp.stop < DateTime.Now)
                        {
                            bo.Style = sOld;
                        }
                        else
                        {
                            bo.Style = sOrg;
                        }
                    };
                    tb.MouseEnter += (x, z) =>
                    {
                        bo.Style          = sAlt;
                        canvas.Visibility = Visibility.Collapsed;
                        showCanvas(z.GetPosition(LayoutRoot));

                        info.Text = myp.start.ToString("yyyy-MM-dd HH:mm") + "-" + myp.stop.ToString("HH:mm") + "\r" +
                                    myp.title + (!string.IsNullOrEmpty(myp.subtitle) ? " - " + myp.subtitle : "") +
                                    "\r" + myp.desc;
                    };
                    sp.Children.Add(bo);

                    programmes.Children.Add(sp);
                }
            }
        }
Exemplo n.º 5
0
        private void showMatrix(GetProgrammesCompletedEventArgs b)
        {
            programmes.Children.Clear();

            programmes.Orientation = Orientation.Vertical;

            StackPanel sptime = new StackPanel();

            sptime.Orientation = Orientation.Horizontal;
            DateTime dtNow = DateTime.Now;

            TextBlock tblog = new TextBlock();

            tblog.Width   = 44;
            tblog.Margin  = new Thickness(0);
            tblog.Padding = tblog.Margin;
            sptime.Children.Add(tblog);
            DateTime dtMax = b.Result.programmes.Max(x => x.stop);

            while (dtNow < dtMax)
            {
                TextBlock tbtim = new TextBlock();
                tbtim.Margin        = new Thickness(0);
                tbtim.Padding       = tbtim.Margin;
                tbtim.Width         = 6;
                tbtim.FontSize      = 9;
                tbtim.TextAlignment = TextAlignment.Center;
                if (dtNow.Minute == 27 || dtNow.Minute == 57)
                {
                    dtNow       = dtNow.AddMinutes(3);
                    tbtim.Text  = dtNow.ToString("HH:mm");
                    tbtim.Width = 36;
                    dtNow       = dtNow.AddMinutes(2);
                }
                dtNow = dtNow.AddMinutes(1);
                Border bor = inBorder(tbtim);
                bor.BorderThickness = new Thickness(0, 0, 0, 1);
                sptime.Children.Add(bor);
            }
            programmes.Children.Add(sptime);


            foreach (string chn in b.Result.programmes.OrderBy(x => FixToNum(x.channel)).Select(x => x.channel).Distinct())
            {
                StackPanel sp = new StackPanel();
                sp.Orientation = Orientation.Horizontal;
                sp.Margin      = new Thickness(0);
                Image img = new Image();
                ImageSourceConverter isc         = new ImageSourceConverter();
                ImageSource          imagesource = isc.ConvertFromString("images/" + chn + ".png") as ImageSource;
                img.Source    = imagesource;
                img.MaxHeight = 44;
                sp.Children.Add(inBorder(img));
                Programme lastprg = new Programme();
                foreach (Programme prg in b.Result.programmes.Where(x => x.channel.Equals(chn)).OrderBy(x => x.start))
                {
                    if (prg.stop > DateTime.Now)
                    {
                        if (DateTime.Now < prg.start && sp.Children.Count == 1)
                        {
                            Programme pause = new Programme()
                            {
                                start   = DateTime.Now,
                                stop    = prg.start,
                                title   = "Sändningsuppehåll",
                                desc    = "Uppehåll i sändning",
                                channel = prg.channel
                            };
                            Border bp = NewProg(pause);
                            AddToSp(sp, bp);
                        }
                        Border bo = NewProg(prg);
                        AddToSp(sp, bo);

                        lastprg = prg;
                    }
                }
                if (lastprg.stop < dtMax)
                {
                    Programme pause = new Programme()
                    {
                        start   = lastprg.stop,
                        stop    = dtMax,
                        title   = "Sändningsuppehåll",
                        desc    = "Uppehåll i sändning",
                        channel = lastprg.channel
                    };
                    Border bp = NewProg(pause);
                    AddToSp(sp, bp);
                }
                programmes.Children.Add(sp);
            }
        }