private void _deleteOldData()
        {
            HanuDowsApplication app = HanuDowsApplication.getInstance();
            var localSettings       = Windows.Storage.ApplicationData.Current.LocalSettings;

            var keep_old_jokes = localSettings.Values["Keep_Old_Jokes"];
            var keep_old_memes = localSettings.Values["Keep_Old_Memes"];

            DateTime now = DateTime.Now;
            DateTime pub_date;
            TimeSpan interval;

            app.GetAllPosts();
            List <Post> post_list = PostManager.getInstance().PostList;

            foreach (Post post in post_list)
            {
                if (post.HasCategory("Meme"))
                {
                    if (keep_old_memes == null || keep_old_memes.Equals(""))
                    {
                        // Delete Old Memes
                        pub_date = DateTime.Parse(post.PubDate);
                        interval = now.Subtract(pub_date);
                        if (interval.Days > 2)
                        {
                            app.DeletePostFromDB(post.PostID);
                        }
                    }
                }
                else
                {
                    if (keep_old_jokes == null || keep_old_jokes.Equals(""))
                    {
                        // Delete Old Jokes
                        pub_date = DateTime.Parse(post.PubDate);
                        interval = now.Subtract(pub_date);
                        if (interval.Days > 100)
                        {
                            app.DeletePostFromDB(post.PostID);
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public override async Task OnStartAsync(StartKind startKind, IActivatedEventArgs args)
        {
            // long-running startup tasks go here
            // Initialize applicatio before use
            await HanuDowsApplication.getInstance().InitializeApplication();

            // Register backgroud task for Push Notifications
            await registerBackgroundTaskForPushNotification();

            var launchKind = DetermineStartCause(args);

            switch (launchKind)
            {
            case AdditionalKinds.SecondaryTile:
                var tileargs = args as LaunchActivatedEventArgs;
                NavigationService.Navigate(typeof(Views.MainPage), tileargs.Arguments);
                break;

            case AdditionalKinds.Toast:
                var toastargs = args as ToastNotificationActivatedEventArgs;
                if (toastargs.Argument.Equals("ShowInfoMessage"))
                {
                    NavigationService.Navigate(typeof(Views.InfoDisplayPage));
                }
                else
                {
                    NavigationService.Navigate(typeof(Views.MainPage));
                }
                break;

            case AdditionalKinds.JumpListItem:
                NavigationService.Navigate(typeof(Views.InfoDisplayPage));
                break;

            case AdditionalKinds.Primary:

            case AdditionalKinds.Other:
                NavigationService.Navigate(typeof(Views.MainPage));
                break;
            }

            await Task.CompletedTask;
        }
Ejemplo n.º 3
0
        public async void UploadPost()
        {
            MessageDialog messageDialog;

            // Sanity Check
            if (string.IsNullOrWhiteSpace(_postTitle))
            {
                messageDialog = new MessageDialog("Please enter the Joke Title");
                await messageDialog.ShowAsync();

                return;
            }

            if (string.IsNullOrWhiteSpace(_postContent))
            {
                messageDialog = new MessageDialog("The content is empty. Please make sure you have typed something.");
                await messageDialog.ShowAsync();

                return;
            }

            Views.Busy.SetBusy(true, "Uploading your joke...");

            HanuDowsApplication app = HanuDowsApplication.getInstance();
            bool success            = await app.UploadNewPost(_postTitle, _postContent);

            Views.Busy.SetBusy(false);

            if (success)
            {
                messageDialog = new MessageDialog("Your joke was uploaded successfully. Thanks for sharing.");
                await messageDialog.ShowAsync();

                NavigationService.GoBack();
            }
            else
            {
                messageDialog = new MessageDialog("Could not upload your joke. Please try again.");
                await messageDialog.ShowAsync();
            }
        }
Ejemplo n.º 4
0
        public override async Task OnNavigatedToAsync(object parameter, NavigationMode mode, IDictionary <string, object> suspensionState)
        {
            GoogleAnalytics.EasyTracker.GetTracker().SendView("MainPage");

            if (suspensionState.Any())
            {
                //Value = suspensionState[nameof(Value)]?.ToString();
            }

            // Read Posts from DB
            HanuDowsApplication.getInstance().ReadPostsFromDB(false);

            op = ObservablePost.Instance();
            op.Reset();
            __setPostData();

            DataTransferManager dataTransferManager = DataTransferManager.GetForCurrentView();

            dataTransferManager.DataRequested += ShareData;

            await Task.CompletedTask;
        }
        public async void Run(IBackgroundTaskInstance taskInstance)
        {
            RawNotification notification = (RawNotification)taskInstance.TriggerDetails;

            _deferral = taskInstance.GetDeferral();

            XDocument xdoc = XDocument.Parse(notification.Content);
            string    task = xdoc.Root.Element("Task").Value;

            HanuDowsApplication app = HanuDowsApplication.getInstance();
            var localSettings       = Windows.Storage.ApplicationData.Current.LocalSettings;

            if (task.Equals("PerformSync"))
            {
                int      count = 0;
                XElement xe    = xdoc.Root.Element("LatestDataTimeStamp");

                if (xe == null)
                {
                    // Old Code --- Perform Synchronization
                    count = await app.PerformSync();
                }
                else
                {
                    string   latest_data_timestamp_string = xe.Value;
                    DateTime latest_data_timestamp        = DateTime.Parse(latest_data_timestamp_string);

                    DateTime lastSyncTime = DateTime.Parse(localSettings.Values["LastSyncTime"].ToString());

                    int diff = latest_data_timestamp.CompareTo(lastSyncTime);
                    if (diff >= 0)
                    {
                        // Perform Sync
                        count = await app.PerformSync();
                    }
                }

                if (count > 0)
                {
                    string title   = "New Jokes downloaded";
                    string message = count + " new jokes have been downloaded.";
                    showToastNotification(title, message);
                }
            }

            if (task.Equals("ShowInfoMessage"))
            {
                string mid     = xdoc.Root.Element("MessageID").Value;
                string title   = xdoc.Root.Element("Title").Value;
                string content = xdoc.Root.Element("Content").Value;

                var last_mid = localSettings.Values["ToastMessageID"];

                if (last_mid != null && last_mid.Equals(mid))
                {
                    return;
                }

                localSettings.Values["ToastMessageID"] = mid;

                showInfoMessage(title, content);
            }

            if (task.Equals("DeletePostID"))
            {
                int id = (int)xdoc.Root.Element("PostID");
                app.DeletePostFromDB(id);
            }

            if (task.Equals("SyncAllAgain"))
            {
                // Set last sync time to Hanu Epoch
                localSettings.Values["LastSyncTime"] = (new DateTime(2011, 11, 4)).ToString();
                await app.PerformSync();
            }

            _deferral.Complete();
        }
Ejemplo n.º 6
0
        public override async Task OnStartAsync(StartKind startKind, IActivatedEventArgs args)
        {
            HanuDowsApplication _app = HanuDowsApplication.getInstance();

            // Set Default Settings
            var localSettings = ApplicationData.Current.LocalSettings;

            if (localSettings.Values["FirstUse"] == null)
            {
                _app.AddSyncCategory("Veg Joke");
                _app.AddSyncCategory("Meme");
            }

            var _settings = SettingsService.Instance;

            if (!_settings.isMemeSet)
            {
                _app.AddSyncCategory("Meme");
            }

            // long-running startup tasks go here
            // Initialize application before use
            await _app.InitializeApplication();

            // Register backgroud task for Push Notifications
            await registerBackgroundTaskForPushNotification();

            var launchKind = DetermineStartCause(args);

            switch (launchKind)
            {
            case AdditionalKinds.SecondaryTile:
                var tileargs = args as LaunchActivatedEventArgs;
                NavigationService.Navigate(typeof(Views.MainPage), tileargs.Arguments);
                break;

            case AdditionalKinds.Toast:
                var toastargs = args as ToastNotificationActivatedEventArgs;
                if (toastargs.Argument.Equals("ShowInfoMessage"))
                {
                    NavigationService.Navigate(typeof(Views.InfoDisplayPage));
                }
                else
                {
                    NavigationService.Navigate(typeof(Views.MainPage));
                }
                break;

            case AdditionalKinds.JumpListItem:
                NavigationService.Navigate(typeof(Views.InfoDisplayPage));
                break;

            case AdditionalKinds.Primary:

            case AdditionalKinds.Other:
                NavigationService.Navigate(typeof(Views.MainPage));
                break;
            }

            await Task.CompletedTask;
        }
Ejemplo n.º 7
0
 public override async Task OnInitializeAsync(IActivatedEventArgs args)
 {
     HanuDowsApplication.getInstance();
     await Task.CompletedTask;
 }