public void UpdateSubscription(string subscriptionId, SubscriptionDetails updatedDetails) { var postParams = new Dictionary <string, string> { { "details", Serialize(updatedDetails) } }; AuthenticatedPost("subscriptions/" + subscriptionId, postParams); }
public SubscriptionDetails CreateSubscription(string accountId, SubscriptionDetails subscriptionDetails) { var postParams = new Dictionary <string, string> { { "accountId", accountId }, { "details", Serialize(subscriptionDetails) } }; var response = AuthenticatedPost("subscriptions/", postParams); return(Deserialize <SubscriptionDetails>(response)); }
/// <summary> /// Updates the configuration of a subscription /// </summary> /// <param name="subscriptionId">The ID of the subscription to be updated</param> /// <param name="subscriptionDetails">The new details of the subscription</param> public void UpdateSubscription(string subscriptionId, SubscriptionDetails subscriptionDetails) { var context = GetAccountsContext(); var subscription = context.Subscriptions.FirstOrDefault(s => s.Id.Equals(subscriptionId)); if (subscription != null) { subscription.IsActive = subscriptionDetails.IsActive; subscription.IsTrial = subscriptionDetails.IsTrial; subscription.Label = subscriptionDetails.Label; subscription.StoreCountLimit = subscriptionDetails.StoreLimit; subscription.StoreSizeLimit = subscriptionDetails.StoreSizeLimit; subscription.TotalSizeLimit = subscriptionDetails.TotalSizeLimit; context.SaveChanges(); } }
/// <summary> /// Creates a new subscription for an account /// </summary> /// <param name="accountId">The ID of the account</param> /// <param name="subscriptionDetails">The configuration for the new subscription</param> /// <returns>The ID of the new subscription</returns> public SubscriptionDetails CreateSubscription(string accountId, SubscriptionDetails subscriptionDetails) { var context = GetAccountsContext(); var account = context.Accounts.FirstOrDefault(a => a.Id.Equals(accountId)); if (account == null) return null; if (subscriptionDetails.IsTrial) { var existingTrial = context.Subscriptions.FirstOrDefault(s => s.Account.Equals(account) && s.IsTrial); if (existingTrial != null) { throw new AccountsRepositoryException(AccountsRepositoryException.AccountHasTrialSubscription, "Account already has a trial subscription."); } subscriptionDetails = SubscriptionDetails.TrialDetails; } var subscription = context.Subscriptions.Create(); subscription.Account = account; subscription.Created = DateTime.UtcNow; subscription.IsActive = true; subscription.IsTrial = subscriptionDetails.IsTrial; subscription.Label = subscriptionDetails.Label; subscription.StoreCountLimit = subscriptionDetails.StoreLimit; subscription.StoreSizeLimit = subscriptionDetails.StoreSizeLimit; subscription.TotalSizeLimit = subscriptionDetails.TotalSizeLimit; context.SaveChanges(); _cache.DropAccountDetails(accountId); foreach(var userToken in account.UserTokens.Select(ut=>ut.Id)) { _cache.DropAccountDetails(userToken); } return new SubscriptionDetails(subscription); }
public AccountAndSubscription(AccountDetails account, SubscriptionDetails subscription, string apiEndpoint) { Account = account; Subscription = subscription; ApiEndpoint = apiEndpoint; }
public ActionResult Create(string accountId, SubscriptionDetails details) { var accounts = GetAccountsRepository(); var newSubscription = accounts.CreateSubscription(accountId, details); return new JsonResult {Data = newSubscription}; }
public ActionResult Update(string accountId, string subscriptionId, SubscriptionDetails details) { var accounts = GetAccountsRepository(); accounts.UpdateSubscription(subscriptionId, details); return new EmptyResult(); }
public ActionResult AddSubscription(string id, SubscriptionDetails details) { var repo = AccountsRepositoryFactory.GetAccountsRepository(); repo.CreateSubscription(id, details); return RedirectToAction("Index"); }