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); }
// GET: Subscription public ActionResult Get() { Models.SubscriptionModel tModel = new Models.SubscriptionModel(); List <subscription> tList = tModel.Get(); return(Json(tList, JsonRequestBehavior.AllowGet)); }
public SubscriptionViewModel(Interfaces.ISubscriptionModel model) { this.model = (Models.SubscriptionModel)model; MonitoredItems = this.model.ToReactivePropertyAsSynchronized( x => x.MonitoredItems); this.DeleteMonitoredItemsCommand = this.model.DeleteMonitoredItemsCommand; }