Exemplo n.º 1
0
        private async Task PurchaseSubscription(string subCode)
        {
            if (_userCache.GetLoggedInAccount() == null)
            {
                throw new InvalidOperationException("User must be logged in to purchase a subscription.");
            }
            var sub = await _purchaseService.PurchaseItem(subCode, ItemType.Subscription, "payload");

            if (sub == null)
            {
                throw new InvalidOperationException($"Something went wrong when attempting to purchase. Please try again.");
            }

            var model = new Models.SubscriptionModel()
            {
                PurchaseId        = sub.Id,
                PurchaseToken     = sub.PurchaseToken,
                SubscriptionType  = SubscriptionUtility.GetTypeFromProductId(sub.ProductId),
                StartDateTime     = DateTimeOffset.UtcNow,
                PurchasedDateTime = DateTimeOffset.UtcNow,
                EndDateTime       = DateTimeOffset.UtcNow.AddMonths(1),
                PurchaseSource    = Device.RuntimePlatform == Device.Android ? Models.PurchaseSource.GooglePlay : Models.PurchaseSource.AppStore,
                UserId            = _userCache.GetLoggedInAccount().UserId,
                Email             = _userCache.GetLoggedInAccount().Email
            };

            try
            {
                _subCache.Put(model.PurchaseId, model);
            }
            catch { }
            _subService.AddSubscription(model);
        }
Exemplo n.º 2
0
        // GET: Subscription
        public ActionResult Get()
        {
            Models.SubscriptionModel tModel = new Models.SubscriptionModel();
            List <subscription>      tList  = tModel.Get();

            return(Json(tList, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 3
0
        public SubscriptionViewModel(Interfaces.ISubscriptionModel model)
        {
            this.model = (Models.SubscriptionModel)model;

            MonitoredItems = this.model.ToReactivePropertyAsSynchronized(
                x => x.MonitoredItems);

            this.DeleteMonitoredItemsCommand = this.model.DeleteMonitoredItemsCommand;
        }