Example #1
0
        public async void CheckForUpdate(bool resuming = false)
        {
            var BlogPath     = Path.Combine(NetworkDatabase.Folder, "Update.txt");
            var SettingsPath = Path.Combine(NetworkDatabase.Folder, "Predictions.TVP");

            NetworkDatabase.mainpage = this;

            //Only download new predictions if it's been at least a week from the Saturday included in those predictions
            if (File.Exists(SettingsPath) && File.Exists(BlogPath))
            {
                var week = new PredictionWeek();
                if (DateTime.Now - week.Saturday > new TimeSpan(7, 0, 0, 0))
                {
                    await NetworkDatabase.ReadUpdateAsync();
                }
                else if (!resuming)
                {
                    await NoUpdate();
                }
            }
            else
            {
                await NetworkDatabase.ReadUpdateAsync();
            }
        }
Example #2
0
    public void InitializeDatabaseClientside(MeshPacket p)
    {
        if (database != null)
        {
            Debug.LogError("Database already exists. InitializeDatabaseClientside prohibited.");
            return;
        }

        DatabaseUpdate u = DatabaseUpdate.ParseContentAsDatabaseUpdate(p.GetContents());
        //Here, we construct the database shadow using the database update.
        bool flagHasFoundDatabase      = false;
        MeshNetworkIdentity databaseID = null;

        foreach (MeshNetworkIdentity i in u.objectDelta.Keys)
        {
            if (i.GetObjectID() == (ushort)ReservedObjectIDs.DatabaseObject)
            {
                flagHasFoundDatabase = true;
                database             = game.SpawnDatabase(i).GetComponent <NetworkDatabase>(); //Spawns the database prefab.
                databaseID           = i;
                break;
            }
        }
        if (flagHasFoundDatabase == false || database == null)
        {
            Debug.LogError("Database intialization failed.");
            return;
        }
        database.ReceivePacket(p);
    }
        private async void TMDB_Clicked(object sender, EventArgs e)
        {
            var p   = BindingContext as PredictionContainer;
            var uri = NetworkDatabase.GetTMDBuri(p.show.Name);

            await Launcher.OpenAsync(uri);
        }
Example #4
0
        internal NetworkReportDialog(NetworkContainer networkContainer, NetworkDatabase networkDatabase)
        {
            this.m_database = networkDatabase;
            this.m_network = networkContainer;

            this.InitializeComponent();
        }
Example #5
0
    public void HostGame()
    {
        if (lobby.Equals(CSteamID.Nil) == false)
        {
            Debug.LogError("Lobby already created. Probably already hosting. Must shut down hosting before doing it again.");
            return;
        }

        //Construct the network database. Very important!
        MeshNetworkIdentity databaseID = new MeshNetworkIdentity((ushort)ReservedObjectIDs.DatabaseObject,
                                                                 (ushort)ReservedPrefabIDs.Database,
                                                                 (ulong)GetLocalPlayerID(), true);

        database = game.SpawnDatabase(databaseID).GetComponent <NetworkDatabase>(); //Spawns the database prefab.
        Debug.Log("Registering database.");
        database.AddObject(databaseID, true);                                       //Tells the database that it itself exists (funny)

        //First, we get our own player object, and we make ourselves the provider.
        Player me = ConstructPlayer(SteamUser.GetSteamID());

        Debug.Log("Registering provider.");
        database.AddPlayer(me, true);

        //Actually create the lobby. Password info, etc, will be set after this.
        Debug.Log("Creating Lobby");
        m_LobbyCreated.Set(SteamMatchmaking.CreateLobby(ELobbyType.k_ELobbyTypePrivate, 4));
    }
