public static string DecorateSnippet(MyThread2 th)
        {
            string sRet = RscJSon.UnDecorate(th.Snippet);

            //Making more readable...
            sRet += "...";
            sRet  = sRet.Replace("! ", "!\n\n");
            sRet  = sRet.Replace(". ", ".\n\n");

            //Adding HisID to debug, test, etc...
            sRet += "\n\n(History ID: " + th.HistoryID + ")";

            if (th.Acknowledged)
            {
                sRet += "\n(acknowledged: " + th.DateAcked.ToString() + ")";
            }

            return(sRet);
        }
Esempio n. 2
0
        private void LoadContent( )
        {
            string sContent = m_sContent_TEMP;

            m_sContent_TEMP = "";

            m_aLines.Text = sContent;

            string      sErr = "";
            RscJSonItem json = RscJSon.FromResponseContetn(sContent, out sErr);

            if (sErr.Length > 0)
            {
                LogError(sErr);
            }

            RscViewer_JSon_TreeLbItem ti = new RscViewer_JSon_TreeLbItem(m_aTI, null);

            m_aTI.Add(ti);

            ti.SetJSon(json);
        }
Esempio n. 3
0
        void m_gAuth_ResponseReceived(object sender, RscGoogleAuthEventArgs e)
        {
            string      sErr     = "";
            RscJSonItem jsonRoot = null;

            jsonRoot = RscJSon.FromResponseContetn(jsonRoot, e.Content, out sErr, e.Uri, e.ContentType);
            if (sErr.Length > 0)
            {
                //OnDone( -101 );

                // If m_gAuth_AuthenticationFailed has called,
                // this will called too!!!
                OnDone(ciAuthFail);

                return;
            }

            string sErrorCode = "";

            if (jsonRoot.ChildCount > 0)
            {
                if (jsonRoot.GetChild(0).Name == "error")
                {
                    OnDone(-102);
                    return;
                }
            }

            string sPath = AppLogic.csSecretsFolder + "\\" + m_sUserIDlast;

            //Saving threads to have older thread content...
            int iNew = AppLogic.SaveThreadData(true, sPath, jsonRoot);

            OnDone(iNew);

            //MessageBox.Show( "Completed..." );
        }
