Requires any of the roles: | bookingsupplier-administrator-write, superadmin |
DELETE | /licenses/company/{Id} | Cancel a license to a company | Cancel an existing license to the company for the logged in user. The license will have it end date set to after it's period of notice. |
---|
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using BokaMera.API.ServiceModel.Dtos;
using BokaMera.API.ServiceModel.Db;
using BokaMera.API.ServiceModel.Helpers.VossHelper;
namespace BokaMera.API.ServiceModel.Db
{
public partial class BaseModel
{
}
public partial class Country
: BaseModel
{
[References(typeof(BokaMera.API.ServiceModel.Db.Currency))]
public virtual string CurrencyId { get; set; }
public virtual Currency CurrencyInfo { get; set; }
[Required]
public virtual string Name { get; set; }
public virtual string Culture { get; set; }
public virtual string TimeZone { get; set; }
public virtual DateTimeOffset? ModifiedDate { get; set; }
[Required]
public virtual string Id { get; set; }
}
public partial class Currency
: BaseModel
{
[Required]
public virtual string Name { get; set; }
[Required]
public virtual string CurrencySign { get; set; }
[Required]
public virtual bool Active { get; set; }
public virtual DateTimeOffset? ModifiedDate { get; set; }
[Required]
public virtual string Id { get; set; }
}
}
namespace BokaMera.API.ServiceModel.Dtos
{
[ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)]
[ValidateRequest("IsAuthenticated")]
public partial class CancelLicense
: ICompany
{
///<summary>
///The company id, if empty will use the company id for the user you are logged in with.
///</summary>
[ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.")]
public virtual Guid? CompanyId { get; set; }
///<summary>
///Id of the license
///</summary>
[ApiMember(Description="Id of the license", IsRequired=true, ParameterType="path")]
public virtual int Id { get; set; }
}
public partial class CompanyLicenseQueryResponse
{
public virtual int Id { get; set; }
public virtual int TypeId { get; set; }
public virtual LicenseTypeQueryResponse Type { get; set; }
public virtual DateTime ValidFrom { get; set; }
public virtual DateTime ValidTo { get; set; }
public virtual Guid VossSubscriptionId { get; set; }
public virtual VossSubscriptionResponse VossSubscription { get; set; }
public virtual string MetaData { get; set; }
public virtual bool Active { get; set; }
public virtual bool Canceled { get; set; }
public virtual DateTime Updated { get; set; }
public virtual DateTime Created { get; set; }
}
public partial class LicenseItemsResponse
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual int AllowedItems { get; set; }
}
public partial class LicensePriceResponse
{
public virtual int LicenseTypeId { get; set; }
public virtual string CountryId { get; set; }
public virtual int Price { get; set; }
public virtual Country Country { get; set; }
public virtual int LicensePlanId { get; set; }
}
public partial class LicenseTypeQueryResponse
{
///<summary>
///The license type id
///</summary>
[ApiMember(Description="The license type id")]
public virtual int Id { get; set; }
///<summary>
///The license type name
///</summary>
[ApiMember(Description="The license type name")]
public virtual string Name { get; set; }
///<summary>
///The license type description
///</summary>
[ApiMember(Description="The license type description")]
public virtual string Description { get; set; }
///<summary>
///If the license type is not a standard license but instead an extra license option. An example would be sending newsletter license.
///</summary>
[ApiMember(Description="If the license type is not a standard license but instead an extra license option. An example would be sending newsletter license.")]
public virtual bool IsExtraLicenseOption { get; set; }
///<summary>
///The period of notice for the license in days.
///</summary>
[ApiMember(Description="The period of notice for the license in days.")]
public virtual int PeriodOfNoticeDays { get; set; }
///<summary>
///The license items for the license type
///</summary>
[ApiMember(Description="The license items for the license type")]
public virtual List<LicenseItemsResponse> Items { get; set; } = [];
///<summary>
///The license prices in each country for the license type
///</summary>
[ApiMember(Description="The license prices in each country for the license type")]
public virtual List<LicensePriceResponse> Prices { get; set; } = [];
}
}
namespace BokaMera.API.ServiceModel.Helpers.VossHelper
{
public partial class ProductGroupResponse
{
public virtual Guid Id { get; set; }
public virtual string Name { get; set; }
public virtual Guid TierId { get; set; }
}
public partial class TierResponse
{
public virtual Guid Id { get; set; }
public virtual string Name { get; set; }
public virtual List<ProductGroupResponse> ProductGroups { get; set; } = [];
}
public partial class VossSubscriptionResponse
{
public virtual DateTime SubscriptionBillingPeriodStartDate { get; set; }
public virtual DateTime SubscriptionBillingPeriodEndDate { get; set; }
public virtual TierResponse Tier { get; set; }
}
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
DELETE /licenses/company/{Id} HTTP/1.1 Host: testapi.bokamera.se Accept: application/xml
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: length <CompanyLicenseQueryResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos"> <Active>false</Active> <Canceled>false</Canceled> <Created>0001-01-01T00:00:00</Created> <Id>0</Id> <MetaData>String</MetaData> <Type> <Description>String</Description> <Id>0</Id> <IsExtraLicenseOption>false</IsExtraLicenseOption> <Items> <LicenseItemsResponse> <AllowedItems>0</AllowedItems> <Id>0</Id> <Name>String</Name> </LicenseItemsResponse> </Items> <Name>String</Name> <PeriodOfNoticeDays>0</PeriodOfNoticeDays> <Prices> <LicensePriceResponse> <Country xmlns:d5p1="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Db"> <d5p1:Culture>String</d5p1:Culture> <d5p1:CurrencyId>String</d5p1:CurrencyId> <d5p1:CurrencyInfo> <d5p1:Active>false</d5p1:Active> <d5p1:CurrencySign>String</d5p1:CurrencySign> <d5p1:Id>String</d5p1:Id> <d5p1:ModifiedDate xmlns:d7p1="http://schemas.datacontract.org/2004/07/System"> <d7p1:DateTime>0001-01-01T00:00:00Z</d7p1:DateTime> <d7p1:OffsetMinutes>0</d7p1:OffsetMinutes> </d5p1:ModifiedDate> <d5p1:Name>String</d5p1:Name> </d5p1:CurrencyInfo> <d5p1:Id>String</d5p1:Id> <d5p1:ModifiedDate xmlns:d6p1="http://schemas.datacontract.org/2004/07/System"> <d6p1:DateTime>0001-01-01T00:00:00Z</d6p1:DateTime> <d6p1:OffsetMinutes>0</d6p1:OffsetMinutes> </d5p1:ModifiedDate> <d5p1:Name>String</d5p1:Name> <d5p1:TimeZone>String</d5p1:TimeZone> </Country> <CountryId>String</CountryId> <LicensePlanId>0</LicensePlanId> <LicenseTypeId>0</LicenseTypeId> <Price>0</Price> </LicensePriceResponse> </Prices> </Type> <TypeId>0</TypeId> <Updated>0001-01-01T00:00:00</Updated> <ValidFrom>0001-01-01T00:00:00</ValidFrom> <ValidTo>0001-01-01T00:00:00</ValidTo> <VossSubscription xmlns:d2p1="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Helpers.VossHelper"> <d2p1:SubscriptionBillingPeriodEndDate>0001-01-01T00:00:00</d2p1:SubscriptionBillingPeriodEndDate> <d2p1:SubscriptionBillingPeriodStartDate>0001-01-01T00:00:00</d2p1:SubscriptionBillingPeriodStartDate> <d2p1:Tier> <d2p1:Id>00000000-0000-0000-0000-000000000000</d2p1:Id> <d2p1:Name>String</d2p1:Name> <d2p1:ProductGroups> <d2p1:ProductGroupResponse> <d2p1:Id>00000000-0000-0000-0000-000000000000</d2p1:Id> <d2p1:Name>String</d2p1:Name> <d2p1:TierId>00000000-0000-0000-0000-000000000000</d2p1:TierId> </d2p1:ProductGroupResponse> </d2p1:ProductGroups> </d2p1:Tier> </VossSubscription> <VossSubscriptionId>00000000-0000-0000-0000-000000000000</VossSubscriptionId> </CompanyLicenseQueryResponse>