Example #6
0
        public async void RefreshPredictions_Clicked(object sender, EventArgs e)
        {
            if (Connectivity.NetworkAccess == NetworkAccess.Internet)
            {
                if (File.Exists(Path.Combine(NetworkDatabase.Folder, "Update.txt")))
                {
                    File.Delete(Path.Combine(NetworkDatabase.Folder, "Update.txt"));
                }

                if (File.Exists(Path.Combine(NetworkDatabase.Folder, "Predictions.TVP")))
                {
                    File.Delete(Path.Combine(NetworkDatabase.Folder, "Predictions.TVP"));
                }

                Activity.IsRunning = true;
                CurrentStatus.Text = "Downloading Latest Predictions...";

                RefreshPredictions.IsVisible = false;
                await NetworkDatabase.ReadUpdateAsync();
            }
            else
            {
                await DisplayAlert("TV Predictions", "Not Connected to the Internet! Try again later.", "Close");
            }
        }
Example #7
0
        //----------------------------------------


        #region Constructor
        internal NetworkReportDialog(NetworkContainer networkContainer, NetworkDatabase networkDatabase)
        {
            this.m_database = networkDatabase;
            this.m_network  = networkContainer;

            this.InitializeComponent();
        }
        private TreeNode createNode(NetworkDatabase database)
        {
            TreeNode node = new TreeNode("Database");

            node.Tag = database;
            return(node);
        }
Example #9
0
 private async void SaveBackup_Elapsed(object sender, ElapsedEventArgs e)
 {
     if (NetworkDatabase.backup)
     {
         await NetworkDatabase.SaveBackup();
     }
 }
 void OnEnable()
 {
     netDB = GetComponent <NetworkDatabase>();
     if (netDB == null)
     {
         Debug.LogError("StateChangeScheduler could not acquire database reference");
     }
 }
Example #11
0
        /// <summary>
        /// Constructs a new BACnetPanel2 instance
        /// </summary>
        public BACnetPanel2()
        {
            RefreshInterval = TimeSpan.FromSeconds(Constants.DefaultRefreshInterval);
            _editorBindings = new List <IEditorBinding>();

            var session = BACnetSession.Current;

            host   = session.GetProcess <Host>();
            client = new Client.Client(host);
            db     = session.GetProcess <NetworkDatabase>();
        }
Example #12
0
    public void WarmupHosting()
    {
        MeshNetworkIdentity databaseID = new MeshNetworkIdentity((ushort)ReservedObjectIDs.DatabaseObject,
                                                                 (ushort)ReservedPrefabIDs.Database,
                                                                 (ulong)GetLocalPlayerID(), true);

        NetworkDatabase database2 = game.SpawnDatabase(databaseID).GetComponent <NetworkDatabase>(); //Spawns the database prefab.

        Debug.Log("Registering database.");
        database2.AddObject(databaseID, true); //Tells the database that it itself exists (funny)

        //First, we get our own player object, and we make ourselves the provider.
        Player me = ConstructPlayer(SteamUser.GetSteamID());

        Debug.Log("Registering provider.");
        database.AddPlayer(me, true);
    }
        //public async Task<bool> GetImage()
        //{
        //    var ID = await NetworkDatabase.GetShowID(show.Name, show.network.name);

        //    imagesource = await NetworkDatabase.GetImageURI(ID);

        //    return true;
        //}

        async void GetImage()
        {
            await Task.Run(async() =>
            {
                var ID = await NetworkDatabase.GetShowID(show.show.Name, show.network.name);

                imagesource = await NetworkDatabase.GetImageURI(ID);

                await Device.InvokeOnMainThreadAsync(() =>
                {
                    OnPropertyChanged("ImageUri");
                    OnPropertyChanged("ImageURL");
                    _visibility = false;
                    OnPropertyChanged("ActivityVisibility");
                });
            });
        }
Example #14
0
        async void LoadSearch()
        {
            var result = await NetworkDatabase.GetSearchResults(show);

            var ShowList = new ObservableCollection <TMDBContainer>();

            TMDBResults.ItemsSource = ShowList;
            TMDBResults.IsVisible   = true;

            foreach (TVSearchResult s in result)
            {
                var Series = new TMDBContainer(s.Show, s.Show.BackdropPath, ShowList.Count + 1);
                ShowList.Add(Series);
            }


            Loading.IsVisible = false;
        }
