public async Task <JsonNetResult> UpdateAccountSubscription(SubscriptionPostViewModel model) { var response = new GetSubscriptionResponse(); if (string.IsNullOrWhiteSpace(model.Language) || string.IsNullOrEmpty(model.Language)) { response.Success = false; response.ResponseData = null; response.Message = "An error has occured."; if (_logger.IsErrorEnabled) { _logger.Error("Language is null or empty in MyAccountSubscribe POST action of surface controller MyAccountController"); } return(ReturnJsonResponse(response)); } var culture = GetCultureInformationForLanguage(model.Language); string locale = culture.Locale; if (!ModelState.IsValid) { response.Success = false; response.Message = GetErrorsFromModelState(ModelState).FirstOrDefault(); return(ReturnJsonResponse(response)); } var result = await _profileService.UpdateSubscription(model.EmailAddress, locale, model.IsSubscribed); if (result == null) { response.Success = false; response.ResponseData = null; response.Message = "An error has occured."; } if (result.Status != (int)ResponseStatus.Success) { response.Success = false; response.ResponseData = model; response.Message = result.Message; return(ReturnJsonResponse(response)); } response.Success = true; response.Message = result.Message; return(ReturnJsonResponse(response)); }
public static GetSubscriptionResponse CancelSubscription(JObject data) { string subId = (string)data?["assinatura_id"]; string customerId = (string)data?["cliente_id"]; if (string.IsNullOrEmpty(subId) && string.IsNullOrEmpty(customerId)) { throw new ArgumentNullException("data", "Assinatura e cliente não informados."); } try { GetSubscriptionResponse cancelSub = null; if (!string.IsNullOrEmpty(subId)) { cancelSub = Client.Subscriptions.CancelSubscription(subId); } else { var subscriptions = Client.Subscriptions.GetSubscriptions(null, null, null, null, customerId); var subscription = subscriptions.Data[0] ?? null; if (subscription == null) { throw new InvalidOperationException("Não existe assinatura para este cliente."); } cancelSub = Client.Subscriptions.CancelSubscription(subscription.Id); } if (string.IsNullOrEmpty(cancelSub.Id)) { throw new InvalidOperationException("Falha no cancelamento da assinatura."); } return(cancelSub); } catch (APIException ex) { throw new InvalidOperationException(ex.Message, ex); } }
public async Task <GetSubscriptionResponse> GetSubscription(GetSubscriptionRequest subscriptionRequest) { GetSubscriptionResponse response = new GetSubscriptionResponse(); Subscription subscription = await _subscriptionRepository.FindBy(subscriptionRequest.SubscriptionId); SubscriptionView subscriptionView; if (subscription != null) { subscriptionView = _mapper.Map <SubscriptionView>(subscription); subscriptionView.MapPseudoSkus(subscription); } else { subscriptionView = null; } response.Subscription = subscriptionView; return(response); }