Esempio n. 4
0
        private void DoLoad(TreeLbItem ti, string sContent, string sID, string sDetails, bool bSaveJSon)
        {
            string      sErr     = "";
            RscJSonItem jsonRoot = null;

            /*
             * jsonRoot = new RscJSonItem();
             * jsonRoot.ID = response.ResponseUri.ToString();
             * jsonRoot.Name = "IRestResponse<Object>";
             * jsonRoot.AddProperty( "Response Status", response.ResponseStatus.ToString() );
             * jsonRoot.AddProperty( "Response Uri", response.ResponseUri.ToString() );
             * jsonRoot.AddProperty( "Content Length", response.ContentLength.ToString() );
             */
            jsonRoot = RscJSon.FromResponseContetn(jsonRoot, sContent, out sErr, sID, sDetails);
            if (sErr.Length > 0)
            {
                LogError(sErr);
            }

            if (jsonRoot != null)
            {
                // //
                //

                string sErrorCode = "";
                if (jsonRoot.ChildCount > 0)
                {
                    if (jsonRoot.GetChild(0).Name == "error")
                    {
                        //For example: Required Scope not specified while LogOn!!!

                        sErrorCode = jsonRoot.GetChildPropertyValue(0, "code");
                        string sErrorMessage = jsonRoot.GetChildPropertyValue(0, "message");

                        LogError("Error response:\ncode: " + sErrorCode + "\nmessage: " + sErrorMessage);
                    }
                }

                //
                // //

                //Show Error JSon!!!
                //if( sErrorCode.Length == 0 )
                {
                    //Try to load result as is...
                    GoogleRequest gr = GoogleUtils.GoogleRequestFromUrl(jsonRoot.ID);

                    switch (gr)
                    {
                    case GoogleRequest.UserInfo:
                    case GoogleRequest.GMail_Messages:
                    case GoogleRequest.GMail_Message_Details:
                    case GoogleRequest.GMail_Labels:
                    case GoogleRequest.GMail_Threads:
                    case GoogleRequest.GMail_History:
                    case GoogleRequest.GMail_Drafts:
                    {
                        ti.SetResponse(jsonRoot);

                        RscStore store = new RscStore();

                        if (gr == GoogleRequest.UserInfo)
                        {
                            string sUserID = jsonRoot.GetPropertyValue("id");

                            if (m_sUserIDlast.Length == 0 || m_sUserIDlast != sUserID)
                            {
                                if (sUserID.Length > 0)
                                {
                                    m_sUserIDlast = sUserID;
                                    store.WriteTextFile(csSecretsFolder + "\\" + "UserIDlast.txt", m_sUserIDlast, true);

                                    AddRootContainers();
                                }
                            }
                        }

                        string sPath = "";
                        string sFn   = "";
                        if (m_sUserIDlast.Length > 0)
                        {
                            sPath = csSecretsFolder + "\\" + m_sUserIDlast;
                            sFn   = Uri2FileName(jsonRoot.ID);
                        }
                        if (bSaveJSon)
                        {
                            if (m_sUserIDlast.Length > 0)
                            {
                                store.CreateFolderPath(sPath);

                                store.WriteTextFile(sPath + "\\" + sFn + ".json", sContent, true);

                                m_btnCleanUp.Visibility = Rsc.Visible;
                            }
                        }

                        if (sErr.Length == 0)
                        {
                            if (sFn.Length > 0)
                            {
                                if (bSaveJSon)
                                {
                                    m_AppFrame.StatusText = "Downloaded to " + sPath + "\\" + sFn + ".json";
                                }
                                else
                                {
                                    m_AppFrame.StatusText = "Loaded from " + sPath + "\\" + sFn + ".json";
                                }
                            }
                            else
                            {
                                if (bSaveJSon)
                                {
                                    m_AppFrame.StatusText = "Downloaded...";
                                }
                                else
                                {
                                    m_AppFrame.StatusText = "Loaded...";
                                }
                            }
                        }

                        break;
                    }

                    default:
                    {
                        //Unexpected...
                        LogError(jsonRoot.ToDecoratedString());
                        break;
                    }
                    }
                }
            }
        }
Esempio n. 5
0
        private void m_btnInit_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            if (m_gAuth == null)
            {
                RscStore store = new RscStore();
                store.CreateFolderPath(csSecretsFolder);

                string sPath      = csSecretsFolder + "\\" + "client_secret.json";
                bool   bNotExists = false;
                string sJSon      = store.ReadTextFile(sPath, "", out bNotExists);
                if (bNotExists)
                {
                    MessageBox.Show("File " + sPath + " does not exists!"
                                    + "\n\n(NOTE: Drive A: reffers to Isolated Storage.)"
                                    + "\n\n(NOTE: You can download missing file from FTP Cloud. Press Tools button in Caption Bar.)");
                    return;
                }

                string      sErr = "";
                RscJSonItem json = RscJSon.FromResponseContetn(sJSon, out sErr);
                if (sErr.Length > 0)
                {
                    LogError(sErr);

                    //Try to get values needed...
                    //return;
                }

                //To see content of json...
                TreeLbItem tiJSon;
                tiJSon       = new TreeLbItem(m_aTI, null);
                tiJSon.Title = "client_secret.json";
                m_aTI.Add(tiJSon);
                tiJSon.SetResponse(json, false);

                bool bTmp;
                m_sUserIDlast = store.ReadTextFile(csSecretsFolder + "\\" + "UserIDlast.txt", "", out bTmp);


                // //
                //

                m_gAuth = new RscGoogleAuth(json,
                                            RscGoogleScopes.UserinfoEmail
                                            + " " + RscGoogleScopes.UserinfoProfile
                                            + " " + RscGoogleScopes.Gmail,
                                            webBrowser1);

                m_gAuth.Authenticated        += new EventHandler(m_gAuth_Authenticated);
                m_gAuth.AuthenticationFailed += new EventHandler(m_gAuth_AuthenticationFailed);
                m_gAuth.ShowAuthPage         += new EventHandler(m_gAuth_ShowAuthPage);
                m_gAuth.ResponseReceived     += new Ressive.GoogleApi.RscGoogleAuth.ResponseReceived_EventHandler(m_gAuth_ResponseReceived);

                m_gAuth.AuthResult = LoadAuthResult();

                //
                // //


                m_btnInit.Visibility = Rsc.Collapsed;

                m_btnExpandAll.Visibility   = Rsc.Visible;
                m_btnCollapseAll.Visibility = Rsc.Visible;

                //DO NOT!!!
                //m_btnLogOut.Visibility = Rsc.Visible;

                m_AppFrame.StatusText = "Initialized...";

                // //
                //

                TreeLbItem ti;

                ti    = new TreeLbItem(m_aTI, null);
                ti.gr = GoogleRequest.UserInfo;
                m_aTI.Add(ti);

                if (m_sUserIDlast.Length > 0)
                {
                    AddRootContainers();
                }

                //
                // //
            }
        }