Example #15
0
        async Task NoUpdate()
        {
            await NetworkDatabase.AuthenticateTMDB();

            var FilePath = Path.Combine(NetworkDatabase.Folder, "Update.txt");

            Directory.CreateDirectory(NetworkDatabase.Folder);

            if (File.Exists(FilePath))
            {
                using (var fs = new FileStream(FilePath, FileMode.Open))
                {
                    using (var reader = new StreamReader(fs))
                    {
                        NetworkDatabase.currentText = await reader.ReadToEndAsync();
                    }
                }
            }
            CompletedUpdateAsync(this, new AsyncCompletedEventArgs(null, false, this));
        }
Example #16
0
        async void LoadImage(PredictionContainer p)
        {
            //bool reload = false;

            //if (!NetworkDatabase.ShowIDs.ContainsKey(p.show.Name) && Application.Current.Properties.ContainsKey("SHOWID " + p.show.Name))
            //    reload = true;

            var ID = await NetworkDatabase.GetShowID(p.show.Name, p.network.name);

            if (ID > 0)
            {
                if (Device.RuntimePlatform == Device.UWP)
                {
                    var uri = await NetworkDatabase.GetImageURI(ID);

                    ShowImageUri = uri.AbsoluteUri;

                    ShowImage.BindingContext = this;
                    ShowImage.SetBinding(ImageEffect.TextProperty, new Binding("ShowImageUri"));

                    p.IsLoaded          = true;
                    ShowImage.IsVisible = true;
                    //ImageLoading.IsVisible = false;
                }
                else
                {
                    ShowImage.Source = new UriImageSource
                    {
                        Uri            = await NetworkDatabase.GetImageURI(ID),
                        CachingEnabled = true,
                        CacheValidity  = new TimeSpan(90, 0, 0, 0)
                    };

                    if (ShowImage.Source != null)
                    {
                        p.IsLoaded             = true;
                        ShowImage.IsVisible    = true;
                        ImageLoading.IsVisible = false;
                    }
                }

                p.Overview = NetworkDatabase.ShowDescriptions[ID];
            }

            //if (reload)
            //{
            //    ID = await NetworkDatabase.GetShowID(p.show.Name, p.network.name, true);

            //    if (ID > 0)
            //    {
            //        ShowImage.Source = new UriImageSource
            //        {
            //            Uri = await NetworkDatabase.GetImageURI(ID),
            //            CachingEnabled = true,
            //            CacheValidity = new TimeSpan(90, 0, 0, 0)
            //        };

            //        p.Overview = NetworkDatabase.ShowDescriptions[ID];
            //    }
            //}

            var TMDBText  = "This product uses the TMDb API but is not endorsed or certified by TMDb.";
            var Formatted = new FormattedString();

            Formatted.Spans.Add(new Span {
                Text = TMDBText
            });

            if (NetworkDatabase.TMDBerror)
            {
                Formatted.Spans.Add(new Span()
                {
                    Text      = "Error connecting to TMDB! Some show details and/or images may temporarily be unavailable.",
                    TextColor = Color.DarkRed
                });
            }

            TMDBNotice.FormattedText = Formatted;

            DelayedScroll.Elapsed  += DelayedScroll_Elapsed;
            DelayedScroll.AutoReset = false;
            ScrollTo();

            CheckVisible.Elapsed += CheckVisible_Elapsed;
        }
