コード例 #1
0
        public async Task Init(Data.MagazineViewModel mag, bool local = false, bool intern = false)
        {
            bool needToUpdateImage = false;

            if (mag.Image != null)
            {
                thumbnail.Source = mag.Image;
            }
            else
            {
                needToUpdateImage = true;
            }

            title.Text    = mag.Title;
            subtitle.Text = mag.Subtitle;
            var loader = new ResourceLoader();

            if (local)
            {
                _item = mag;

                noOptions.Visibility              = Windows.UI.Xaml.Visibility.Collapsed;
                noOptions.Text                    = loader.GetString("no_options");
                subscribeBtnContainer.Visibility  = Windows.UI.Xaml.Visibility.Collapsed;
                subscribeBtn1Container.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
                buyMagContainer.Visibility        = Windows.UI.Xaml.Visibility.Collapsed;
                getSampleContainer.Visibility     = Windows.UI.Xaml.Visibility.Collapsed;

                open.Text = loader.GetString("read");
                openContainer.Visibility = Windows.UI.Xaml.Visibility.Visible;
                delete.Text = loader.GetString("delete");
                deleteContainer.Visibility = Windows.UI.Xaml.Visibility.Visible;

                if (_item.IsSampleDownloaded)
                {
                    subtitle.Text += " SAMPLE";
                }

                this.Visibility = Windows.UI.Xaml.Visibility.Visible;

                return;
            }

            if (mag.IsSampleDownloaded)
            {
                getSample.Text          = loader.GetString("open_sample");
                getSampleButton.Content = "\xe16f";
            }
            else
            {
                getSample.Text          = loader.GetString("download_sample");
                getSampleButton.Content = "\xe118";
            }

            _item              = mag;
            product_id         = mag.FileName.Replace("_.pdf", "");
            relativePath       = mag.RelativePath;
            licenseInformation = CurrentApp.LicenseInformation;
            IReadOnlyDictionary <string, ProductListing> productListings = null;

            try
            {
                var appListing = await CurrentApp.LoadListingInformationAsync();

                productListings = appListing.ProductListings;
            }
            catch
            {
                subscribeBtnContainer.Visibility  = Windows.UI.Xaml.Visibility.Collapsed;
                subscribeBtn1Container.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
                buyMagContainer.Visibility        = Windows.UI.Xaml.Visibility.Collapsed;
                if (!intern)
                {
                    getSampleContainer.Visibility = Windows.UI.Xaml.Visibility.Visible;
                }
                else
                {
                    getSampleContainer.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
                }
                openContainer.Visibility   = Windows.UI.Xaml.Visibility.Collapsed;
                deleteContainer.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
                noOptions.Visibility       = Windows.UI.Xaml.Visibility.Visible;
                noOptions.Text             = loader.GetString("no_options");
                this.Visibility            = Windows.UI.Xaml.Visibility.Visible;

                if (needToUpdateImage)
                {
                    var task = LoadImage(mag);
                }

                return;
            }

            ProductListing product = null;

            //statusContainer.Visibility = Windows.UI.Xaml.Visibility.Visible;
            //buttonContainer.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
            subscribeBtnContainer.Visibility  = Windows.UI.Xaml.Visibility.Collapsed;
            subscribeBtn1Container.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
            buyMagContainer.Visibility        = Windows.UI.Xaml.Visibility.Collapsed;
            if (!intern)
            {
                getSampleContainer.Visibility = Windows.UI.Xaml.Visibility.Visible;
            }
            else
            {
                getSampleContainer.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
            }
            openContainer.Visibility   = Windows.UI.Xaml.Visibility.Collapsed;
            deleteContainer.Visibility = Windows.UI.Xaml.Visibility.Collapsed;

            this.Visibility = Windows.UI.Xaml.Visibility.Visible;

            try
            {
                product = productListings[product_id];
            }
            catch { }

            if (product != null)
            {
                if (!licenseInformation.ProductLicenses[product.ProductId].IsActive)
                {
                    string receipt = "";
                    try
                    {
                        receipt = await CurrentApp.GetAppReceiptAsync().AsTask();

                        receipt = DownloadManager.GetProductReceiptFromAppReceipt(product.ProductId, receipt);
                    }
                    catch { }
                    if (receipt != "")
                    {
                        await DownloadManager.StoreReceiptAsync(product_id, receipt);

                        var app = Application.Current as App;
                        var url = DownloadManager.GetUrl(product_id, receipt, relativePath, app.ClientName, app.MagazineName);
                        if (!url.Equals("NoReceipt"))
                        {
                            Bought(this, url);
                            return;
                        }
                        else
                        {
                            noOptions.Visibility       = Windows.UI.Xaml.Visibility.Collapsed;
                            buyMag.Text                = loader.GetString("buy_number") + " " + product.FormattedPrice;
                            buyMagContainer.Visibility = Windows.UI.Xaml.Visibility.Visible;
                        }
                    }
                    else
                    {
                        var app = Application.Current as App;
                        var url = await DownloadManager.GetUrl(product_id, relativePath, app.ClientName, app.MagazineName);

                        if (!url.Equals("NoReceipt"))
                        {
                            Bought(this, url);
                            return;
                        }
                        else
                        {
                            noOptions.Visibility       = Windows.UI.Xaml.Visibility.Collapsed;
                            buyMag.Text                = loader.GetString("buy_number") + " " + product.FormattedPrice;
                            buyMagContainer.Visibility = Windows.UI.Xaml.Visibility.Visible;
                        }
                    }
                }
                else
                {
                    if (Bought != null)
                    {
                        var app = Application.Current as App;
                        var url = await DownloadManager.GetUrl(product_id, relativePath, app.ClientName, app.MagazineName);

                        if (url.Equals("NoReceipt"))
                        {
                            string receipt = "";
                            try
                            {
                                receipt = await CurrentApp.GetAppReceiptAsync().AsTask();
                            }
                            catch { }
                            if (receipt != "")
                            {
                                await DownloadManager.StoreReceiptAsync(product_id, receipt);

                                url = DownloadManager.GetUrl(product_id, receipt, relativePath, app.ClientName, app.MagazineName);
                                if (!url.Equals("NoReceipt"))
                                {
                                    Bought(this, url);
                                    return;
                                }
                                else
                                {
                                    var messageDialog = new MessageDialog("No Receipt");
                                    var task          = messageDialog.ShowAsync().AsTask();
                                }
                            }
                            else
                            {
                                var messageDialog = new MessageDialog("No Receipt");
                                var task          = messageDialog.ShowAsync().AsTask();
                            }
                        }
                        else
                        {
                            Bought(this, url);
                            return;
                        }
                    }
                    else
                    {
                        var messageDialog = new MessageDialog(loader.GetString("purchase_successfull"));
                        var task          = messageDialog.ShowAsync().AsTask();
                    }
                }
            }

            product = null;

            try {
                product = productListings["yearlysubscription"];
            } catch { }

            if (product != null)
            {
                if (!licenseInformation.ProductLicenses[product.ProductId].IsActive)
                {
                    string receipt = "";
                    try {
                        receipt = await CurrentApp.GetAppReceiptAsync().AsTask();

                        receipt = DownloadManager.GetProductReceiptFromAppReceipt(product.ProductId, receipt);
                    } catch { }
                    if (receipt != "")
                    {
                        await DownloadManager.StoreReceiptAsync("yearlysubscription", receipt);

                        var app = Application.Current as App;
                        var url = DownloadManager.GetUrl("yearlysubscription", receipt, relativePath, app.ClientName, app.MagazineName);
                        if (!url.Equals("NoReceipt"))
                        {
                            Bought(this, url);
                            return;
                        }
                        else
                        {
                            noOptions.Visibility             = Windows.UI.Xaml.Visibility.Collapsed;
                            subscribeBtn.Text                = loader.GetString("subscribe_one_year") + " " + product.FormattedPrice;
                            subscribeBtnContainer.Visibility = Windows.UI.Xaml.Visibility.Visible;
                        }
                    }
                    else
                    {
                        var app = Application.Current as App;
                        var url = await DownloadManager.GetUrl("yearlysubscription", relativePath, app.ClientName, app.MagazineName);

                        if (!url.Equals("NoReceipt"))
                        {
                            Bought(this, url);
                            return;
                        }
                        else
                        {
                            noOptions.Visibility             = Windows.UI.Xaml.Visibility.Collapsed;
                            subscribeBtn.Text                = loader.GetString("subscribe_one_year") + " " + product.FormattedPrice;
                            subscribeBtnContainer.Visibility = Windows.UI.Xaml.Visibility.Visible;
                        }
                    }
                }
                else
                {
                    //var productLicense1 = licenseInformation.ProductLicenses["Subscription1"];
                    //var longdateTemplate = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter("longdate");
                    //var text = "Subscription1 expires on: " + longdateTemplate.Format(productLicense1.ExpirationDate);
                    //var remainingDays = (productLicense1.ExpirationDate - DateTime.Now).Days;
                    if (Bought != null)
                    {
                        var app = Application.Current as App;
                        var url = await DownloadManager.GetUrl("yearlysubscription", relativePath, app.ClientName, app.MagazineName);

                        if (url.Equals("NoReceipt"))
                        {
                            string receipt = "";
                            try {
                                receipt = await CurrentApp.GetAppReceiptAsync().AsTask();
                            }  catch { }
                            if (receipt != "")
                            {
                                await DownloadManager.StoreReceiptAsync("yearlysubscription", receipt);

                                url = DownloadManager.GetUrl("yearlysubscription", receipt, relativePath, app.ClientName, app.MagazineName);
                                if (!url.Equals("NoReceipt"))
                                {
                                    Bought(this, url);
                                    return;
                                }
                                else
                                {
                                    var messageDialog = new MessageDialog("No Receipt");
                                    var task          = messageDialog.ShowAsync().AsTask();
                                }
                            }
                            else
                            {
                                var messageDialog = new MessageDialog("No Receipt");
                                var task          = messageDialog.ShowAsync().AsTask();
                            }
                        }
                        else
                        {
                            Bought(this, url);
                            return;
                        }
                    }
                    else
                    {
                        var messageDialog = new MessageDialog(loader.GetString("purchase_successfull"));
                        var task          = messageDialog.ShowAsync().AsTask();
                    }
                }
            }

            product = null;

            try {
                product = productListings["monthlysubscription"];
            } catch { }

            if (product != null)
            {
                if (!licenseInformation.ProductLicenses[product.ProductId].IsActive)
                {
                    string receipt = "";
                    try
                    {
                        receipt = await CurrentApp.GetAppReceiptAsync().AsTask();

                        receipt = DownloadManager.GetProductReceiptFromAppReceipt(product.ProductId, receipt);
                    }
                    catch { }
                    if (receipt != "")
                    {
                        await DownloadManager.StoreReceiptAsync("monthlysubscription", receipt);

                        var app = Application.Current as App;
                        var url = DownloadManager.GetUrl("monthlysubscription", receipt, relativePath, app.ClientName, app.MagazineName);
                        if (!url.Equals("NoReceipt"))
                        {
                            Bought(this, url);
                            return;
                        }
                        else
                        {
                            noOptions.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
                            subscribeBtn1.Text   = loader.GetString("subscribe_one_month") + " " + product.FormattedPrice;
                            subscribeBtn1Container.Visibility = Windows.UI.Xaml.Visibility.Visible;
                        }
                    }
                    else
                    {
                        var app = Application.Current as App;
                        var url = await DownloadManager.GetUrl("monthlysubscription", relativePath, app.ClientName, app.MagazineName);

                        if (!url.Equals("NoReceipt"))
                        {
                            Bought(this, url);
                            return;
                        }
                        else
                        {
                            noOptions.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
                            subscribeBtn1.Text   = loader.GetString("subscribe_one_month") + " " + product.FormattedPrice;
                            subscribeBtn1Container.Visibility = Windows.UI.Xaml.Visibility.Visible;
                        }
                    }
                }
                else
                {
                    if (Bought != null)
                    {
                        var app = Application.Current as App;
                        var url = await DownloadManager.GetUrl("monthlysubscription", relativePath, app.ClientName, app.MagazineName);

                        if (url.Equals("NoReceipt"))
                        {
                            string receipt = "";
                            try
                            {
                                receipt = await CurrentApp.GetAppReceiptAsync().AsTask();
                            }
                            catch { }
                            if (receipt != "")
                            {
                                await DownloadManager.StoreReceiptAsync("monthlysubscription", receipt);

                                url = DownloadManager.GetUrl("monthlysubscription", receipt, relativePath, app.ClientName, app.MagazineName);
                                if (!url.Equals("NoReceipt"))
                                {
                                    Bought(this, url);
                                    return;
                                }
                                else
                                {
                                    var messageDialog = new MessageDialog("No Receipt");
                                    var task          = messageDialog.ShowAsync().AsTask();
                                }
                            }
                            else
                            {
                                var messageDialog = new MessageDialog("No Receipt");
                                var task          = messageDialog.ShowAsync().AsTask();
                            }
                        }
                        else
                        {
                            Bought(this, url);
                            return;
                        }
                    }
                    else
                    {
                        var messageDialog = new MessageDialog(loader.GetString("purchase_successfull"));
                        var task          = messageDialog.ShowAsync().AsTask();
                    }
                }
            }

            if (buyMagContainer.Visibility == Windows.UI.Xaml.Visibility.Collapsed)
            {
                if (subscribeBtnContainer.Visibility == Windows.UI.Xaml.Visibility.Visible)
                {
                    //subscribeBtnContainer.Margin = new Thickness(0, 22, 0, 10);
                }
                else if (subscribeBtn1Container.Visibility == Windows.UI.Xaml.Visibility.Visible)
                {
                    //subscribeBtn1.Margin = new Thickness(0, 22, 0, 10);
                }
                else
                {
                    noOptions.Visibility = Windows.UI.Xaml.Visibility.Visible;
                    noOptions.Text       = loader.GetString("no_options");
                }
            }

            if (needToUpdateImage)
            {
                await LoadImage(mag);
            }

            //statusContainer.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
            //buttonContainer.Visibility = Windows.UI.Xaml.Visibility.Visible;
        }