Esempio n. 6
0
        public int ReadThreadData()
        {
            RscStore store = new RscStore();

            store.CreateFolderPath(AppLogic.csSecretsFolder);

            string sPath      = AppLogic.csSecretsFolder + "\\" + "client_secret.json";
            bool   bNotExists = false;
            string sJSon      = store.ReadTextFile(sPath, "", out bNotExists);

            if (bNotExists)
            {
                return(-2);
            }

            string      sErr = "";
            RscJSonItem json = RscJSon.FromResponseContetn(sJSon, out sErr);

            if (sErr.Length > 0)
            {
                //Try to get values needed...
                //return -3;
            }

            m_sUserIDlast = store.ReadTextFile(AppLogic.csSecretsFolder + "\\" + "UserIDlast.txt", "");
            if (m_sUserIDlast.Length == 0)
            {
                return(-3);
            }

            // //
            //

            //if( gAuth == null )
            //{
            RscGoogleAuth gAuth = new RscGoogleAuth(json,
                                                    RscGoogleScopes.UserinfoEmail
                                                    + " " + RscGoogleScopes.UserinfoProfile
                                                    + " " + RscGoogleScopes.Gmail,
                                                    null); //webBrowser1 );

            gAuth.Authenticated        += new EventHandler(m_gAuth_Authenticated);
            gAuth.AuthenticationFailed += new EventHandler(m_gAuth_AuthenticationFailed);
            gAuth.ShowAuthPage         += new EventHandler(m_gAuth_ShowAuthPage);
            gAuth.ResponseReceived     += new Ressive.GoogleApi.RscGoogleAuth.ResponseReceived_EventHandler(m_gAuth_ResponseReceived);

            //bool bNotExists;
            gAuth.AuthResult = LoadAuthResult(out bNotExists);
            if (bNotExists)
            {
                return(-4);
            }
            //}

            //
            // //

            string sUriResource = "";
            string sBaseUrl     = GoogleUtils.GoogleRequestBaseUrl(GoogleRequest.GMail_Threads, out sUriResource, "me", "");

            if (sBaseUrl.Length == 0)
            {
                return(-5);
            }

            /*
             * Object oRes = null;
             * var taskHlp = Task.Run(async () => { oRes = await m_gAuth.SendRequestTask( sBaseUrl, sUriResource ); });
             * taskHlp.Wait();
             *
             * if( oRes == null )
             *      return -6;
             * else
             *      return oRes.ToString().Length;
             */

            //Task<Object> tsk = gAuth.SendRequestTask( sBaseUrl, sUriResource );
            //tsk.Wait();

            /*
             * int iRet = 0;
             * var taskHlp = Task.Run(async () => { iRet = await SendRequestTask( gAuth, sBaseUrl, sUriResource ); });
             * taskHlp.Wait();
             */

            /*
             * Task<Object> tsk = gAuth.SendRequestTask( sBaseUrl, sUriResource );
             * for(;;)
             * {
             *      if( tsk.IsCompleted )
             *              break;
             *
             *      //System.Threading.Tasks.Task.Delay(100).Wait();
             *
             *      MessageBox.Show( "Not complete..." );
             * }
             */

            try
            {
                gAuth.SendRequest(sBaseUrl, sUriResource);
            }
            catch (Exception)
            {
                return(-6);
            }

            return(0);
        }