Beispiel #1
0
        private string ToGoogleTable()
        {
            WorksheetFeed  wsFeed    = TargetTable.Worksheets;
            WorksheetEntry worksheet = (WorksheetEntry)wsFeed.Entries[0];
            // Define the URL to request the list feed of the worksheet.
            AtomLink listFeedLink = worksheet.Links.FindService(GDataSpreadsheetsNameTable.ListRel, null);

            // Fetch the list feed of the worksheet.
            ListQuery listQuery = new ListQuery(listFeedLink.HRef.ToString());
            ListFeed  listFeed  = service.Query(listQuery);

            CellQuery cellQuery = new CellQuery(worksheet.CellFeedLink);
            CellFeed  cellFeed  = service.Query(cellQuery);

            CellEntry cellEntry = new CellEntry(1, 1, "oid");

            cellFeed.Insert(cellEntry);
            cellEntry = new CellEntry(1, 2, "value");
            cellFeed.Insert(cellEntry);
            cellEntry = new CellEntry(1, 3, "type");
            cellFeed.Insert(cellEntry);
            ProgressBarSetStartParams(progressBar1, ListData[ListData.Count - 1].Count);
            tabControlShow(progressBar1);
            tabControlShow(label3);
            for (int i = 0; i < ListData[ListData.Count - 1].Count; i++)
            {
                IncrementProgressbar(progressBar1);
                IncrementGeneralLabel(string.Format("Выполнено {0}/{1}", i + 1, ListData[ListData.Count - 1].Count));
                service.Insert(listFeed, ListData[ListData.Count - 1].GetCustom(i));
            }
            tabControlShow(progressBar1, false);
            tabControlShow(label3, false);
            return("Данные записаны");
        }
Beispiel #2
0
        private void writeJob(string siteName, int count, uint index, CellFeed cellFeed)
        {
            Random rand = new Random();

            siteName += " " + new String('I', rand.Next(2) + 1);

            string description = this.partNames[rand.Next(partNames.Count - 1)] + " " +
                                 this.repairActivities[rand.Next(repairActivities.Count - 1)];

            cellFeed.Insert(new CellEntry(index + 2, 1, "JOB" + index.ToString("0000#")));
            cellFeed.Insert(new CellEntry(index + 2, 2, description));
            cellFeed.Insert(new CellEntry(index + 2, 3, siteName));
        }
