BokaMera.API.Host

<back to all web services

EndAllLicenses

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, superadmin
The following routes are available for this service:
POST/licenses/company/deleteEnd all licensesEnd all licenses on the company for the logged in user.
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
{
    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 string LicenseStatus { get; set; }
        public virtual bool Canceled { get; set; }
        public virtual int? LicensePlanId { get; set; }
        public virtual DateTime Updated { get; set; }
        public virtual DateTime Created { get; set; }
    }

    [ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)]
    [ValidateRequest("IsAuthenticated")]
    public partial class EndAllLicenses
        : 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>
        ///If true, all licenses and the booking system are terminated today. If false (default), the licenses stay active and are billed until the end of the current billing period, and each license's ValidTo is set to that date.
        ///</summary>
        [ApiMember(Description="If true, all licenses and the booking system are terminated today. If false (default), the licenses stay active and are billed until the end of the current billing period, and each license's ValidTo is set to that date.")]
        public virtual bool Deactivate { get; set; }

        ///<summary>
        ///Questionaire with answers from customer why ending license.
        ///</summary>
        [ApiMember(Description="Questionaire with answers from customer why ending license.")]
        public virtual Questionnaire[] Questionnaire { 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; } = [];
    }

    public partial class Questionnaire
    {
        public virtual string Question { get; set; }
        public virtual string Value { 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 DateTime? BindingPeriodEndDate { get; set; }
        public virtual TierResponse Tier { get; set; }
    }

}

C# EndAllLicenses DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv

HTTP + CSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /licenses/company/delete HTTP/1.1 
Host: testapi.bokamera.se 
Accept: text/csv
Content-Type: text/csv
Content-Length: length

{"CompanyId":"00000000-0000-0000-0000-000000000000","Deactivate":false,"Questionnaire":[{"Question":"String","Value":"String"}]}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"Id":0,"TypeId":0,"Type":{"Id":0,"Name":"String","Description":"String","IsExtraLicenseOption":false,"PeriodOfNoticeDays":0,"Items":[{"Id":0,"Name":"String","AllowedItems":0}],"Prices":[{"LicenseTypeId":0,"CountryId":"String","Price":0,"Country":{"CurrencyId":"String","CurrencyInfo":{"Name":"String","CurrencySign":"String","Active":false,"ModifiedDate":"0001-01-01T00:00:00.0000000+00:00","Id":"String"},"Name":"String","Culture":"String","TimeZone":"String","ModifiedDate":"0001-01-01T00:00:00.0000000+00:00","Id":"String"},"LicensePlanId":0}]},"VossSubscriptionId":"00000000-0000-0000-0000-000000000000","VossSubscription":{"BindingPeriodEndDate":"0001-01-01T00:00:00","Tier":{"Name":"String","ProductGroups":[{"Name":"String"}]}},"MetaData":"String","Active":false,"LicenseStatus":"String","Canceled":false,"LicensePlanId":0}