Example #17
0
        protected override async void OnSizeAllocated(double width, double height)
        {
            base.OnSizeAllocated(width, height);

            // fix for carouselview orientation bug on android
            //if (Device.RuntimePlatform == Device.Android)
            //{
            //    YearList.Orientation =
            //        CarouselViewOrientation.Vertical;
            //    YearList.Orientation =
            //        CarouselViewOrientation.Horizontal;
            //}

            var tmpDesktop = isDesktop;

            isDesktop            = width > (1080);
            SideColumn.IsVisible = isDesktop;

            if (isDesktop != tmpDesktop)
            {
                if (isDesktop)
                {
                    FirstColumn.Width  = new GridLength(1, GridUnitType.Star);
                    SecondColumn.Width = new GridLength(1, GridUnitType.Star);
                    if (LastItem != null)
                    {
                        LastItem.ShowDetails   = false;
                        ShowImage.Source       = null;
                        ImageLoading.IsVisible = true;

                        //var ID = await NetworkDatabase.GetShowID(LastItem.Name, LastItem.network.name);

                        //if (ID > 0)
                        //{
                        //    ShowImage.Source = await NetworkDatabase.GetImageURI(ID);
                        //    LastItem.Overview = NetworkDatabase.ShowDescriptions[ID];

                        //    ShowImage.IsVisible = true;
                        //    ImageLoading.IsVisible = false;
                        //}

                        //bool reload = false;

                        //if (!NetworkDatabase.ShowIDs.ContainsKey(LastItem.Name) && Application.Current.Properties.ContainsKey("SHOWID " + LastItem.Name))
                        //    reload = true;

                        var ID = await NetworkDatabase.GetShowID(LastItem.show.Name, LastItem.network.name);

                        if (ID > 0)
                        {
                            if (Device.RuntimePlatform == Device.UWP)
                            {
                                var uri = await NetworkDatabase.GetImageURI(ID);

                                ShowImageUri = uri.AbsoluteUri;

                                ShowImage.BindingContext = this;
                                ShowImage.SetBinding(ImageEffect.TextProperty, new Binding("ShowImageUri"));

                                LastItem.IsLoaded   = true;
                                ShowImage.IsVisible = true;
                                //ImageLoading.IsVisible = false;
                            }
                            else
                            {
                                ShowImage.Source = new UriImageSource
                                {
                                    Uri            = await NetworkDatabase.GetImageURI(ID),
                                    CachingEnabled = true,
                                    CacheValidity  = new TimeSpan(90, 0, 0, 0)
                                };

                                if (ShowImage.Source != null)
                                {
                                    LastItem.IsLoaded      = true;
                                    ShowImage.IsVisible    = true;
                                    ImageLoading.IsVisible = false;
                                }
                            }

                            LastItem.Overview = NetworkDatabase.ShowDescriptions[ID];
                        }

                        //if (reload)
                        //{
                        //    ID = await NetworkDatabase.GetShowID(LastItem.Name, LastItem.network.name, true);

                        //    if (ID > 0)
                        //    {
                        //        ShowImage.Source = new UriImageSource
                        //        {
                        //            Uri = await NetworkDatabase.GetImageURI(ID),
                        //            CachingEnabled = true,
                        //            CacheValidity = new TimeSpan(90, 0, 0, 0)
                        //        };
                        //        LastItem.Overview = NetworkDatabase.ShowDescriptions[ID];
                        //    }
                        //}
                    }
                }
                else
                {
                    FirstColumn.Width  = new GridLength(1, GridUnitType.Star);
                    SecondColumn.Width = new GridLength(0);
                    if (LastItem != null)
                    {
                        LastItem.ShowDetails = true;
                    }
                }
            }
        }
 private TreeNode createNode(NetworkDatabase database)
 {
     TreeNode node = new TreeNode("Database");
     node.Tag = database;
     return node;
 }
