All Verbs | /buy/{Id} | ||
---|---|---|---|
GET | /Buy/{Id} | ||
All Verbs | /buy/{Id}/{Quantity} | ||
GET | /Buy |
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using MyApp.ServiceModel;
namespace MyApp.ServiceModel
{
public partial class Buy
: IGet
{
public virtual string Id { get; set; }
public virtual string Coupon { get; set; }
public virtual int? Quantity { get; set; }
public virtual string RenewalRef { get; set; }
public virtual string UpgradeRef { get; set; }
}
public partial class BuyResponse
{
public virtual string Coupon { get; set; }
public virtual string RenewalRef { get; set; }
public virtual string UpgradeRef { get; set; }
public virtual Sku Sku { get; set; }
public virtual QuoteResponse Quote { get; set; }
public virtual ResponseStatus ResponseStatus { get; set; }
}
public partial class QuoteResponse
{
public virtual int SkuId { get; set; }
public virtual string Code { get; set; }
public virtual int? CustomerId { get; set; }
public virtual bool ModifyingExistingSubscription { get; set; }
public virtual bool ChangingSubscriptions { get; set; }
public virtual bool SwitchingLicensingModels { get; set; }
public virtual bool ReplacesExistingQuantity { get; set; }
public virtual int? ExistingSubscriptionQuantity { get; set; }
public virtual int? NewSubscriptionQuantity { get; set; }
public virtual string UnusedAmount { get; set; }
public virtual bool ManualProrating { get; set; }
public virtual int UnusedDays { get; set; }
public virtual int Quantity { get; set; }
public virtual int MinQuantity { get; set; }
public virtual int? MaxQuantity { get; set; }
public virtual string Subtotal { get; set; }
public virtual string DiscountDescription { get; set; }
public virtual string DiscountReceived { get; set; }
public virtual string Discount { get; set; }
public virtual string Total { get; set; }
public virtual string ExpiryDate { get; set; }
public virtual string RenewalDate { get; set; }
public virtual bool IsReferrer { get; set; }
public virtual ResponseStatus ResponseStatus { get; set; }
}
public partial class Sku
{
public virtual int Id { get; set; }
public virtual int ProductId { get; set; }
public virtual SkuType Type { get; set; }
public virtual LicenseFeature Feature { get; set; }
public virtual string Code { get; set; }
public virtual string Name { get; set; }
public virtual string Notes { get; set; }
[Ignore]
public virtual int? MinQty { get; set; }
public virtual int? MaxQty { get; set; }
public virtual int Price { get; set; }
public virtual string Plan { get; set; }
public virtual int DiscountOff { get; set; }
public virtual string DiscountLabelOff { get; set; }
public virtual int ActualPrice { get; set; }
public virtual bool IsPlan { get; set; }
public virtual bool IsRenewal { get; set; }
public virtual int? SubscriptionDurationDays { get; set; }
public virtual int? ExpiryDurationDays { get; set; }
public virtual int? TrialPeriodDays { get; set; }
public virtual int SupportQty { get; set; }
public virtual int? CoresQty { get; set; }
public virtual DateTime CreatedDate { get; set; }
public virtual DateTime ModifiedDate { get; set; }
public virtual LicenseType LicenseType { get; set; }
public virtual bool Active { get; set; }
}
public enum SkuType
{
Product,
PerDev,
PerCore,
Site,
Support,
Training,
Register,
Payment,
}
}
namespace ServiceStack
{
[Flags]
public enum LicenseFeature
{
None = 0,
Free = 0,
Premium = 1,
Text = 2,
Client = 4,
Common = 8,
Redis = 16,
RedisSku = 18,
OrmLite = 32,
OrmLiteSku = 34,
ServiceStack = 64,
Server = 128,
Razor = 256,
Admin = 512,
Aws = 1024,
AwsSku = 1026,
All = 2047,
}
public enum LicenseType
{
Free,
FreeIndividual,
FreeOpenSource,
Indie,
Business,
Enterprise,
TextIndie,
TextBusiness,
OrmLiteIndie,
OrmLiteBusiness,
RedisIndie,
RedisBusiness,
AwsIndie,
AwsBusiness,
Trial,
Site,
TextSite,
RedisSite,
OrmLiteSite,
}
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /buy/{Id} HTTP/1.1
Host: account.servicestack.net
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
id: String,
coupon: String,
quantity: 0,
renewalRef: String,
upgradeRef: String
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { coupon: String, renewalRef: String, upgradeRef: String, sku: { id: 0, productId: 0, type: Product, feature: 0, code: String, name: String, notes: String, maxQty: 0, price: 0, plan: String, discountOff: 0, discountLabelOff: String, actualPrice: 0, isPlan: False, isRenewal: False, subscriptionDurationDays: 0, expiryDurationDays: 0, trialPeriodDays: 0, supportQty: 0, coresQty: 0, createdDate: 0001-01-01, modifiedDate: 0001-01-01, licenseType: Free, active: False }, quote: { skuId: 0, code: String, customerId: 0, modifyingExistingSubscription: False, changingSubscriptions: False, switchingLicensingModels: False, replacesExistingQuantity: False, existingSubscriptionQuantity: 0, newSubscriptionQuantity: 0, unusedAmount: String, manualProrating: False, unusedDays: 0, quantity: 0, minQuantity: 0, maxQuantity: 0, subtotal: String, discountDescription: String, discountReceived: String, discount: String, total: String, expiryDate: String, renewalDate: String, isReferrer: False, responseStatus: { errorCode: String, message: String, stackTrace: String, errors: [ { errorCode: String, fieldName: String, message: String, meta: { String: String } } ], meta: { String: String } } }, responseStatus: { errorCode: String, message: String, stackTrace: String, errors: [ { errorCode: String, fieldName: String, message: String, meta: { String: String } } ], meta: { String: String } } }