示例#1
0
 private InvoiceData ToModel(InvoiceEntity entity)
 {
     return(new InvoiceData()
     {
         StoreId = entity.StoreId,
         ExpirationTime = entity.ExpirationTime,
         MonitoringExpiration = entity.MonitoringExpiration,
         CreatedTime = entity.InvoiceTime,
         Amount = entity.Price,
         Type = entity.Type,
         Id = entity.Id,
         CheckoutLink = _linkGenerator.CheckoutLink(entity.Id, Request.Scheme, Request.Host, Request.PathBase),
         Status = entity.Status.ToModernStatus(),
         AdditionalStatus = entity.ExceptionStatus,
         Currency = entity.Currency,
         Metadata = entity.Metadata.ToJObject(),
         Checkout = new CreateInvoiceRequest.CheckoutOptions()
         {
             Expiration = entity.ExpirationTime - entity.InvoiceTime,
             Monitoring = entity.MonitoringExpiration - entity.ExpirationTime,
             PaymentTolerance = entity.PaymentTolerance,
             PaymentMethods =
                 entity.GetPaymentMethods().Select(method => method.GetId().ToStringNormalized()).ToArray(),
             SpeedPolicy = entity.SpeedPolicy,
             DefaultLanguage = entity.DefaultLanguage,
             RedirectAutomatically = entity.RedirectAutomatically,
             RedirectURL = entity.RedirectURLTemplate
         }
     });
 }
        private InvoiceData ToModel(InvoiceEntity entity)
        {
            var statuses = new List <InvoiceStatus>();
            var state    = entity.GetInvoiceState();

            if (state.CanMarkComplete())
            {
                statuses.Add(InvoiceStatus.Settled);
            }

            if (state.CanMarkInvalid())
            {
                statuses.Add(InvoiceStatus.Invalid);
            }
            return(new InvoiceData()
            {
                StoreId = entity.StoreId,
                ExpirationTime = entity.ExpirationTime,
                MonitoringExpiration = entity.MonitoringExpiration,
                CreatedTime = entity.InvoiceTime,
                Amount = entity.Price,
                Type = entity.Type,
                Id = entity.Id,
                CheckoutLink = _linkGenerator.CheckoutLink(entity.Id, Request.Scheme, Request.Host, Request.PathBase),
                Status = entity.Status.ToModernStatus(),
                AdditionalStatus = entity.ExceptionStatus,
                Currency = entity.Currency,
                Archived = entity.Archived,
                Metadata = entity.Metadata.ToJObject(),
                AvailableStatusesForManualMarking = statuses.ToArray(),
                Checkout = new CreateInvoiceRequest.CheckoutOptions()
                {
                    Expiration = entity.ExpirationTime - entity.InvoiceTime,
                    Monitoring = entity.MonitoringExpiration - entity.ExpirationTime,
                    PaymentTolerance = entity.PaymentTolerance,
                    PaymentMethods =
                        entity.GetPaymentMethods().Select(method => method.GetId().ToStringNormalized()).ToArray(),
                    DefaultPaymentMethod = entity.DefaultPaymentMethod,
                    SpeedPolicy = entity.SpeedPolicy,
                    DefaultLanguage = entity.DefaultLanguage,
                    RedirectAutomatically = entity.RedirectAutomatically,
                    RequiresRefundEmail = entity.RequiresRefundEmail,
                    RedirectURL = entity.RedirectURLTemplate
                }
            });
        }