protected void BtnRevoke_Click(object sender, EventArgs e)
        {
            if (XmlDoc.HasChildNodes == false)
            {
                XmlDoc.Load(AppDomain.CurrentDomain.BaseDirectory + "App_Data\\XMLfile.xml");
            }

            string Access_Token  = XmlDoc.DocumentElement.SelectSingleNode("//User[@UserID='1']").Attributes[AccessToken].Value;
            string Refresh_Token = XmlDoc.DocumentElement.SelectSingleNode("//User[@UserID='1']").Attributes[RefreshToken].Value;

            //Attempt the revoke from google
            //if successful then do a db / xml delete as well

            if (GoogleCalendarManager.RevokeAccessToken(Access_Token, Refresh_Token) == true)
            {
                XmlDoc.DocumentElement.SelectSingleNode("//User[@UserID='1']").Attributes[AccessToken].Value  = "";
                XmlDoc.DocumentElement.SelectSingleNode("//User[@UserID='1']").Attributes[RefreshToken].Value = "";

                XmlDoc.Save(AppDomain.CurrentDomain.BaseDirectory + "App_Data\\XMLfile.xml");

                LblMessage.Text = "Rights revoked successfully.You can <a href='https://accounts.google.com/b/0/IssuedAuthSubTokens?hl=en' target='blank'>view</a> that you gmail account is not linked with your calendar application anymore";

                PnlLogin.Visible    = false;
                PnlRegister.Visible = true;
                PnlEvents.Visible   = false;
            }
        }
    public static void RevokeExpiredAccess(string AccessTokenStatus, string RefreshTokenStatus, string UserName)
    {
        string Access_Token  = AccessTokenStatus;
        string Refresh_Token = RefreshTokenStatus;



        //Attempt the revoke from google
        //if successful then do a db /
        if (GoogleCalendarManager.RevokeAccessToken(Access_Token.ToString(), Refresh_Token.ToString()) == true)
        {
            SqlConnection konekcija1 = new SqlConnection();
            konekcija1.ConnectionString = ConfigurationManager.ConnectionStrings["mojaKonekcija"].ConnectionString;

            SqlCommand komanda1 = new SqlCommand();
            komanda1.Connection = konekcija1;

            komanda1.CommandText = "UPDATE Users SET AccessToken=@AccessToken,RefreshToken=@RefreshToken WHERE UserName=@UserName";
            komanda1.Parameters.Add("@AccessToken", "");
            komanda1.Parameters.Add("@RefreshToken", "");
            komanda1.Parameters.Add("@UserName", UserName);
            try
            {
                konekcija1.Open();
                komanda1.ExecuteNonQuery();
            }
            catch (Exception ex) {  }
            finally { konekcija1.Close(); };
        }
    }
    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);
    }
    // odjava na access token i refresh token
    protected void btnGoogleRevoke_Click(object sender, EventArgs e)
    {
        string Access_Token  = "";
        string Refresh_Token = "";

        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())
            {
                if (citac["UserName"].ToString().ToLower() == ((string)Session["UserName"]).ToLower())
                {
                    Access_Token  = (string)citac["AccessToken"];
                    Refresh_Token = (string)citac["RefreshToken"];
                }
            }
            citac.Close();
        }
        catch (Exception ex) { lblMessage.Text = ex.ToString(); }
        finally { konekcija.Close(); }



        //Attempt the revoke from google
        //if successful then do a db / xml delete as well
        if (GoogleCalendarManager.RevokeAccessToken(Access_Token.ToString(), Refresh_Token.ToString()) == true)
        {
            SqlConnection konekcija1 = new SqlConnection();
            konekcija1.ConnectionString = ConfigurationManager.ConnectionStrings["mojaKonekcija"].ConnectionString;

            SqlCommand komanda1 = new SqlCommand();
            komanda1.Connection = konekcija1;

            komanda1.CommandText = "UPDATE Users SET AccessToken=@AccessToken,RefreshToken=@RefreshToken WHERE UserName=@UserName";
            komanda1.Parameters.Add("@AccessToken", "");
            komanda1.Parameters.Add("@RefreshToken", "");
            komanda1.Parameters.Add("@UserName", (string)Session["UserName"]);
            try
            {
                konekcija1.Open();
                komanda1.ExecuteNonQuery();
            }
            catch (Exception ex) { lblMessage.Text = ex.ToString(); }
            finally { konekcija1.Close(); };
        }
        Response.Redirect("GoogleCalendarRegistration.aspx?message=Revoke");
    }
        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
        }
        //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
            }
        }
    }
Example #10
0
    } ///registracija

    protected void btnRegister_Click(object sender, EventArgs e)
    {
        string GoogleReturnPageAddress = System.Configuration.ConfigurationManager.AppSettings["GoogleReturnPageAddress"];

        Response.Redirect(GoogleCalendarManager.GenerateGoogleOAuthURL());
    }
Example #11
0
 public AuthController(GoogleCalendarManager googleCalManager)
 {
     this.googleCalManager = googleCalManager;
 }
Example #12
0
        private void GetDataButton_Click(object sender, RoutedEventArgs e)
        {
            responseBox.Text = "Getting timetable...";

            var manager      = new TimetableManager(DateFromPicker.SelectedDate, DateToPicker.SelectedDate);
            var responseTask = Task.Run(async() => await manager.GetTimetable());

            var contentTask = responseTask.ContinueWith(async r =>
            {
                var message = r.Result;
                return(await message.Content.ReadAsStringAsync());
            }, TaskContinuationOptions.OnlyOnRanToCompletion);

            responseTask.ContinueWith(t =>
            {
                Dispatcher.Invoke(() =>
                {
                    responseBox.Text += String.Format("{0}{1}", "\n", t.Exception.Message);
                });
            }, TaskContinuationOptions.OnlyOnFaulted);

            var dataTask = contentTask.ContinueWith(t =>
            {
                Dispatcher.Invoke(() =>
                {
                    responseBox.Text += "\nDeserializing...";
                });

                var data = JsonConvert.DeserializeObject <ResponseContent>(t.Result.Result);

                Dispatcher.Invoke(() =>
                {
                    responseBox.Text += String.Format("\nObtained {0} events!", data.Courses.Count);
                });

                return(data);
            }, TaskContinuationOptions.OnlyOnRanToCompletion);


            var calendarEventsTask = dataTask.ContinueWith(async d =>
            {
                Dispatcher.Invoke(() =>
                {
                    responseBox.Text += "\nAdding to Google Calendar...";
                });

                var calendarManager = new GoogleCalendarManager(d.Result.Courses,
                                                                Dispatcher.Invoke(() => DateFromPicker.SelectedDate),
                                                                Dispatcher.Invoke(() => DateToPicker.SelectedDate));
                await calendarManager.Run();
            }, TaskContinuationOptions.OnlyOnRanToCompletion);

            calendarEventsTask.ContinueWith(t =>
            {
                t.Result.ContinueWith(_ =>
                {
                    Dispatcher.Invoke(() =>
                    {
                        responseBox.Text += "\nSuccessfully added new events!";
                    });
                }, TaskContinuationOptions.OnlyOnRanToCompletion);

                t.Result.ContinueWith(_ =>
                {
                    Dispatcher.Invoke(() =>
                    {
                        responseBox.Text += "\nError while adding or deleting Google Events!";
                        responseBox.Text += "\n" + t.Result.Exception.Message;
                    });
                }, TaskContinuationOptions.OnlyOnFaulted);
            });
        }