Example #19
0
        private async void ShowsList_ItemTapped(object sender, ItemTappedEventArgs e)
        {
            var p = ShowsList.SelectedItem as PredictionContainer;

            if (PreviousItem != null && PreviousItem != p)
            {
                PreviousItem.ShowDetails = false;
                if (SidePanel.BreakdownView != null)
                {
                    FadeOut(false);
                }
            }

            SidePanel.BindingContext = p;
            SidePanel.IsVisible      = true;

            SidePanel_PanelOpened(this, new EventArgs());

            if (!isDesktop)
            {
                p.ShowDetails = !p.ShowDetails;
                if (!p.ShowDetails)
                {
                    ShowsList.SelectedItem = null;
                }
            }
            else
            {
                p.ShowDetails          = false;
                ShowImage.Source       = null;
                ShowImageUri           = null;
                ImageLoading.IsVisible = true;

                //var ID = await NetworkDatabase.GetShowID(p.Name, p.network.name);

                //if (ID > 0)
                //{
                //    ShowImage.Source = new UriImageSource
                //    {
                //        Uri = await NetworkDatabase.GetImageURI(ID),
                //        CachingEnabled = true,
                //        CacheValidity = new TimeSpan(90, 0, 0, 0)
                //    };

                //    p.Overview = NetworkDatabase.ShowDescriptions[ID];

                //    if (ShowImage.Source != null)
                //    {
                //        p.IsLoaded = true;
                //        ShowImage.IsVisible = true;
                //        ImageLoading.IsVisible = false;
                //    }
                //}

                //bool reload = false;

                //if (!NetworkDatabase.ShowIDs.ContainsKey(p.Name) && Application.Current.Properties.ContainsKey("SHOWID " + p.Name))
                //    reload = true;

                var ID = await NetworkDatabase.GetShowID(p.show.Name, p.network.name);

                if (ID > 0)
                {
                    if (Device.RuntimePlatform == Device.UWP)
                    {
                        var uri = await NetworkDatabase.GetImageURI(ID);

                        ShowImageUri = uri.AbsoluteUri;

                        ShowImage.BindingContext = this;
                        ShowImage.SetBinding(ImageEffect.TextProperty, new Binding("ShowImageUri"));

                        p.IsLoaded          = true;
                        ShowImage.IsVisible = true;
                        //ImageLoading.IsVisible = false;
                    }
                    else
                    {
                        ShowImage.Source = new UriImageSource
                        {
                            Uri            = await NetworkDatabase.GetImageURI(ID),
                            CachingEnabled = true,
                            CacheValidity  = new TimeSpan(90, 0, 0, 0)
                        };

                        if (ShowImage.Source != null)
                        {
                            p.IsLoaded             = true;
                            ShowImage.IsVisible    = true;
                            ImageLoading.IsVisible = false;
                        }
                    }

                    p.Overview = NetworkDatabase.ShowDescriptions[ID];
                }



                //if (reload)
                //{
                //    ID = await NetworkDatabase.GetShowID(p.Name, p.network.name, true);

                //    if (ID > 0)
                //    {
                //        ShowImage.Source = new UriImageSource
                //        {
                //            Uri = await NetworkDatabase.GetImageURI(ID),
                //            CachingEnabled = true,
                //            CacheValidity = new TimeSpan(90, 0, 0, 0)
                //        };
                //        p.Overview = NetworkDatabase.ShowDescriptions[ID];
                //    }
                //}

                var TMDBText  = "This product uses the TMDb API but is not endorsed or certified by TMDb.";
                var Formatted = new FormattedString();
                Formatted.Spans.Add(new Span {
                    Text = TMDBText
                });

                if (NetworkDatabase.TMDBerror)
                {
                    Formatted.Spans.Add(new Span()
                    {
                        Text      = "Error connecting to TMDB! Some show details and/or images may temporarily be unavailable.",
                        TextColor = Color.DarkRed
                    });
                }

                TMDBNotice.FormattedText = Formatted;

                DelayedScroll.Elapsed  += DelayedScroll_Elapsed;
                DelayedScroll.AutoReset = false;
                DelayedScroll.Start();

                CheckVisible.Elapsed += CheckVisible_Elapsed;
            }



            PreviousItem = p;
        }
