public static bool CheckForNotExpiredAccess(string AccessTokenStatus, string RefreshTokenStatus) { GoogleTokenModel TokenObject = new GoogleTokenModel(); TokenObject.Access_Token = AccessTokenStatus; TokenObject.Refresh_Token = RefreshTokenStatus; CalendarService CalService = GoogleCalendarManager.GetCalendarService(TokenObject); string AllCalendarFeed = @"http://www.google.com/calendar/feeds/default/allcalendars/full"; Uri postUri = new Uri(AllCalendarFeed); CalendarQuery CalendarQuery = new CalendarQuery(); CalendarQuery.Uri = postUri; bool inform = true; try { CalendarFeed calFeed = CalService.Query(CalendarQuery); } catch (Exception e) { inform = false; }; return(inform); }
protected void BtnCreateUpdateEvent_Click(object sender, EventArgs e) { List <GoogleCalendarAppointmentModel> GoogleCalendarAppointmentModelList = new List <GoogleCalendarAppointmentModel>(); List <GoogleTokenModel> GoogleTokenModelList = new List <GoogleTokenModel>(); GoogleCalendarAppointmentModel GoogleCalendarAppointmentModelObj = new GoogleCalendarAppointmentModel(); GoogleTokenModel GoogleTokenModelObj = new GoogleTokenModel(); #region populate GoogleAppointment values GoogleCalendarAppointmentModelObj.EventID = "1"; GoogleCalendarAppointmentModelObj.EventTitle = string.IsNullOrEmpty(TxtTitle.Text) == false ? TxtTitle.Text : "New Event from google api"; GoogleCalendarAppointmentModelObj.EventStartTime = Convert.ToDateTime(TxtStartTime.Text); GoogleCalendarAppointmentModelObj.EventEndTime = Convert.ToDateTime(TxtEndTime.Text); //Giving the proper location so you can view on the map in google calendar GoogleCalendarAppointmentModelObj.EventLocation = "Seincomp, Buenos Aires"; GoogleCalendarAppointmentModelObj.EventDetails = string.IsNullOrEmpty(TxtEventDetails.Text) == false ? TxtEventDetails.Text : "New Details"; GoogleCalendarAppointmentModelList.Add(GoogleCalendarAppointmentModelObj); #endregion #region populate GoogleToken values if (XmlDoc.HasChildNodes == false) { XmlDoc.Load(AppDomain.CurrentDomain.BaseDirectory + "App_Data\\XMLfile.xml"); } GoogleTokenModelObj.Access_Token = XmlDoc.DocumentElement.SelectSingleNode("//User[@UserID='1']").Attributes[AccessToken].Value; GoogleTokenModelObj.Refresh_Token = XmlDoc.DocumentElement.SelectSingleNode("//User[@UserID='1']").Attributes[RefreshToken].Value; GoogleTokenModelList.Add(GoogleTokenModelObj); #endregion #region Add event to google calendar if (GoogleCalendarManager.AddUpdateDeleteEvent(GoogleCalendarAppointmentModelList, GoogleTokenModelList, 0) == true) { if (XmlDoc.HasChildNodes == false) { XmlDoc.Load(AppDomain.CurrentDomain.BaseDirectory + "App_Data\\XMLfile.xml"); } //save data in DB / xml XmlDoc.DocumentElement.SelectSingleNode("//Event").Attributes["EventTitle"].Value = GoogleCalendarAppointmentModelObj.EventTitle; XmlDoc.DocumentElement.SelectSingleNode("//Event").Attributes["EventStartTime"].Value = GoogleCalendarAppointmentModelObj.EventStartTime.ToString(); XmlDoc.DocumentElement.SelectSingleNode("//Event").Attributes["EventEndTime"].Value = GoogleCalendarAppointmentModelObj.EventEndTime.ToString(); XmlDoc.DocumentElement.SelectSingleNode("//Event").Attributes["EventLocation"].Value = GoogleCalendarAppointmentModelObj.EventLocation; XmlDoc.DocumentElement.SelectSingleNode("//Event").Attributes["EventDetails"].Value = GoogleCalendarAppointmentModelObj.EventDetails; XmlDoc.Save(AppDomain.CurrentDomain.BaseDirectory + "App_Data\\XMLfile.xml"); LblMessage.Text = "Event Created / updated successfully. Go to <a href='https://www.google.com/calendar/' target='blank'>Google Calendar</a> to view your event "; BtnDeleteEvent.Enabled = true; } #endregion }
public static CalendarService GetCalendarService(GoogleTokenModel GoogleTokenModelObj) { GAuthSubRequestFactory authFactory = new GAuthSubRequestFactory("cl", "API Project"); authFactory.Token = GoogleTokenModelObj.Access_Token; authFactory.KeepAlive = true; CalendarService service = new CalendarService("cl"); service.RequestFactory = authFactory; return(service); }
public static CalendarService GetCalendarService(GoogleTokenModel GoogleTokenModelObj) { CalendarService service = null; IAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow( new GoogleAuthorizationCodeFlow.Initializer { ClientSecrets = GetClientConfiguration().Secrets, DataStore = new FileDataStore(gFolder), Scopes = new[] { CalendarService.Scope.Calendar } }); var uri = /*"http://localhost:19594/GoogleCalendarRegistration.aspx";*/ System.Web.HttpContext.Current.Request.Url.ToString(); var code = System.Web.HttpContext.Current.Request["code"]; if (code != null) { var token = flow.ExchangeCodeForTokenAsync(UserId, code, uri.Substring(0, uri.IndexOf("?")), CancellationToken.None).Result; // Extract the right state. var oauthState = AuthWebUtility.ExtracRedirectFromState( flow.DataStore, UserId, HttpContext.Current.Request["state"]).Result; System.Web.HttpContext.Current.Response.Redirect(oauthState); } else { var result = new AuthorizationCodeWebApp(flow, uri, uri).AuthorizeAsync(UserId, CancellationToken.None).Result; if (result.RedirectUri != null) { // Redirect the user to the authorization server. System.Web.HttpContext.Current.Response.Redirect(result.RedirectUri); //var page = System.Web.HttpContext.Current.CurrentHandler as Page; //page.ClientScript.RegisterClientScriptBlock(page.GetType(), // "RedirectToGoogleScript", "window.top.location = '" + result.RedirectUri + "'", true); } else { // The data store contains the user credential, so the user has been already authenticated. service = new CalendarService(new BaseClientService.Initializer { ApplicationName = "My ASP.NET Google Calendar App", HttpClientInitializer = result.Credential }); } } return(service); }
//private void PopulateDDLEvent() //{ // if (XmlDoc.HasChildNodes == false) // { // XmlDoc.Load(AppDomain.CurrentDomain.BaseDirectory + "App_Data\\XMLfile.xml"); // } // XmlNodeList AllEventNodes = XmlDoc.DocumentElement.SelectNodes("//Events/Event"); // if (AllEventNodes != null && AllEventNodes.Count > 0) // { // foreach (XmlNode XmlNodeObj in AllEventNodes) // { // DDLEvent.Items.Add(new ListItem(XmlNodeObj.Attributes["EventTitle"].Value, XmlNodeObj.Attributes["EventID"].Value)); // } // } //} //protected void DDLEvent_SelectedIndexChanged(object sender, EventArgs e) //{ // if (DDLEvent.SelectedIndex != 0) // { // HdnEventID.Value = DDLEvent.SelectedValue; // } //} protected void BtnDeleteEvent_Click(object sender, EventArgs e) { List <GoogleCalendarAppointmentModel> GoogleCalendarAppointmentModelList = new List <GoogleCalendarAppointmentModel>(); List <GoogleTokenModel> GoogleTokenModelList = new List <GoogleTokenModel>(); GoogleCalendarAppointmentModel GoogleCalendarAppointmentModelObj = new GoogleCalendarAppointmentModel(); GoogleTokenModel GoogleTokenModelObj = new GoogleTokenModel(); #region populate GoogleAppointment values GoogleCalendarAppointmentModelObj.EventID = "1"; GoogleCalendarAppointmentModelObj.DeleteAppointment = true; GoogleCalendarAppointmentModelList.Add(GoogleCalendarAppointmentModelObj); #endregion #region populate GoogleToken values if (XmlDoc.HasChildNodes == false) { XmlDoc.Load(AppDomain.CurrentDomain.BaseDirectory + "App_Data\\XMLfile.xml"); } GoogleTokenModelObj.Access_Token = XmlDoc.DocumentElement.SelectSingleNode("//User[@UserID='1']").Attributes[AccessToken].Value; GoogleTokenModelObj.Refresh_Token = XmlDoc.DocumentElement.SelectSingleNode("//User[@UserID='1']").Attributes[RefreshToken].Value; GoogleTokenModelList.Add(GoogleTokenModelObj); #endregion if (GoogleCalendarManager.AddUpdateDeleteEvent(GoogleCalendarAppointmentModelList, GoogleTokenModelList, 0) == true) { if (XmlDoc.HasChildNodes == false) { XmlDoc.Load(AppDomain.CurrentDomain.BaseDirectory + "App_Data\\XMLfile.xml"); } //save data in DB / xml XmlDoc.DocumentElement.SelectSingleNode("//Event").Attributes["EventTitle"].Value = ""; XmlDoc.DocumentElement.SelectSingleNode("//Event").Attributes["EventStartTime"].Value = ""; XmlDoc.DocumentElement.SelectSingleNode("//Event").Attributes["EventEndTime"].Value = ""; XmlDoc.DocumentElement.SelectSingleNode("//Event").Attributes["EventLocation"].Value = ""; XmlDoc.DocumentElement.SelectSingleNode("//Event").Attributes["EventDetails"].Value = ""; XmlDoc.Save(AppDomain.CurrentDomain.BaseDirectory + "App_Data\\XMLfile.xml"); LblMessage.Text = "Event deleted successfully. Go to <a href='https://www.google.com/calendar/' target='blank'>Google Calendar</a> to view your event "; BtnDeleteEvent.Enabled = false; } }
// brisenje na nastan protected void DeleteEventMethod() { List <GoogleCalendarAppointmentModel> GoogleCalendarAppointmentModelList = new List <GoogleCalendarAppointmentModel>(); List <GoogleTokenModel> GoogleTokenModelList = new List <GoogleTokenModel>(); GoogleCalendarAppointmentModel GoogleCalendarAppointmentModelObj = new GoogleCalendarAppointmentModel(); GoogleTokenModel GoogleTokenModelObj = new GoogleTokenModel(); #region populate GoogleAppointment values GoogleCalendarAppointmentModelObj.EventID = ViewState["eventID"].ToString(); GoogleCalendarAppointmentModelObj.DeleteAppointment = true; GoogleCalendarAppointmentModelList.Add(GoogleCalendarAppointmentModelObj); #endregion #region populate GoogleToken values SqlConnection konekcija = new SqlConnection(); konekcija.ConnectionString = ConfigurationManager.ConnectionStrings["mojaKonekcija"].ConnectionString; SqlCommand komanda = new SqlCommand(); komanda.Connection = konekcija; komanda.CommandText = "SELECT * FROM Users WHERE UserName=@UserName"; komanda.Parameters.Add("@UserName", (string)Session["UserName"]); try { konekcija.Open(); SqlDataReader citac = komanda.ExecuteReader(); while (citac.Read()) { GoogleTokenModelObj.Access_Token = (string)citac["AccessToken"]; GoogleTokenModelObj.Refresh_Token = (string)citac["RefreshToken"]; } citac.Close(); } catch (Exception ex) { lblMessage.Text = ex.ToString(); } finally { konekcija.Close(); } GoogleTokenModelList.Add(GoogleTokenModelObj); #endregion if (GoogleCalendarManager.AddUpdateDeleteEvent(GoogleTokenModelList, GoogleCalendarAppointmentModelList, 0) == true) { //save data in DB SqlConnection konekcija2 = new SqlConnection(); konekcija2.ConnectionString = ConfigurationManager.ConnectionStrings["mojaKonekcija"].ConnectionString; SqlCommand komanda2 = new SqlCommand(); komanda2.Connection = konekcija2; komanda2.CommandText = "DELETE FROM Events WHERE UserName=@username AND EventID=@EventID"; komanda2.Parameters.Add("@username", (string)Session["UserName"]); komanda2.Parameters.Add("@EventID", (string)ViewState["eventID"]); try { konekcija2.Open(); komanda2.ExecuteNonQuery(); } catch (Exception ex) { lblMessage.Text = ex.ToString(); } finally { konekcija2.Close(); FillGridView(); } } }
// povikuvanje na id na defaultniot calendar public string GetCalendarIdentifier() { GoogleTokenModel GoogleTokenModelObject = new GoogleTokenModel(); SqlConnection konekcija3 = new SqlConnection(); konekcija3.ConnectionString = ConfigurationManager.ConnectionStrings["mojaKonekcija"].ConnectionString; SqlCommand komanda = new SqlCommand(); komanda.Connection = konekcija3; komanda.CommandText = "SELECT * FROM Users WHERE UserName=@UserName"; komanda.Parameters.Add("@UserName", (string)Session["UserName"]); try { konekcija3.Open(); SqlDataReader citac = komanda.ExecuteReader(); while (citac.Read()) { GoogleTokenModelObject.Access_Token = (string)citac["AccessToken"]; GoogleTokenModelObject.Refresh_Token = (string)citac["RefreshToken"]; } citac.Close(); } catch (Exception ex) { lblMessage.Text = ex.ToString(); } finally { konekcija3.Close(); } // zapocnuva get calendar id CalendarService CalService = GoogleCalendarManager.GetCalendarService(GoogleTokenModelObject); string AllCalendarFeed = @"http://www.google.com/calendar/feeds/default/allcalendars/full"; Uri postUri = new Uri(AllCalendarFeed); CalendarQuery CalendarQuery = new CalendarQuery(); CalendarQuery.Uri = postUri; string CalendarID = ""; try { CalendarFeed calFeed = CalService.Query(CalendarQuery); if (calFeed != null && calFeed.Entries.Count > 0) { foreach (CalendarEntry CalEntry in calFeed.Entries) { //Commented to post the new appointments on the main calendar instead of cleverfox calendar //if (CalEntry.Title.Text.Contains("Cleverfox") == true) //{ //CalendarID = CalEntry.Title.Text; CalendarID = CalEntry.EditUri.ToString().Substring(CalEntry.EditUri.ToString().LastIndexOf("/") + 1); break; //} } } } catch (Exception e) { lblMessage.Text = e.ToString(); } return(CalendarID); }
// zacuvuvanje i azuriranje na nastan protected void btnSaveUpdate_Click(object sender, EventArgs e) { ///// mm/dd//yyyy lblMessage.Text = ""; string[] separator1 = { "/" }; string [] startdate = txtStartDate.Text.ToString().Split(separator1, StringSplitOptions.None); string[] enddate = txtEndDate.Text.ToString().Split(separator1, StringSplitOptions.None); int starthour = Convert.ToInt16(lstboxStartHour.SelectedValue.ToString()); int startminutes = Convert.ToInt16(lstboxStartMinutes.SelectedValue.ToString()); int endhour = Convert.ToInt16(lstboxEndHours.SelectedValue.ToString()); int endminute = Convert.ToInt16(lstboxEndMinutes0.SelectedValue.ToString()); DateTime StartDateTime = new DateTime(Convert.ToInt16(startdate[2]), Convert.ToInt16(startdate[0]), Convert.ToInt16(startdate[1]), starthour, startminutes, 0); DateTime EndDateTime = new DateTime(Convert.ToInt16(enddate[2]), Convert.ToInt16(enddate[0]), Convert.ToInt16(enddate[1]), endhour, endminute, 0); //ako startDatetime e postaro od momentot na save if (DateTime.Compare(DateTime.Now, StartDateTime) > 0) { lblDateMessage.Text = "Start Date-Time Should be Later from Now !!!"; } else { int rez = DateTime.Compare(StartDateTime, EndDateTime); if (rez == 0) { lblErorEntryMessages.Text = "Star Date-time and End Date-time are equal !!!"; } else if (rez > 0) { lblErorEntryMessages.Text = "Start Date-time is Later than End Date-time"; } else { // prodolzi da azuriras List <GoogleCalendarAppointmentModel> GoogleCalendarAppointmentModelList = new List <GoogleCalendarAppointmentModel>(); List <GoogleTokenModel> GoogleTokenModelList = new List <GoogleTokenModel>(); GoogleCalendarAppointmentModel GoogleCalendarAppointmentModelObj = new GoogleCalendarAppointmentModel(); GoogleTokenModel GoogleTokenModelObj = new GoogleTokenModel(); string eventnumber = ""; if (ViewState["access"].ToString() == "update") { eventnumber = ViewState["eventID"].ToString(); gridViewEvent.SelectedIndex = -1; } else if (ViewState["access"].ToString() == "insert") { eventnumber = MaxEventID().ToString(); ViewState["eventID"] = eventnumber; } else { lblSuccessfullUpdateSave.Text = "Error in decision=ViewState insert or update "; } // ViewState["eventID"] = eventnumber.ToString(); #region populate GoogleAppointment values GoogleCalendarAppointmentModelObj.EventID = eventnumber; GoogleCalendarAppointmentModelObj.EventTitle = txtTitleEvent.Text.Trim(); GoogleCalendarAppointmentModelObj.EventStartTime = StartDateTime; GoogleCalendarAppointmentModelObj.EventEndTime = EndDateTime; if (txtRemainder1.Text != "") { GoogleCalendarAppointmentModelObj.Remainder1 = ddlRemainder1.SelectedValue.Trim() + " " + txtRemainder1.Text.Trim() + " " + ddltimeRemainder1.SelectedValue.Trim(); } else { GoogleCalendarAppointmentModelObj.Remainder1 = ""; } if (txtRemainder2.Text != "") { GoogleCalendarAppointmentModelObj.Remainder2 = ddlRemainder2.SelectedValue.Trim() + " " + txtRemainder2.Text.Trim() + " " + ddltimeRemainder2.SelectedValue.Trim(); } else { GoogleCalendarAppointmentModelObj.Remainder2 = ""; } //Giving the proper location so you can view on the map in google calendar if (chkBoxLocation.Checked) { GoogleCalendarAppointmentModelObj.EventLocation = hfCoordinates.Value; } else { GoogleCalendarAppointmentModelObj.EventLocation = ""; }; if (chkBoxTransport.Checked && (ddlTransport.SelectedIndex != -1)) { GoogleCalendarAppointmentModelObj.EventTransport = ddlTransport.SelectedValue; } else { GoogleCalendarAppointmentModelObj.EventTransport = ""; } if (chkBoxWeather.Checked) { GoogleCalendarAppointmentModelObj.Weather = "yes"; } else { GoogleCalendarAppointmentModelObj.Weather = "no"; }; GoogleCalendarAppointmentModelObj.EventDetails = txtEventDescription.Text.Trim(); GoogleCalendarAppointmentModelList.Add(GoogleCalendarAppointmentModelObj); #endregion #region populate GoogleToken values SqlConnection konekcija = new SqlConnection(); konekcija.ConnectionString = ConfigurationManager.ConnectionStrings["mojaKonekcija"].ConnectionString; SqlCommand komanda = new SqlCommand(); komanda.Connection = konekcija; komanda.CommandText = "SELECT * FROM Users WHERE UserName=@UserName"; komanda.Parameters.Add("@UserName", (string)Session["UserName"]); try { konekcija.Open(); SqlDataReader citac = komanda.ExecuteReader(); while (citac.Read()) { GoogleTokenModelObj.Access_Token = (string)citac["AccessToken"]; GoogleTokenModelObj.Refresh_Token = (string)citac["RefreshToken"]; } citac.Close(); } catch (Exception ex) { lblMessage.Text = ex.ToString(); } finally { konekcija.Close(); } GoogleTokenModelList.Add(GoogleTokenModelObj); #endregion #region Add event to google calendar if (GoogleCalendarManager.AddUpdateDeleteEvent(GoogleTokenModelList, GoogleCalendarAppointmentModelList, 0) == true) { SqlConnection konekcija2 = new SqlConnection(); konekcija2.ConnectionString = ConfigurationManager.ConnectionStrings["mojaKonekcija"].ConnectionString; SqlCommand komanda2 = new SqlCommand(); komanda2.Connection = konekcija2; string successstring = "????"; if (ViewState["access"].ToString() == "insert") { komanda2.CommandText = "INSERT INTO [Events] (UserName, EventTitle,EventStartTime,EventEndTime,EventLocation,EventDetails,EventRemainder1,EventRemainder2,EventTransport,Weather) VALUES(@username,@EventTitle,@EventStartTime,@EventEndTime,@EventLocation,@EventDetails,@EventRemainder1,@EventRemainder2,@EventTransport,@Weather)"; komanda2.Parameters.Add("@username", (string)Session["UserName"]); komanda2.Parameters.Add("@EventTitle", GoogleCalendarAppointmentModelObj.EventTitle); komanda2.Parameters.Add("@EventStartTime", GoogleCalendarAppointmentModelObj.EventStartTime); komanda2.Parameters.Add("@EventEndTime", GoogleCalendarAppointmentModelObj.EventEndTime); komanda2.Parameters.Add("@EventLocation", GoogleCalendarAppointmentModelObj.EventLocation); komanda2.Parameters.Add("@EventDetails", GoogleCalendarAppointmentModelObj.EventDetails); komanda2.Parameters.Add("@EventRemainder1", GoogleCalendarAppointmentModelObj.Remainder1); komanda2.Parameters.Add("@EventRemainder2", GoogleCalendarAppointmentModelObj.Remainder2); komanda2.Parameters.Add("@EventTransport", GoogleCalendarAppointmentModelObj.EventTransport); komanda2.Parameters.Add("@Weather", GoogleCalendarAppointmentModelObj.Weather); } else if (ViewState["access"].ToString() == "update") { komanda2.CommandText = "UPDATE Events SET EventTitle=@EventTitle,EventStartTime=@EventStartTime,EventEndTime=@EventEndTime,EventLocation=@EventLocation,EventDetails=@EventDetails,EventRemainder1=@EventRemainder1,EventRemainder2=@EventRemainder2,EventTransport=@EventTransport,Weather=@Weather WHERE UserName=@UserName AND EventID=@EventID"; komanda2.Parameters.Add("@EventTitle", GoogleCalendarAppointmentModelObj.EventTitle); komanda2.Parameters.Add("@EventStartTime", GoogleCalendarAppointmentModelObj.EventStartTime); komanda2.Parameters.Add("@EventEndTime", GoogleCalendarAppointmentModelObj.EventEndTime); komanda2.Parameters.Add("@EventLocation", GoogleCalendarAppointmentModelObj.EventLocation); komanda2.Parameters.Add("@EventDetails", GoogleCalendarAppointmentModelObj.EventDetails); komanda2.Parameters.Add("@EventRemainder1", GoogleCalendarAppointmentModelObj.Remainder1); komanda2.Parameters.Add("@EventRemainder2", GoogleCalendarAppointmentModelObj.Remainder2); komanda2.Parameters.Add("@EventTransport", GoogleCalendarAppointmentModelObj.EventTransport); komanda2.Parameters.Add("@Weather", GoogleCalendarAppointmentModelObj.Weather); komanda2.Parameters.Add("@UserName", (string)Session["UserName"]); komanda2.Parameters.Add("@EventID", GoogleCalendarAppointmentModelObj.EventID); } try { konekcija2.Open(); komanda2.ExecuteNonQuery(); } catch (Exception ex) { lblMessage.Text = ex.ToString(); } finally { konekcija2.Close(); if (ViewState["access"].ToString() == "update") { successstring = "Updated"; CleanFieldsInNewEvents(); btnSaveUpdate.Enabled = false; btnDeleteEvent.Enabled = false; } else if (ViewState["access"].ToString() == "insert") { successstring = "Created"; btnDeleteEvent.Enabled = true; } ; lblSuccessfullUpdateSave.Text = "Event " + successstring + " successfully. Go to <a href='https://www.google.com/calendar/' target='blank'>Google Calendar</a> to view your event "; } btnDeleteEvent.Enabled = true; if (ViewState["access"].ToString() == "update") { FillGridView(); } } #endregion } } }
protected void Page_Load(object sender, EventArgs e) { if (IsPostBack == false) { if (string.IsNullOrEmpty(Request.QueryString["code"]) == false) { GoogleTokenModel TokenData = new GoogleTokenModel(); string Result = ""; try { TokenData = ExchangeCodeWithAccessAndRefreshToken(); } catch { Result = "?Error=Internet connectivity problem. Please try later"; // HyperLink1.Visible = false; // hyperLinkRegistration.Visible = true; } //If no proper response is given if (string.IsNullOrEmpty(TokenData.Access_Token) == true) { Result = "?Error=Some problem with google registration. Please try later or use a different gmail account to register"; // HyperLink1.Visible = false; // hyperLinkRegistration.Visible = true; } //If the gmail account is already registered else if (string.IsNullOrEmpty(TokenData.Access_Token) == false && string.IsNullOrEmpty(TokenData.Refresh_Token) == true) { Result = "?Error=This gmail account is already registered with this application. Please use a different gmail account to register"; // HyperLink1.Visible = false; // hyperLinkRegistration.Visible = true; } //Check if the some error is thrown if (string.IsNullOrEmpty(Result) == false) { LblMessage.Text = Result; return; } //If proper token data is acquired else if (string.IsNullOrEmpty(TokenData.Access_Token) == false && string.IsNullOrEmpty(TokenData.Refresh_Token) == false) { // HyperLink1.Visible = true; // hyperLinkRegistration.Visible = false; LblMessage.Text = "Registration Complete. You can view that your gmail account is linked with your calendar application here <a href='https://accounts.google.com/b/0/IssuedAuthSubTokens?hl=en' target='blank'>Authorized Access to your Google Account</a> "; SqlConnection konekcija = new SqlConnection(); konekcija.ConnectionString = ConfigurationManager.ConnectionStrings["mojaKonekcija"].ConnectionString; SqlCommand komanda = new SqlCommand(); komanda.Connection = konekcija; komanda.CommandText = "UPDATE Users SET AccessToken=@AccessToken," + "RefreshToken=@RefreshToken " + "WHERE UserName=@UserName"; komanda.Parameters.Add("@AccessToken", TokenData.Access_Token.ToString()); komanda.Parameters.Add("@RefreshToken", TokenData.Refresh_Token.ToString()); komanda.Parameters.Add("@UserName", (string)Session["UserName"]); try { konekcija.Open(); komanda.ExecuteNonQuery(); } catch (Exception ex) { LblMessage.Text += ex.ToString(); } finally { konekcija.Close(); }; } } else { //if access denied if (Request.QueryString["error"] != null) { LblMessage.Text = "Access is Denied. Please grant access to continue to google calendar registration"; // HyperLink1.Visible = false; // hyperLinkRegistration.Visible = true; } else { } } } }
/// <summary> /// Zemanje na nov access token /// </summary> /// <param name="GoogleTokenModelObj"></param> /// <returns></returns> private bool GetNewAccessToken(GoogleTokenModel GoogleTokenModelObj) { try { string Url = "https://accounts.google.com/o/oauth2/token"; string grant_type = "refresh_token"; string redirect_uri_encode = UrlEncodeForGoogle(ReturnUrl); string data = "client_id={0}&client_secret={1}&refresh_token={2}&grant_type={3}"; HttpWebRequest request = HttpWebRequest.Create(Url) as HttpWebRequest; string result = null; request.Method = "POST"; request.KeepAlive = true; request.ContentType = "application/x-www-form-urlencoded"; string param = string.Format(data, ClientID, ClientSecret, GoogleTokenModelObj.Refresh_Token, grant_type); var bs = Encoding.UTF8.GetBytes(param); using (Stream reqStream = request.GetRequestStream()) { reqStream.Write(bs, 0, bs.Length); } using (WebResponse response = request.GetResponse()) { var sr = new StreamReader(response.GetResponseStream()); result = sr.ReadToEnd(); sr.Close(); } var jsonSerializer = new JavaScriptSerializer(); var TokenData = jsonSerializer.Deserialize <GoogleTokenModel>(result); GoogleTokenModelObj.Access_Token = TokenData.Access_Token; if (TokenData.Refresh_Token != null) { GoogleTokenModelObj.Refresh_Token = TokenData.Refresh_Token; } //GoogleTokenModelObj.LastAccessDateTime = DateTime.Now; //Update the refresh and access token in DB for next login usage //GoogleCalendarManager.UpdateRefreshTokenInGoogleAppointmentOAuth(GoogleTokenModelObj); // saving to database ne tokens !!!! SqlConnection konekcija = new SqlConnection(); konekcija.ConnectionString = ConfigurationManager.ConnectionStrings["mojaKonekcija"].ConnectionString; SqlCommand komanda = new SqlCommand(); komanda.Connection = konekcija; komanda.CommandText = "UPDATE Users SET AccesToken=@AccessToken,RefreshToken=@RefreshToken WHERE UserName=@UserName"; komanda.Parameters.Add("@AccessToken", TokenData.Access_Token.ToString()); komanda.Parameters.Add("@RefreshToken", TokenData.Refresh_Token.ToString()); komanda.Parameters.Add("@UserName", (string)Session["UserName"]); try { konekcija.Open(); komanda.ExecuteNonQuery(); } catch (Exception ex) { LblMessage.Text = ex.ToString(); } finally { konekcija.Close(); }; return(true); } catch { return(false); } }