Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        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);
        }