Example #20
0
        protected override async void OnSizeAllocated(double dblWidth, double dblHeight)
        {
            base.OnSizeAllocated(dblWidth, dblHeight);

            var tmpDesktop = isDesktop;

            isDesktop            = dblWidth > (960);
            SideColumn.IsVisible = isDesktop;

            if (isDesktop != tmpDesktop)
            {
                if (isDesktop)
                {
                    FirstColumn.Width  = new GridLength(1, GridUnitType.Star);
                    SecondColumn.Width = new GridLength(1, GridUnitType.Star);
                    if (PreviousItem != null)
                    {
                        PreviousItem.ShowDetails = false;
                        ShowImage.Source         = null;
                        ImageLoading.IsVisible   = true;
                        //bool reload = false;

                        //if (!NetworkDatabase.ShowIDs.ContainsKey(PreviousItem.Name) && Application.Current.Properties.ContainsKey("SHOWID " + PreviousItem.Name))
                        //    reload = true;

                        var ID = await NetworkDatabase.GetShowID(PreviousItem.Name, PreviousItem.network.name);

                        if (ID > 0)
                        {
                            if (Device.RuntimePlatform == Device.UWP)
                            {
                                var uri = await NetworkDatabase.GetImageURI(ID);

                                ShowImageUri = uri.AbsoluteUri;

                                ShowImage.BindingContext = this;
                                ShowImage.SetBinding(ImageEffect.TextProperty, new Binding("ShowImageUri"));

                                PreviousItem.IsLoaded = true;
                                ShowImage.IsVisible   = true;
                                //ImageLoading.IsVisible = false;
                            }
                            else
                            {
                                ShowImage.Source = new UriImageSource
                                {
                                    Uri            = await NetworkDatabase.GetImageURI(ID),
                                    CachingEnabled = true,
                                    CacheValidity  = new TimeSpan(90, 0, 0, 0)
                                };

                                if (ShowImage.Source != null)
                                {
                                    PreviousItem.IsLoaded  = true;
                                    ShowImage.IsVisible    = true;
                                    ImageLoading.IsVisible = false;
                                }
                            }

                            PreviousItem.Overview = NetworkDatabase.ShowDescriptions[ID];
                        }
                    }
                }
                else
                {
                    FirstColumn.Width  = new GridLength(1, GridUnitType.Star);
                    SecondColumn.Width = new GridLength(0);
                    if (PreviousItem != null)
                    {
                        PreviousItem.ShowDetails = true;
                    }
                }
            }
        }
Example #21
0
        public async void CompletedUpdateAsync(object sender, AsyncCompletedEventArgs e)
        {
            var FilePath = Path.Combine(NetworkDatabase.Folder, "Update.txt");

            if (e.Error != null && !File.Exists(FilePath))
            {
                _ = DisplayAlert("TV Predictions", e.Error.Message, "Close");
                home.IncompleteUpdate();
            }
            else
            {
                string text;



                try
                {
                    using (var fs = new FileStream(FilePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
                    {
                        using (var reader = new StreamReader(fs))
                        {
                            text = await reader.ReadToEndAsync();
                        }
                    }

                    if (text != NetworkDatabase.currentText)
                    {
                        NetworkDatabase.currentText = text;
                        await home.Navigation.PopToRootAsync();

                        home.Downloading();
                        NetworkDatabase.ReadSettings(this);
                    }
                    else
                    {
                        if (File.Exists(Path.Combine(NetworkDatabase.Folder, "Predictions.TVP")))
                        {
                            var ee = new AsyncCompletedEventArgs(null, false, this);
                            CompletedSettings(this, ee);
                        }
                        else
                        {
                            await home.Navigation.PopToRootAsync();

                            home.Downloading();
                            NetworkDatabase.ReadSettings(this);
                        }
                        NetworkDatabase.IsLoaded = true;
                    }
                }
                catch (Exception)
                {
                    if (!home.Completed)
                    {
                        _ = DisplayAlert("TV Predictions", "Error reading predictions. Try again.", "Close");
                        home.IncompleteUpdate();
                    }
                    else
                    {
                        home.CompletedSettings();
                    }
                }
            }

            NetworkDatabase.CurrentlyLoading = false;
        }