Esempio n. 1
0
        private void DoDemoUpdate()
        {
            //find this random cell and color it
            this.Dispatcher.Invoke(DispatcherPriority.Normal, (Action)(() =>
            {
                MainWindow MainObject = (MainWindow)App.Current.MainWindow;

                if (MainObject == null)
                {
                    return;
                }

                GridContentArea grid = this.DrawArea;

                int Rows = grid.GetCellsInHeight();
                int Cols = grid.GetCellsInWidth();

                //get a random cell
                Random rnd = new Random();
                int RandRow = rnd.Next(0, Rows);
                int RandCol = rnd.Next(0, Cols);

                PhoneNumber RandomElement = RandomElement = grid.PaintArea.Children.Cast <PhoneNumber>().FirstOrDefault(e => Grid.GetRow(e) == RandRow && Grid.GetColumn(e) == RandCol);
                if (RandomElement != null)
                {
                    //try to set random look between simple extension and range

                    /*  if (rnd.Next(0, 10) < 5)
                     *    RandomElement.SetIsRange(true);
                     * else
                     *    RandomElement.SetIsRange(false);*/

                    //set a random status color
                    int RandStatus = rnd.Next(0, (int)PhoneStatusCodes.NumberOfStatusCodes);
                    if (RandomElement.IsSubscriberRange() == false)
                    {
                        RandomElement.SetStatus((PhoneStatusCodes)RandStatus);
                    }
                    else
                    {
                        RandomElement.SetStatus((PhoneStatusCodes)RandStatus, rnd.Next(0, 9).ToString());
                    }

                    //set a random extension
                    RandomElement.SetExtension(rnd.Next(0, 9999).ToString());
                    RandomElement.SetName("Name" + RandomElement.GetExtension().ToString());

                    //can we see name properly ?
                    if (rnd.Next(0, 10) < 5)
                    {
                        RandomElement.OnToggleShowName();
                    }

                    //note can be seen in the tooltip
                    RandomElement.SetNote("Topcomment" + RandomElement.GetExtension().ToString());

                    //absence status can be seen in the tooltip
                    if (rnd.Next(0, 10) < 5)
                    {
                        RandomElement.OnAbsenceStatusUpdate(false);
                    }
                    else
                    {
                        RandomElement.OnAbsenceStatusUpdate(true);
                    }

                    //can we see prefix ?
                    RandomElement.SetPrefix(rnd.Next(0, 9999).ToString());
                    if (rnd.Next(0, 10) < 5)
                    {
                        RandomElement.OnToggleShowCanonical();
                    }

                    //try to set random forwarding status
                    ForwardStatusStore fss = new ForwardStatusStore(RandomElement.GetExtension());
                    if (rnd.Next(0, 10) < 5)
                    {
                        fss.ForwardType = CallForwardingTypes.CallForwardDestination;
                    }
                    else
                    {
                        fss.ForwardType = CallForwardingTypes.CallForwardNone;
                    }
                    RandomElement.OnForwardingChange(fss);
                }
            }));
        }