Beispiel #3
0
        void writeDataToGoogle(object sender, DoWorkEventArgs e)
        {
            WorksheetEntry ws       = this.access.getDataWorksheet();
            CellFeed       cellFeed = this.access.service.Query(new CellQuery(ws.CellFeedLink));

            cellFeed.Insert(new CellEntry(1, 1, "JobID"));
            cellFeed.Insert(new CellEntry(1, 2, "Job Description"));
            cellFeed.Insert(new CellEntry(1, 3, "Job Location"));
            if (this.setup())
            {
                this.writeJobsToGoogleDocs(cellFeed);
            }
        }
        private static bool UpdateHeaders(WorksheetEntry wsEntry)
        {
            bool updated = false;

            try
            {
                googleHeaders = new string[headers.Length];

                CellQuery cellQuery = new CellQuery(wsEntry.CellFeedLink);
                cellQuery.MaximumRow    = 1;
                cellQuery.MinimumRow    = 1;
                cellQuery.MinimumColumn = 1;
                cellQuery.MaximumColumn = (uint)headers.Length;

                CellFeed cellFeed = sheetsService.Query(cellQuery);
                if (cellFeed.Entries.Count > 0)
                {
                    for (int i = 0; i < cellFeed.Entries.Count; i++)
                    {
                        CellEntry cell = (CellEntry)cellFeed.Entries[i];
                        googleHeaders[i] = cell.InputValue;
                    }

                    if (!googleHeaders.Contains("SourceModelId"))
                    {
                        string    headerText = "SourceModelId"; // new column
                        CellEntry cell       = new CellEntry(1, (uint)headers.Length, headerText);
                        cellFeed.Insert(cell);
                        googleHeaders[headers.Length - 1] = headerText;
                    }
                }
                else
                {
                    for (int i = 0; i < headers.Length; i++)
                    {
                        string    headerText = headers[i];
                        CellEntry cell       = new CellEntry(1, Convert.ToUInt16(i + 1), headerText);
                        cellFeed.Insert(cell);
                    }
                    updated = true;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Failed to update headers in Google Worksheet.\n" + ex.Message, "Update Headers", MessageBoxButton.OK, MessageBoxImage.Warning);
            }
            return(updated);
        }
Beispiel #5
0
        public void AddNewHeader(string header)
        {
            WorksheetEntry.Cols += 1;
            WorksheetEntry.Update();
            CellQuery cellQuery = new CellQuery(WorksheetEntry.CellFeedLink);

            cellQuery.MaximumRow = 1;
            //cellQuery.Range = "A543:L543";
            CellFeed  cellFeed  = service.Query(cellQuery);
            CellEntry cellEntry = new CellEntry(1, (uint)cellFeed.Entries.Count + 1, header);

            cellFeed.Insert(cellEntry);
        }
Beispiel #6
0
        /// <summary>
        /// 指定したシートにヘッダを追加
        /// </summary>
        /// <param name="sheet">ヘッダを追加するワークシート</param>
        /// <param name="headers">ヘッダ</param>
        /// <returns></returns>
        bool AddNewHeader(WorksheetEntry sheet, params string[] headers)
        {
            Debug.WriteLine("AddHeader num=" + headers.Count().ToString());

            //現状、どっちでも動く
//            CellQuery cellQuery = new CellQuery(sheet.CellFeedLink);
//            CellFeed cellFeed = _wrapper.Query(cellQuery);
            CellFeed cellFeed = sheet.QueryCellFeed();

            uint column = 1;

            //InsertはBatch処理できないらしい。
            foreach (var it in headers)
            {
                Debug.WriteLine(string.Format("AddHeader name:{0} column:{1}", it, column));
                var entry = new CellEntry(1, column, it);
                column++;
                cellFeed.Insert(entry);
            }

            return(true);
        }
        public override void Log(LoggingEntery LE)
        {
            IniFile Ini = new IniFile(Path.Combine(Environment.CurrentDirectory, "GoogleDocs.ini"));

            // nir start
            ////////////////////////////////////////////////////////////////////////////
            // STEP 1: Configure how to perform OAuth 2.0
            ////////////////////////////////////////////////////////////////////////////

            // TODO: Update the following information with that obtained from
            // https://code.google.com/apis/console. After registering
            // your application, these will be provided for you.

            //string CLIENT_ID = "339569043085-6k0io9kdubi7a3g3jes4m76t614fkccr.apps.googleusercontent.com";

            // This is the OAuth 2.0 Client Secret retrieved
            // above.  Be sure to store this value securely.  Leaking this
            // value would enable others to act on behalf of your application!
            //string CLIENT_SECRET = "wWC4Wcb12RbQg4YuGWJtkh4j";

            // Space separated list of scopes for which to request access.
            //string SCOPE = "https://spreadsheets.google.com/feeds https://docs.google.com/feeds";

            // This is the Redirect URI for installed applications.
            // If you are building a web application, you have to set your
            // Redirect URI at https://code.google.com/apis/console.
            //tring REDIRECT_URI = "urn:ietf:wg:oauth:2.0:oob";

            ////////////////////////////////////////////////////////////////////////////
            // STEP 2: Set up the OAuth 2.0 object
            ////////////////////////////////////////////////////////////////////////////

            // OAuth2Parameters holds all the parameters related to OAuth 2.0.
            OAuth2Parameters parameters = new OAuth2Parameters();

            // Set your OAuth 2.0 Client Id (which you can register at
            // https://code.google.com/apis/console).
            parameters.ClientId = Ini.IniReadValue(ConnectSection, "ClientID");

            // Set your OAuth 2.0 Client Secret, which can be obtained at
            // https://code.google.com/apis/console.
            parameters.ClientSecret = Ini.IniReadValue(ConnectSection, "ClientSecret");

            // Set your Redirect URI, which can be registered at
            // https://code.google.com/apis/console.
            parameters.RedirectUri = Ini.IniReadValue(ConnectSection, "RedirectURI");

            // Set your refresh token
            parameters.RefreshToken = Ini.IniReadValue(ConnectSection, "RefreshToken");
            parameters.AccessToken  = Ini.IniReadValue(ConnectSection, "LastAccessToken");

            // Set the scope for this particular service.
            parameters.Scope = Ini.IniReadValue(ConnectSection, "Scope");

            // Get the authorization url.  The user of your application must visit
            // this url in order to authorize with Google.  If you are building a
            // browser-based application, you can redirect the user to the authorization
            // url.
            //string authorizationUrl = OAuthUtil.CreateOAuth2AuthorizationUrl(parameters);
            //Console.WriteLine(authorizationUrl);
            //Console.WriteLine("Please visit the URL above to authorize your OAuth "
            //  + "request token.  Once that is complete, type in your access code to "
            //  + "continue...");

            ////////////////////////////////////////////////////////////////////////////
            // STEP 4: Get the Access Token
            ////////////////////////////////////////////////////////////////////////////

            // Once the user authorizes with Google, the request token can be exchanged
            // for a long-lived access token.  If you are building a browser-based
            // application, you should parse the incoming request token from the url and
            // set it in OAuthParameters before calling GetAccessToken().
            OAuthUtil.RefreshAccessToken(parameters);//parameters.AccessToken;
            Ini.IniWriteValue(ConnectSection, "LastAccessToken", parameters.AccessToken);
            // Console.WriteLine("OAuth Access Token: " + accessToken);

            ////////////////////////////////////////////////////////////////////////////
            // STEP 5: Make an OAuth authorized request to Google
            ////////////////////////////////////////////////////////////////////////////

            // Initialize the variables needed to make the request
            GOAuth2RequestFactory requestFactory =
                new GOAuth2RequestFactory(null, "OctoTipPlus", parameters);
            SpreadsheetsService myService = new SpreadsheetsService("OctoTipPlus");

            myService.RequestFactory = requestFactory;
            // nir end

            string User     = Ini.IniReadValue("UserLogin", "User");
            string Password = Ini.IniReadValue("UserLogin", "Password");

            //	SpreadsheetsService myService = new SpreadsheetsService("MySpreadsheetIntegration-v1");
            //myService.setUserCredentials(User,Password);

            SpreadsheetQuery Squery = new SpreadsheetQuery();
            string           Sender = LE.Sender;

            Squery.Title = Sender;
            Squery.Exact = true;
            SpreadsheetFeed Sfeed;

            try
            {
                Sfeed = myService.Query(Squery);
            }
            catch (Google.GData.Client.InvalidCredentialsException e)
            {
                throw(new Exception(string.Format("Credentials error in google acount for user:{0}", User), e));
            }


            if (Sfeed.Entries.Count == 0)
            {
                //DriveService service1 = new DriveService();

                //service.SetAuthenticationToken(parameters.AccessToken);//.setUserCredentials(User,Password);
                //Google.GData.Client.GOAuth2RequestFactory requestf =  new Google.GData.Client.GOAuth2RequestFactory(null, "OctoTipPlus",parameters);
                OAuthUtil.RefreshAccessToken(parameters);                //parameters.AccessToken;
                Ini.IniWriteValue(ConnectSection, "LastAccessToken", parameters.AccessToken);
                Google.GData.Documents.DocumentsService service = new Google.GData.Documents.DocumentsService("OctoTipPlus");
                GOAuth2RequestFactory requestFactory2           =
                    new GOAuth2RequestFactory(null, "OctoTipPlus", parameters);
                service.RequestFactory = requestFactory2;
                //service.RequestFactory=requestf;
                // Instantiate a DocumentEntry object to be inserted.
                Google.GData.Documents.DocumentEntry entry = new Google.GData.Documents.DocumentEntry();

                // Set the document title
                entry.Title.Text = LE.Sender;

                // Add the document category
                entry.Categories.Add(Google.GData.Documents.DocumentEntry.SPREADSHEET_CATEGORY);

                // Make a request to the API and create the document.
                Google.GData.Documents.DocumentEntry newEntry = service.Insert(
                    Google.GData.Documents.DocumentsListQuery.documentsBaseUri, entry);

                Squery       = new SpreadsheetQuery();
                Squery.Title = Sender;
                Squery.Exact = true;
                Sfeed        = myService.Query(Squery);
            }


            SpreadsheetEntry spreadsheet = (SpreadsheetEntry)Sfeed.Entries[0];

            WorksheetEntry ProtocolWorksheetEntry = null;


            AtomLink link = spreadsheet.Links.FindService(GDataSpreadsheetsNameTable.WorksheetRel, null);

            WorksheetQuery Wquery = new WorksheetQuery(link.HRef.ToString());
            WorksheetFeed  Wfeed  = myService.Query(Wquery);

            foreach (WorksheetEntry worksheet in Wfeed.Entries)
            {
                if (worksheet.Title.Text == LE.SubSender)
                {
                    ProtocolWorksheetEntry = worksheet;
                }
            }


            if (ProtocolWorksheetEntry == null)
            {
                // cteate new worksheet
                WorksheetEntry worksheet = new WorksheetEntry();
                worksheet.Title.Text = LE.SubSender;
                worksheet.Cols       = 3;
                worksheet.Rows       = 5;

                // Send the local representation of the worksheet to the API for
                // creation.  The URL to use here is the worksheet feed URL of our
                // spreadsheet.
                WorksheetFeed wsFeed = spreadsheet.Worksheets;
                ProtocolWorksheetEntry = myService.Insert(wsFeed, worksheet);



                CellFeed cellFeed = ProtocolWorksheetEntry.QueryCellFeed();

                CellEntry cellEntry = new CellEntry(1, 1, DateHeader);
                cellFeed.Insert(cellEntry);
                cellEntry = new CellEntry(1, 2, MessageHeader);
                cellFeed.Insert(cellEntry);
            }


            // Define the URL to request the list feed of the worksheet.
            AtomLink listFeedLink = ProtocolWorksheetEntry.Links.FindService(GDataSpreadsheetsNameTable.ListRel, null);

            // Fetch the list feed of the worksheet.
            ListQuery listQuery = new ListQuery(listFeedLink.HRef.ToString());
            ListFeed  listFeed  = myService.Query(listQuery);

            string Message = string.Format("{0}\n{1}", LE.Title, LE.Message);

            // Create a local representation of the new row.
            ListEntry row = new ListEntry();

            row.Elements.Add(new ListEntry.Custom()
            {
                LocalName = DateHeader, Value = DateTime.Now.ToString()
            });
            row.Elements.Add(new ListEntry.Custom()
            {
                LocalName = MessageHeader, Value = Message
            });


            // Send the new row to the API for insertion.
            myService.Insert(listFeed, row);
        }
        public void method1()
        {
            OAuth2Parameters parameters = (OAuth2Parameters)Session["para"];

            if (!string.IsNullOrEmpty(Request.QueryString["Code"]))
            {
                parameters.AccessCode = Request.QueryString["Code"].ToString();// = Console.ReadLine();


                OAuthUtil.GetAccessToken(parameters);
                //
                //parameters.AccessToken= credential.Token.AccessToken;
                //
                string accessToken = parameters.AccessToken;
                Console.WriteLine("OAuth Access Token: " + accessToken);

                GOAuth2RequestFactory requestFactory =
                    new GOAuth2RequestFactory(null, "MySpreadsheetIntegration-v1", parameters);
                SpreadsheetsService service = new SpreadsheetsService("MySpreadsheetIntegration-v1");
                service.RequestFactory = requestFactory;


                SpreadsheetQuery query = new SpreadsheetQuery();

                SpreadsheetFeed feed = service.Query(query);

                //foreach (SpreadsheetEntry entry in feed.Entries)
                //{
                //    Console.WriteLine(entry.Title.Text);
                //}

                //SpreadsheetEntry spreadsheet = (SpreadsheetEntry)feed.Entries[0];
                if (feed.Entries.Where(x => x.Title.Text == "testSS").First() != null)
                {
                    SpreadsheetEntry spreadsheet = (SpreadsheetEntry)feed.Entries.Where(x => x.Title.Text == "testSS").First();
                    //SpreadsheetEntry spreadsheet = (SpreadsheetEntry)feed.CreateFeedEntry();
                    //Console.WriteLine(spreadsheet.Title.Text);
                    //AtomTextConstruct at = new AtomTextConstruct(AtomTextConstructElementType.Title);
                    //at.Text = "test";
                    //spreadsheet.Title = at;
                    //    spreadsheet.Worksheets.AddExtension(requestFactory);
                    var           t     = (Home.JSONClass)Session["UserDataGet"];
                    List <object> lists = new List <object>()
                    {
                        t.email, t.name, t.given_name, t.family_name, t.picture, t.Gender, t.locale
                    };

                    // Get the first worksheet of the first spreadsheet.
                    // TODO: Choose a worksheet more intelligently based on your
                    // app's needs.
                    WorksheetFeed  wsFeed    = spreadsheet.Worksheets;
                    WorksheetEntry worksheet = (WorksheetEntry)wsFeed.Entries[0];

                    // Define the URL to request the list feed of the worksheet.
                    AtomLink listFeedLink = worksheet.Links.FindService(GDataSpreadsheetsNameTable.ListRel, null);

                    // Fetch the list feed of the worksheet.
                    ListQuery listQuery = new ListQuery(listFeedLink.HRef.ToString());
                    ListFeed  listFeed  = service.Query(listQuery);


                    CellQuery cellQuery = new CellQuery(worksheet.CellFeedLink);
                    CellFeed  cellFeed  = service.Query(cellQuery);

                    CellEntry cellEntry = new CellEntry(1, 1, "email");
                    cellFeed.Insert(cellEntry);
                    cellEntry = new CellEntry(1, 2, "name");
                    cellFeed.Insert(cellEntry);
                    cellEntry = new CellEntry(1, 3, "givenname");
                    cellFeed.Insert(cellEntry);
                    cellEntry = new CellEntry(1, 4, "familyname");
                    cellFeed.Insert(cellEntry);
                    cellEntry = new CellEntry(1, 5, "picture");
                    cellFeed.Insert(cellEntry);
                    cellEntry = new CellEntry(1, 6, "gender");
                    cellFeed.Insert(cellEntry);
                    cellEntry = new CellEntry(1, 7, "locale");
                    cellFeed.Insert(cellEntry);



                    // Create a local representation of the new row.
                    ListEntry row = new ListEntry();
                    row.Elements.Add(new ListEntry.Custom()
                    {
                        LocalName = "email", Value = t.email
                    });
                    row.Elements.Add(new ListEntry.Custom()
                    {
                        LocalName = "name", Value = t.name
                    });
                    row.Elements.Add(new ListEntry.Custom()
                    {
                        LocalName = "givenname", Value = t.given_name
                    });
                    row.Elements.Add(new ListEntry.Custom()
                    {
                        LocalName = "familyname", Value = t.family_name
                    });
                    row.Elements.Add(new ListEntry.Custom()
                    {
                        LocalName = "picture", Value = t.picture
                    });
                    row.Elements.Add(new ListEntry.Custom()
                    {
                        LocalName = "gender", Value = t.Gender
                    });
                    row.Elements.Add(new ListEntry.Custom()
                    {
                        LocalName = "locale", Value = t.locale
                    });
                    // Send the new row to the API for insertion.
                    service.Insert(listFeed, row);
                }
                Response.Redirect("Home.aspx?access_token=" + Session["access_token"].ToString());
            }
        }