private void SetCurrentLine(int nLine, bool bDiagram)
 {
     m_nCurrentLine    = nLine;
     m_nCurrentTrigram = m_nCurrentLine / 3;
     if (bDiagram)
     {
         m_vsCurrent = m_hvsCurrent.Trigram(nLine / 3).Line(nLine % 3);
     }
 }
 public static void SetHome()
 {
     if (m_hvsCast != null)
     {
         m_hvsCurrent = new CHexagramValueSequencer(ref m_hvsCast);
         m_vsCurrent  = m_hvsCurrent;
         UpdateDiagrams();
     }
 }
        public DiagramPage()
        {
            m_dp = this;
            InitializeComponent();
            NavigationCacheMode = NavigationCacheMode.Enabled;

            m_brMonoColor   = App.Current.RequestedTheme == ApplicationTheme.Dark ? m_brLightGray : m_brDarkGray;
            m_brMovingYang  = App.Current.RequestedTheme == ApplicationTheme.Dark ? m_brBlack : m_brWhite;
            m_brSelectStoke = App.Current.RequestedTheme == ApplicationTheme.Dark ? m_brBlue : m_brRed;
            m_brBackStoke   = App.Current.RequestedTheme == ApplicationTheme.Dark ? m_brWhite : m_brBlack;

            m_recLines[0, 0] = recLine0L;
            m_recLines[1, 0] = recLine1L;
            m_recLines[2, 0] = recLine2L;
            m_recLines[3, 0] = recLine3L;
            m_recLines[4, 0] = recLine4L;
            m_recLines[5, 0] = recLine5L;

            m_recLines[0, 1] = recLine0R;
            m_recLines[1, 1] = recLine1R;
            m_recLines[2, 1] = recLine2R;
            m_recLines[3, 1] = recLine3R;
            m_recLines[4, 1] = recLine4R;
            m_recLines[5, 1] = recLine5R;

            m_recLinesO[0] = recLine0O;
            m_recLinesO[1] = recLine1O;
            m_recLinesO[2] = recLine2O;
            m_recLinesO[3] = recLine3O;
            m_recLinesO[4] = recLine4O;
            m_recLinesO[5] = recLine5O;

            Sequences.Initialise();

            //YijingData yd = new YijingData();
            //yd.InitialseDB();

            m_hvsCurrent = new CHexagramValueSequencer(0);

            SetDiagramLsb(0);

            m_hvsCurrent.First();
            m_vsCurrent                 = m_hvsCurrent;
            cbiHexagram.IsSelected      = true;
            cbxDiagramType.SelectedItem = cbiHexagram;
            UpdateDiagrams(true);

            //m_tskThinkGear.Start();
        }
 private static void SetMove()
 {
     if (m_hvsCurrent.IsMoving)
     {
         m_hvsPrimary = new CHexagramValueSequencer(ref m_hvsCurrent);
         m_vsCurrent.Move();
     }
     else
     if (m_hvsPrimary != null)
     {
         m_hvsCurrent = new CHexagramValueSequencer(ref m_hvsPrimary);
         m_vsCurrent  = m_hvsCurrent;
         m_hvsPrimary = null;
     }
     UpdateDiagrams();
 }
 private void cbxDiagramType_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     if ((cbxDiagramType != null) && (m_hvsCurrent != null))
     {
         if (cbxDiagramType.SelectedItem == cbiLine)
         {
             m_vsCurrent = m_hvsCurrent.Trigram(m_nCurrentTrigram).Line(m_nCurrentLine % 3);
         }
         else
         if (cbxDiagramType.SelectedItem == cbiTrigram)
         {
             m_vsCurrent = m_hvsCurrent.Trigram(m_nCurrentTrigram);
         }
         else
         {
             m_vsCurrent = m_hvsCurrent;
         }
         UpdateDiagrams(true);
     }
 }
        private async static void EndCast()
        {
            String strTemp = "#Yijing ☯️ " + m_hvsCurrent.DescribeCast() + "\n\nW10 v5.2.9  ";

            strTemp += m_dp.cbxDiagramMode.SelectionBoxItem + " " + Sequences.DiagramSetting(13, Sequences.HexagramSequence) + " " +
                       Sequences.DiagramSetting(4, 00000000000) + " " + Sequences.DiagramSetting(6, Sequences.LineRatio) + " " +
                       Sequences.DiagramSetting(15, Sequences.HexagramLabel) + "\n\nhttps://www.microsoft.com/store/apps/9n5q9qxxh7wj\n\n";

            Analytics.TrackEvent("Cast: " + m_hvsCurrent.DescribeCast());

            m_hvsCast   = new CHexagramValueSequencer(ref m_hvsCurrent);
            m_vsCurrent = m_hvsCurrent;

            m_dp.cbxDiagramMode.SelectedItem  = m_dp.cbiExplore;
            m_dp.cbxDiagramType.SelectedItem  = m_dp.cbiHexagram;
            m_dp.cbxDiagramSpeed.SelectedItem = m_dp.cbiMedium;
            m_dp.EnableControls(true);

            await m_dp.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, UpdateDiagrams);

            await Task.Delay(1000);

            MainPage.NavigateTo(typeof(TextPage));
        }