Esempio n. 1
0
        protected override void OnEnabling(EnablingEventArgs e)
        {
            base.OnEnabling(e);

            if (!e.Cancel)
            {
                ThreadPool.QueueUserWorkItem(o =>
                {
                    try
                    {
                        bool found = false;
                        string saveTokenActivities = string.Empty;

                        GPlusActivities activities = apiHelper.ListActivities();

                        do
                        {
                            saveTokenActivities = activities.nextPageToken;
                            foreach (GPlusActivity activity in activities.items)
                            {
                                if (activity.url.Equals(activityLink))
                                {
                                    activityId = activity.id;

                                    found = true;
                                    break;
                                }
                            }

                            if (found)
                            {
                                break;
                            }

                            activities = apiHelper.ListActivities(activities.nextPageToken);
                        } while (!string.IsNullOrEmpty(saveTokenActivities));

                        if (found)
                        {
                            StartTimer(100);
                        }
                        else
                        {
                            ErrorLog.AddError(ErrorType.Failure, string.Format(Strings.General_Incorrect, Strings.General_ActivityID));

                            e.Cancel = true;
                        }
                    }
                    catch (Exception ex)
                    {
                        ErrorLog.AddError(ErrorType.Failure, Strings.GooglePlus_EventCouldntBeEnabled);
                        Logger.Write(ex);

                        e.Cancel = true;
                        return;
                    }
                });
            }
        }
Esempio n. 2
0
        protected override void timer_Elapsed(object sender, ElapsedEventArgs e)
        {
            timer.Stop();

            try
            {
                DateTime newLastActivityTime = new DateTime();

                GPlusActivities activities = apiHelper.ListActivities();

                if (isFirstTime)
                {
                    if (activities.items.Length == 0)
                    {
                        // The user hasn't shared anything
                        lastAddedItemTimestamp = DateTime.MinValue;
                    }
                    else
                    {
                        GPlusActivity activity = activities.items[0];
                        lastAddedItemTimestamp = activity.published;
                    }

                    isFirstTime    = false;
                    timer.Interval = int.Parse(Strings.General_TimeInterval);

                    timer.Start();

                    return;
                }

                string saveTokenActivity = string.Empty;
                bool   finish            = false;

                do
                {
                    saveTokenActivity = activities.nextPageToken;

                    foreach (GPlusActivity activity in activities.items)
                    {
                        if (activity.published.CompareTo(lastAddedItemTimestamp) > 0)
                        {
                            Trigger();

                            if (activity.published.CompareTo(newLastActivityTime) > 0)
                            {
                                newLastActivityTime = activity.published;
                            }
                        }
                        else
                        {
                            // We don't have any new event.
                            finish = true;
                            break;
                        }
                    }

                    if (finish)
                    {
                        break;
                    }

                    activities = apiHelper.ListActivities(saveTokenActivity);
                } while (!string.IsNullOrEmpty(saveTokenActivity));

                if (lastAddedItemTimestamp.CompareTo(newLastActivityTime) < 0)
                {
                    lastAddedItemTimestamp = newLastActivityTime;
                }
            }
            catch (Exception ex)
            {
                ErrorLog.AddError(ErrorType.Failure, Strings.GooglePlus_ErrorMonitoringNewActivity);
                Logger.Write(ex);

                return;
            }

            timer.Start();
        }