/* This file is automatically generated by ABP framework to use MVC Controllers from javascript. */

var abp = abp || {};
abp.services = abp.services || {};

// module 'app'
(function(){

  abp.services.app = abp.services.app || {};

  // controller 'timing'
  (function(){

    abp.services.app.timing = abp.services.app.timing || {};

    // action 'getTimezones'
    abp.services.app.timing.getTimezones = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Timing/GetTimezones' + abp.utils.buildQueryString([{ name: 'defaultTimezoneScope', value: input.defaultTimezoneScope }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getTimezoneComboboxItems'
    abp.services.app.timing.getTimezoneComboboxItems = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Timing/GetTimezoneComboboxItems' + abp.utils.buildQueryString([{ name: 'selectedTimezoneId', value: input.selectedTimezoneId }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

  })();

  // controller 'tenantDashboard'
  (function(){

    abp.services.app.tenantDashboard = abp.services.app.tenantDashboard || {};

    // action 'getMemberActivity'
    abp.services.app.tenantDashboard.getMemberActivity = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/TenantDashboard/GetMemberActivity',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getDashboardData'
    abp.services.app.tenantDashboard.getDashboardData = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/TenantDashboard/GetDashboardData' + abp.utils.buildQueryString([{ name: 'salesSummaryDatePeriod', value: input.salesSummaryDatePeriod }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getSalesSummary'
    abp.services.app.tenantDashboard.getSalesSummary = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/TenantDashboard/GetSalesSummary' + abp.utils.buildQueryString([{ name: 'salesSummaryDatePeriod', value: input.salesSummaryDatePeriod }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getWorldMap'
    abp.services.app.tenantDashboard.getWorldMap = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/TenantDashboard/GetWorldMap' + abp.utils.buildQueryString([{ name: 'input', value: input }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getServerStats'
    abp.services.app.tenantDashboard.getServerStats = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/TenantDashboard/GetServerStats' + abp.utils.buildQueryString([{ name: 'input', value: input }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getGeneralStats'
    abp.services.app.tenantDashboard.getGeneralStats = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/TenantDashboard/GetGeneralStats' + abp.utils.buildQueryString([{ name: 'input', value: input }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getInfoBlockOutputDataAsync'
    abp.services.app.tenantDashboard.getInfoBlockOutputDataAsync = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/TenantDashboard/GetInfoBlockOutputDataAsync',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getAllInfoAsync'
    abp.services.app.tenantDashboard.getAllInfoAsync = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/TenantDashboard/GetAllInfoAsync',
        type: 'GET'
      }, ajaxParams));;
    };

  })();

  // controller 'setup'
  (function(){

    abp.services.app.setup = abp.services.app.setup || {};

    // action 'setupTenantWithDefaultValuesAsync'
    abp.services.app.setup.setupTenantWithDefaultValuesAsync = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Setup/SetupTenantWithDefaultValuesAsync',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

  })();

  // controller 'session'
  (function(){

    abp.services.app.session = abp.services.app.session || {};

    // action 'getCurrentLoginInformations'
    abp.services.app.session.getCurrentLoginInformations = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Session/GetCurrentLoginInformations',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'updateUserSignInToken'
    abp.services.app.session.updateUserSignInToken = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Session/UpdateUserSignInToken',
        type: 'PUT'
      }, ajaxParams));;
    };

  })();

  // controller 'urlRecord'
  (function(){

    abp.services.app.urlRecord = abp.services.app.urlRecord || {};

    // action 'getBySlug'
    abp.services.app.urlRecord.getBySlug = function(slug, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/UrlRecord/GetBySlug' + abp.utils.buildQueryString([{ name: 'slug', value: slug }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getActiveUrlRecords'
    abp.services.app.urlRecord.getActiveUrlRecords = function(entityIds, entityName, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/UrlRecord/GetActiveUrlRecords' + abp.utils.buildQueryString([{ name: 'entityIds', value: entityIds }, { name: 'entityName', value: entityName }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getActiveSlug'
    abp.services.app.urlRecord.getActiveSlug = function(entityId, entityName, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/UrlRecord/GetActiveSlug' + abp.utils.buildQueryString([{ name: 'entityId', value: entityId }, { name: 'entityName', value: entityName }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'createUrlRecord'
    abp.services.app.urlRecord.createUrlRecord = function(urlRecord, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/UrlRecord/CreateUrlRecord',
        type: 'POST',
        data: JSON.stringify(urlRecord)
      }, ajaxParams));;
    };

    // action 'generateSlug'
    abp.services.app.urlRecord.generateSlug = function(text, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/UrlRecord/GenerateSlug' + abp.utils.buildQueryString([{ name: 'text', value: text }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

  })();

  // controller 'linkedCalendar'
  (function(){

    abp.services.app.linkedCalendar = abp.services.app.linkedCalendar || {};

    // action 'createOAuthCodeRequestUrl'
    abp.services.app.linkedCalendar.createOAuthCodeRequestUrl = function(redirectUrl, tenantId, publishCalendar, checkAvaibilityCalendar, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/LinkedCalendar/CreateOAuthCodeRequestUrl' + abp.utils.buildQueryString([{ name: 'redirectUrl', value: redirectUrl }, { name: 'tenantId', value: tenantId }, { name: 'publishCalendar', value: publishCalendar }, { name: 'checkAvaibilityCalendar', value: checkAvaibilityCalendar }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'processOAuthCallBack'
    abp.services.app.linkedCalendar.processOAuthCallBack = function(code, state, redirectUrl, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/LinkedCalendar/ProcessOAuthCallBack' + abp.utils.buildQueryString([{ name: 'code', value: code }, { name: 'state', value: state }, { name: 'redirectUrl', value: redirectUrl }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'createLinkedCalendar'
    abp.services.app.linkedCalendar.createLinkedCalendar = function(linkedCalendar, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/LinkedCalendar/CreateLinkedCalendar',
        type: 'POST',
        data: JSON.stringify(linkedCalendar)
      }, ajaxParams));;
    };

    // action 'createLinkedCalendarAndGetIdAsync'
    abp.services.app.linkedCalendar.createLinkedCalendarAndGetIdAsync = function(linkedCalendar, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/LinkedCalendar/CreateLinkedCalendarAndGetIdAsync',
        type: 'POST',
        data: JSON.stringify(linkedCalendar)
      }, ajaxParams));;
    };

    // action 'getAllLinkedCalendar'
    abp.services.app.linkedCalendar.getAllLinkedCalendar = function(tenantId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/LinkedCalendar/GetAllLinkedCalendar' + abp.utils.buildQueryString([{ name: 'tenantId', value: tenantId }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getCalendarList'
    abp.services.app.linkedCalendar.getCalendarList = function(id, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/LinkedCalendar/GetCalendarList' + abp.utils.buildQueryString([{ name: 'id', value: id }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getLinkedCalendar'
    abp.services.app.linkedCalendar.getLinkedCalendar = function(id, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/LinkedCalendar/GetLinkedCalendar' + abp.utils.buildQueryString([{ name: 'id', value: id }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'updateLinkedCalendar'
    abp.services.app.linkedCalendar.updateLinkedCalendar = function(updatedUserCred, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/LinkedCalendar/UpdateLinkedCalendar',
        type: 'PUT',
        data: JSON.stringify(updatedUserCred)
      }, ajaxParams));;
    };

    // action 'deleteLinkedCalendar'
    abp.services.app.linkedCalendar.deleteLinkedCalendar = function(id, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/LinkedCalendar/DeleteLinkedCalendar' + abp.utils.buildQueryString([{ name: 'id', value: id }]) + '',
        type: 'DELETE'
      }, ajaxParams));;
    };

    // action 'bulkAddOrdersToCalendar'
    abp.services.app.linkedCalendar.bulkAddOrdersToCalendar = function(id, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/LinkedCalendar/BulkAddOrdersToCalendar' + abp.utils.buildQueryString([{ name: 'id', value: id }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

  })();

  // controller 'scheduling'
  (function(){

    abp.services.app.scheduling = abp.services.app.scheduling || {};

    // action 'getAvailability'
    abp.services.app.scheduling.getAvailability = function(startDate, endDate, includeFullSlots, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Scheduling/GetAvailability' + abp.utils.buildQueryString([{ name: 'startDate', value: startDate }, { name: 'endDate', value: endDate }, { name: 'includeFullSlots', value: includeFullSlots }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getAvailabilitySettings'
    abp.services.app.scheduling.getAvailabilitySettings = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Scheduling/GetAvailabilitySettings',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'createAvailabilitySettings'
    abp.services.app.scheduling.createAvailabilitySettings = function(daysOfWeekDto, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Scheduling/CreateAvailabilitySettings',
        type: 'POST',
        data: JSON.stringify(daysOfWeekDto)
      }, ajaxParams));;
    };

    // action 'createOrUpdateAvailabilitySettings'
    abp.services.app.scheduling.createOrUpdateAvailabilitySettings = function(daysOfWeekDto, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Scheduling/CreateOrUpdateAvailabilitySettings',
        type: 'POST',
        data: JSON.stringify(daysOfWeekDto)
      }, ajaxParams));;
    };

    // action 'createTimeSlot'
    abp.services.app.scheduling.createTimeSlot = function(timeSlotDto, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Scheduling/CreateTimeSlot',
        type: 'POST',
        data: JSON.stringify(timeSlotDto)
      }, ajaxParams));;
    };

    // action 'getTimeSlot'
    abp.services.app.scheduling.getTimeSlot = function(id, includeArchived, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Scheduling/GetTimeSlot' + abp.utils.buildQueryString([{ name: 'id', value: id }, { name: 'includeArchived', value: includeArchived }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getTimeSlots'
    abp.services.app.scheduling.getTimeSlots = function(includeArchived, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Scheduling/GetTimeSlots' + abp.utils.buildQueryString([{ name: 'includeArchived', value: includeArchived }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'updateTimeSlot'
    abp.services.app.scheduling.updateTimeSlot = function(input, includeArchived, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Scheduling/UpdateTimeSlot' + abp.utils.buildQueryString([{ name: 'includeArchived', value: includeArchived }]) + '',
        type: 'PUT',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'deleteTimeSlot'
    abp.services.app.scheduling.deleteTimeSlot = function(id, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Scheduling/DeleteTimeSlot' + abp.utils.buildQueryString([{ name: 'id', value: id }]) + '',
        type: 'DELETE'
      }, ajaxParams));;
    };

    // action 'archiveTimeSlot'
    abp.services.app.scheduling.archiveTimeSlot = function(id, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Scheduling/ArchiveTimeSlot' + abp.utils.buildQueryString([{ name: 'id', value: id }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'unarchiveTimeSlot'
    abp.services.app.scheduling.unarchiveTimeSlot = function(id, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Scheduling/UnarchiveTimeSlot' + abp.utils.buildQueryString([{ name: 'id', value: id }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'getBlockedTimes'
    abp.services.app.scheduling.getBlockedTimes = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Scheduling/GetBlockedTimes',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'createBlockedTime'
    abp.services.app.scheduling.createBlockedTime = function(blockedTimeDto, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Scheduling/CreateBlockedTime',
        type: 'POST',
        data: JSON.stringify(blockedTimeDto)
      }, ajaxParams));;
    };

    // action 'updateBlockedTimeAsync'
    abp.services.app.scheduling.updateBlockedTimeAsync = function(blockedTimeDto, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Scheduling/UpdateBlockedTimeAsync',
        type: 'PUT',
        data: JSON.stringify(blockedTimeDto)
      }, ajaxParams));;
    };

    // action 'getBlockedTimeForEdit'
    abp.services.app.scheduling.getBlockedTimeForEdit = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Scheduling/GetBlockedTimeForEdit' + abp.utils.buildQueryString([{ name: 'id', value: input.id }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'createOrUpdateBlockedTime'
    abp.services.app.scheduling.createOrUpdateBlockedTime = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Scheduling/CreateOrUpdateBlockedTime',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'deleteBlockedTime'
    abp.services.app.scheduling.deleteBlockedTime = function(id, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Scheduling/DeleteBlockedTime' + abp.utils.buildQueryString([{ name: 'id', value: id }]) + '',
        type: 'DELETE'
      }, ajaxParams));;
    };

    // action 'getAllRecurrences'
    abp.services.app.scheduling.getAllRecurrences = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Scheduling/GetAllRecurrences',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getRecurrence'
    abp.services.app.scheduling.getRecurrence = function(id, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Scheduling/GetRecurrence' + abp.utils.buildQueryString([{ name: 'id', value: id }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getRecurrenceForEdit'
    abp.services.app.scheduling.getRecurrenceForEdit = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Scheduling/GetRecurrenceForEdit' + abp.utils.buildQueryString([{ name: 'id', value: input.id }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'createOrUpdateRecurrence'
    abp.services.app.scheduling.createOrUpdateRecurrence = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Scheduling/CreateOrUpdateRecurrence',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'updateRecurrence'
    abp.services.app.scheduling.updateRecurrence = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Scheduling/UpdateRecurrence',
        type: 'PUT',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'createRecurrence'
    abp.services.app.scheduling.createRecurrence = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Scheduling/CreateRecurrence',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'deleteRecurrence'
    abp.services.app.scheduling.deleteRecurrence = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Scheduling/DeleteRecurrence' + abp.utils.buildQueryString([{ name: 'id', value: input.id }]) + '',
        type: 'DELETE'
      }, ajaxParams));;
    };

    // action 'getAllRecurrencesSeedData'
    abp.services.app.scheduling.getAllRecurrencesSeedData = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Scheduling/GetAllRecurrencesSeedData',
        type: 'GET'
      }, ajaxParams));;
    };

  })();

  // controller 'product'
  (function(){

    abp.services.app.product = abp.services.app.product || {};

    // action 'getProducts'
    abp.services.app.product.getProducts = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/GetProducts',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getProductsWithOptions'
    abp.services.app.product.getProductsWithOptions = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/GetProductsWithOptions',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getProduct'
    abp.services.app.product.getProduct = function(productId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/GetProduct' + abp.utils.buildQueryString([{ name: 'productId', value: productId }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getMainProductIndlucingOptions'
    abp.services.app.product.getMainProductIndlucingOptions = function(includeOptionsWithNoValues, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/GetMainProductIndlucingOptions' + abp.utils.buildQueryString([{ name: 'includeOptionsWithNoValues', value: includeOptionsWithNoValues }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getMainProductsIncludingOptions'
    abp.services.app.product.getMainProductsIncludingOptions = function(includeOptionsWithNoValues, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/GetMainProductsIncludingOptions' + abp.utils.buildQueryString([{ name: 'includeOptionsWithNoValues', value: includeOptionsWithNoValues }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getMainProducts'
    abp.services.app.product.getMainProducts = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/GetMainProducts',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getMainProductIndlucingOptionsSeedData'
    abp.services.app.product.getMainProductIndlucingOptionsSeedData = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/GetMainProductIndlucingOptionsSeedData',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getExtraServices'
    abp.services.app.product.getExtraServices = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/GetExtraServices',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getUnparentedExtraServices'
    abp.services.app.product.getUnparentedExtraServices = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/GetUnparentedExtraServices',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'updateProductSortOrder'
    abp.services.app.product.updateProductSortOrder = function(sortedProductIds, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/UpdateProductSortOrder',
        type: 'PUT',
        dataType: null,
        data: JSON.stringify(sortedProductIds)
      }, ajaxParams));;
    };

    // action 'updateProductOptionValueSortOrder'
    abp.services.app.product.updateProductOptionValueSortOrder = function(sortedProductOptionValueIds, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/UpdateProductOptionValueSortOrder',
        type: 'PUT',
        dataType: null,
        data: JSON.stringify(sortedProductOptionValueIds)
      }, ajaxParams));;
    };

    // action 'productOptionSortOrderMoveUp'
    abp.services.app.product.productOptionSortOrderMoveUp = function(id, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/ProductOptionSortOrderMoveUp' + abp.utils.buildQueryString([{ name: 'id', value: id }]) + '',
        type: 'POST',
        dataType: null
      }, ajaxParams));;
    };

    // action 'productOptionSortOrderMoveDown'
    abp.services.app.product.productOptionSortOrderMoveDown = function(id, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/ProductOptionSortOrderMoveDown' + abp.utils.buildQueryString([{ name: 'id', value: id }]) + '',
        type: 'POST',
        dataType: null
      }, ajaxParams));;
    };

    // action 'getExtraServicesSeedData'
    abp.services.app.product.getExtraServicesSeedData = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/GetExtraServicesSeedData',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getProductIncludingOptions'
    abp.services.app.product.getProductIncludingOptions = function(productId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/GetProductIncludingOptions' + abp.utils.buildQueryString([{ name: 'productId', value: productId }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getProductOptionAsync'
    abp.services.app.product.getProductOptionAsync = function(productOptionId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/GetProductOptionAsync' + abp.utils.buildQueryString([{ name: 'productOptionId', value: productOptionId }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getProductOptionValueAsync'
    abp.services.app.product.getProductOptionValueAsync = function(productOptionValueId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/GetProductOptionValueAsync' + abp.utils.buildQueryString([{ name: 'productOptionValueId', value: productOptionValueId }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'createProductGetIdAsync'
    abp.services.app.product.createProductGetIdAsync = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/CreateProductGetIdAsync',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'addProductOptionGetId'
    abp.services.app.product.addProductOptionGetId = function(productId, optionName, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/AddProductOptionGetId' + abp.utils.buildQueryString([{ name: 'productId', value: productId }, { name: 'optionName', value: optionName }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'addProductOptionValue'
    abp.services.app.product.addProductOptionValue = function(productOptionValue, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/AddProductOptionValue',
        type: 'POST',
        data: JSON.stringify(productOptionValue)
      }, ajaxParams));;
    };

    // action 'updateProductAsync'
    abp.services.app.product.updateProductAsync = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/UpdateProductAsync',
        type: 'PUT',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'updateExtraServiceAsync'
    abp.services.app.product.updateExtraServiceAsync = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/UpdateExtraServiceAsync',
        type: 'PUT',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'createExtraServiceAsync'
    abp.services.app.product.createExtraServiceAsync = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/CreateExtraServiceAsync',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'createProductOption'
    abp.services.app.product.createProductOption = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/CreateProductOption',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'updateProductOption'
    abp.services.app.product.updateProductOption = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/UpdateProductOption',
        type: 'PUT',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'createOrUpdateExtraService'
    abp.services.app.product.createOrUpdateExtraService = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/CreateOrUpdateExtraService',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'createOrUpdateProductOption'
    abp.services.app.product.createOrUpdateProductOption = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/CreateOrUpdateProductOption',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'createOrUpdateProductOptionValue'
    abp.services.app.product.createOrUpdateProductOptionValue = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/CreateOrUpdateProductOptionValue',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'getExtraServiceForEdit'
    abp.services.app.product.getExtraServiceForEdit = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/GetExtraServiceForEdit' + abp.utils.buildQueryString([{ name: 'id', value: input.id }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'deleteService'
    abp.services.app.product.deleteService = function(id, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/DeleteService' + abp.utils.buildQueryString([{ name: 'id', value: id }]) + '',
        type: 'DELETE'
      }, ajaxParams));;
    };

    // action 'deleteProductOption'
    abp.services.app.product.deleteProductOption = function(id, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/DeleteProductOption' + abp.utils.buildQueryString([{ name: 'id', value: id }]) + '',
        type: 'DELETE'
      }, ajaxParams));;
    };

    // action 'deleteProductOptionValue'
    abp.services.app.product.deleteProductOptionValue = function(id, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/DeleteProductOptionValue' + abp.utils.buildQueryString([{ name: 'id', value: id }]) + '',
        type: 'DELETE'
      }, ajaxParams));;
    };

    // action 'linkProducts'
    abp.services.app.product.linkProducts = function(mainProductId, relatedProductIds, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/LinkProducts' + abp.utils.buildQueryString([{ name: 'mainProductId', value: mainProductId }]) + '',
        type: 'POST',
        data: JSON.stringify(relatedProductIds)
      }, ajaxParams));;
    };

    // action 'linkProduct'
    abp.services.app.product.linkProduct = function(mainProductId, relatedProductId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/LinkProduct' + abp.utils.buildQueryString([{ name: 'mainProductId', value: mainProductId }, { name: 'relatedProductId', value: relatedProductId }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'unlinkProduct'
    abp.services.app.product.unlinkProduct = function(productId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Product/UnlinkProduct' + abp.utils.buildQueryString([{ name: 'productId', value: productId }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

  })();

  // controller 'payment'
  (function(){

    abp.services.app.payment = abp.services.app.payment || {};

    // action 'authorizeAndCapturePayment'
    abp.services.app.payment.authorizeAndCapturePayment = function(paymentAccountId, paymentCustomerId, paymentInstrumentId, amount, description, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Payment/AuthorizeAndCapturePayment' + abp.utils.buildQueryString([{ name: 'paymentAccountId', value: paymentAccountId }, { name: 'paymentCustomerId', value: paymentCustomerId }, { name: 'paymentInstrumentId', value: paymentInstrumentId }, { name: 'amount', value: amount }, { name: 'description', value: description }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'createManagedAccount'
    abp.services.app.payment.createManagedAccount = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Payment/CreateManagedAccount',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'getStripeAccountForTenant'
    abp.services.app.payment.getStripeAccountForTenant = function(tenantId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Payment/GetStripeAccountForTenant' + abp.utils.buildQueryString([{ name: 'tenantId', value: tenantId }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'createAccountValidationLink'
    abp.services.app.payment.createAccountValidationLink = function(tenantId, linkType, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Payment/CreateAccountValidationLink' + abp.utils.buildQueryString([{ name: 'tenantId', value: tenantId }, { name: 'linkType', value: linkType }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'getPaymentAccountForTenant'
    abp.services.app.payment.getPaymentAccountForTenant = function(tenantId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Payment/GetPaymentAccountForTenant' + abp.utils.buildQueryString([{ name: 'tenantId', value: tenantId }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getPaymentCustomerInfoForCustomer'
    abp.services.app.payment.getPaymentCustomerInfoForCustomer = function(customerId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Payment/GetPaymentCustomerInfoForCustomer' + abp.utils.buildQueryString([{ name: 'customerId', value: customerId }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'createPaymentCustomer'
    abp.services.app.payment.createPaymentCustomer = function(customerId, paymentAccountId, email, paymentToken, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Payment/CreatePaymentCustomer' + abp.utils.buildQueryString([{ name: 'customerId', value: customerId }, { name: 'paymentAccountId', value: paymentAccountId }, { name: 'email', value: email }, { name: 'paymentToken', value: paymentToken }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'getpaymentTransactionAsync'
    abp.services.app.payment.getpaymentTransactionAsync = function(id, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Payment/GetpaymentTransactionAsync' + abp.utils.buildQueryString([{ name: 'id', value: id }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'recordPaymentTransaction'
    abp.services.app.payment.recordPaymentTransaction = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Payment/RecordPaymentTransaction',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'updatePaymentMode'
    abp.services.app.payment.updatePaymentMode = function(useLiveMode, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Payment/UpdatePaymentMode' + abp.utils.buildQueryString([{ name: 'useLiveMode', value: useLiveMode }]) + '',
        type: 'PUT'
      }, ajaxParams));;
    };

    // action 'updateDepositsEnabled'
    abp.services.app.payment.updateDepositsEnabled = function(isEnabled, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Payment/UpdateDepositsEnabled' + abp.utils.buildQueryString([{ name: 'isEnabled', value: isEnabled }]) + '',
        type: 'PUT'
      }, ajaxParams));;
    };

    // action 'getDefaultManualPaymentProviders'
    abp.services.app.payment.getDefaultManualPaymentProviders = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Payment/GetDefaultManualPaymentProviders',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getAllManualPaymentProvidersAsync'
    abp.services.app.payment.getAllManualPaymentProvidersAsync = function(includeDefaultProviders, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Payment/GetAllManualPaymentProvidersAsync' + abp.utils.buildQueryString([{ name: 'includeDefaultProviders', value: includeDefaultProviders }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getPaymentProviderAsync'
    abp.services.app.payment.getPaymentProviderAsync = function(paymentProviderId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Payment/GetPaymentProviderAsync' + abp.utils.buildQueryString([{ name: 'paymentProviderId', value: paymentProviderId }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getPaymentProvidersAsync'
    abp.services.app.payment.getPaymentProvidersAsync = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Payment/GetPaymentProvidersAsync',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getEnabledPaymentProvidersAsync'
    abp.services.app.payment.getEnabledPaymentProvidersAsync = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Payment/GetEnabledPaymentProvidersAsync',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'saveManualPaymentProvider'
    abp.services.app.payment.saveManualPaymentProvider = function(paymentProviderDto, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Payment/SaveManualPaymentProvider',
        type: 'POST',
        data: JSON.stringify(paymentProviderDto)
      }, ajaxParams));;
    };

    // action 'disablePaymentProvider'
    abp.services.app.payment.disablePaymentProvider = function(id, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Payment/DisablePaymentProvider' + abp.utils.buildQueryString([{ name: 'id', value: id }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'getPaymentInfo'
    abp.services.app.payment.getPaymentInfo = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Payment/GetPaymentInfo' + abp.utils.buildQueryString([{ name: 'upgradeEditionId', value: input.upgradeEditionId }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'createPayment'
    abp.services.app.payment.createPayment = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Payment/CreatePayment',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'executePayment'
    abp.services.app.payment.executePayment = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Payment/ExecutePayment',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'getPaymentHistory'
    abp.services.app.payment.getPaymentHistory = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Payment/GetPaymentHistory' + abp.utils.buildQueryString([{ name: 'sorting', value: input.sorting }, { name: 'maxResultCount', value: input.maxResultCount }, { name: 'skipCount', value: input.skipCount }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

  })();

  // controller 'payouts'
  (function(){

    abp.services.app.payouts = abp.services.app.payouts || {};

    // action 'getAllPayoutsForWeb'
    abp.services.app.payouts.getAllPayoutsForWeb = function(payoutsInput, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Payouts/GetAllPayoutsForWeb' + abp.utils.buildQueryString([{ name: 'filter', value: payoutsInput.filter }, { name: 'length', value: payoutsInput.length }, { name: 'sorting', value: payoutsInput.sorting }, { name: 'maxResultCount', value: payoutsInput.maxResultCount }, { name: 'skipCount', value: payoutsInput.skipCount }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getAllPayouts'
    abp.services.app.payouts.getAllPayouts = function(limit, from, to, startingAfter, endingBefore, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Payouts/GetAllPayouts' + abp.utils.buildQueryString([{ name: 'limit', value: limit }, { name: 'from', value: from }, { name: 'to', value: to }, { name: 'startingAfter', value: startingAfter }, { name: 'endingBefore', value: endingBefore }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getTransactionDetailsInfo'
    abp.services.app.payouts.getTransactionDetailsInfo = function(transactionId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Payouts/GetTransactionDetailsInfo' + abp.utils.buildQueryString([{ name: 'transactionId', value: transactionId }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getTransactionDetailsInfoForWeb'
    abp.services.app.payouts.getTransactionDetailsInfoForWeb = function(transactionInput, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Payouts/GetTransactionDetailsInfoForWeb' + abp.utils.buildQueryString([{ name: 'filter', value: transactionInput.filter }, { name: 'length', value: transactionInput.length }, { name: 'sorting', value: transactionInput.sorting }, { name: 'maxResultCount', value: transactionInput.maxResultCount }, { name: 'skipCount', value: transactionInput.skipCount }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getPayout'
    abp.services.app.payouts.getPayout = function(payoutId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Payouts/GetPayout' + abp.utils.buildQueryString([{ name: 'payoutId', value: payoutId }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getPayoutsToExce'
    abp.services.app.payouts.getPayoutsToExce = function(fromDate, toDate, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Payouts/GetPayoutsToExce' + abp.utils.buildQueryString([{ name: 'fromDate', value: fromDate }, { name: 'toDate', value: toDate }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getTransactionsForPayout'
    abp.services.app.payouts.getTransactionsForPayout = function(payoutId, balanceTransactionLimit, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Payouts/GetTransactionsForPayout' + abp.utils.buildQueryString([{ name: 'payoutId', value: payoutId }, { name: 'balanceTransactionLimit', value: balanceTransactionLimit }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'filterValuesDictionary'
    abp.services.app.payouts.filterValuesDictionary = function(filter, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Payouts/FilterValuesDictionary' + abp.utils.buildQueryString([{ name: 'filter', value: filter }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

  })();

  // controller 'organizationUnit'
  (function(){

    abp.services.app.organizationUnit = abp.services.app.organizationUnit || {};

    // action 'getOrganizationUnits'
    abp.services.app.organizationUnit.getOrganizationUnits = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/OrganizationUnit/GetOrganizationUnits',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getOrganizationUnitUsers'
    abp.services.app.organizationUnit.getOrganizationUnitUsers = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/OrganizationUnit/GetOrganizationUnitUsers' + abp.utils.buildQueryString([{ name: 'id', value: input.id }, { name: 'sorting', value: input.sorting }, { name: 'maxResultCount', value: input.maxResultCount }, { name: 'skipCount', value: input.skipCount }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'createOrganizationUnit'
    abp.services.app.organizationUnit.createOrganizationUnit = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/OrganizationUnit/CreateOrganizationUnit',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'updateOrganizationUnit'
    abp.services.app.organizationUnit.updateOrganizationUnit = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/OrganizationUnit/UpdateOrganizationUnit',
        type: 'PUT',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'moveOrganizationUnit'
    abp.services.app.organizationUnit.moveOrganizationUnit = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/OrganizationUnit/MoveOrganizationUnit',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'deleteOrganizationUnit'
    abp.services.app.organizationUnit.deleteOrganizationUnit = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/OrganizationUnit/DeleteOrganizationUnit' + abp.utils.buildQueryString([{ name: 'id', value: input.id }]) + '',
        type: 'DELETE'
      }, ajaxParams));;
    };

    // action 'removeUserFromOrganizationUnit'
    abp.services.app.organizationUnit.removeUserFromOrganizationUnit = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/OrganizationUnit/RemoveUserFromOrganizationUnit' + abp.utils.buildQueryString([{ name: 'userId', value: input.userId }, { name: 'organizationUnitId', value: input.organizationUnitId }]) + '',
        type: 'DELETE'
      }, ajaxParams));;
    };

    // action 'addUsersToOrganizationUnit'
    abp.services.app.organizationUnit.addUsersToOrganizationUnit = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/OrganizationUnit/AddUsersToOrganizationUnit',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'findUsers'
    abp.services.app.organizationUnit.findUsers = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/OrganizationUnit/FindUsers',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

  })();

  // controller 'abandonedCart'
  (function(){

    abp.services.app.abandonedCart = abp.services.app.abandonedCart || {};

    // action 'getAbandonedCarts'
    abp.services.app.abandonedCart.getAbandonedCarts = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/AbandonedCart/GetAbandonedCarts' + abp.utils.buildQueryString([{ name: 'filter', value: input.filter }, { name: 'sorting', value: input.sorting }, { name: 'maxResultCount', value: input.maxResultCount }, { name: 'skipCount', value: input.skipCount }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getAbandonedCartAsync'
    abp.services.app.abandonedCart.getAbandonedCartAsync = function(id, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/AbandonedCart/GetAbandonedCartAsync' + abp.utils.buildQueryString([{ name: 'id', value: id }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'createAbandonedCartAndGetIdAsync'
    abp.services.app.abandonedCart.createAbandonedCartAndGetIdAsync = function(abandonedCartDto, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/AbandonedCart/CreateAbandonedCartAndGetIdAsync',
        type: 'POST',
        data: JSON.stringify(abandonedCartDto)
      }, ajaxParams));;
    };

    // action 'createOrUpdateAbandonedCartAsync'
    abp.services.app.abandonedCart.createOrUpdateAbandonedCartAsync = function(abandonedCartDto, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/AbandonedCart/CreateOrUpdateAbandonedCartAsync',
        type: 'POST',
        data: JSON.stringify(abandonedCartDto)
      }, ajaxParams));;
    };

    // action 'createAbandonedCartAsync'
    abp.services.app.abandonedCart.createAbandonedCartAsync = function(abandonedCartDto, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/AbandonedCart/CreateAbandonedCartAsync',
        type: 'POST',
        data: JSON.stringify(abandonedCartDto)
      }, ajaxParams));;
    };

    // action 'updateAbandonedCartAsync'
    abp.services.app.abandonedCart.updateAbandonedCartAsync = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/AbandonedCart/UpdateAbandonedCartAsync',
        type: 'PUT',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'updateStatus'
    abp.services.app.abandonedCart.updateStatus = function(id, status, orderId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/AbandonedCart/UpdateStatus' + abp.utils.buildQueryString([{ name: 'id', value: id }, { name: 'orderId', value: orderId }]) + '',
        type: 'PUT',
        data: JSON.stringify(status)
      }, ajaxParams));;
    };

    // action 'deleteAbandonedCartAsync'
    abp.services.app.abandonedCart.deleteAbandonedCartAsync = function(id, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/AbandonedCart/DeleteAbandonedCartAsync' + abp.utils.buildQueryString([{ name: 'id', value: id }]) + '',
        type: 'DELETE'
      }, ajaxParams));;
    };

    // action 'getDefaultAbandonedCartEmailBodyAsync'
    abp.services.app.abandonedCart.getDefaultAbandonedCartEmailBodyAsync = function(abandonedCartDto, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/AbandonedCart/GetDefaultAbandonedCartEmailBodyAsync' + abp.utils.buildQueryString([{ name: 'orderId', value: abandonedCartDto.orderId }, { name: 'tenantId', value: abandonedCartDto.tenantId }, { name: 'firstName', value: abandonedCartDto.firstName }, { name: 'lastName', value: abandonedCartDto.lastName }, { name: 'email', value: abandonedCartDto.email }, { name: 'phoneNumber', value: abandonedCartDto.phoneNumber }, { name: 'address1', value: abandonedCartDto.address1 }, { name: 'address2', value: abandonedCartDto.address2 }, { name: 'city', value: abandonedCartDto.city }, { name: 'state', value: abandonedCartDto.state }, { name: 'zipCode', value: abandonedCartDto.zipCode }, { name: 'promoDiscountCode', value: abandonedCartDto.promoDiscountCode }, { name: 'promoDiscount', value: abandonedCartDto.promoDiscount }, { name: 'startDateTime', value: abandonedCartDto.startDateTime }, { name: 'creationTime', value: abandonedCartDto.creationTime }, { name: 'startDateTimeInfo.DisplayDate', value: abandonedCartDto.startDateTimeInfo.DisplayDate }, { name: 'startDateTimeInfo.DisplayTime', value: abandonedCartDto.startDateTimeInfo.DisplayTime }, { name: 'startDateTimeInfo.DisplayDayOfWeek', value: abandonedCartDto.startDateTimeInfo.DisplayDayOfWeek }, { name: 'startDateTimeInfo.SortableDateTime', value: abandonedCartDto.startDateTimeInfo.SortableDateTime }, { name: 'timeSlotId', value: abandonedCartDto.timeSlotId }, { name: 'frequencyId', value: abandonedCartDto.frequencyId }, { name: 'customerNote', value: abandonedCartDto.customerNote }, { name: 'creditCardEntered', value: abandonedCartDto.creditCardEntered }, { name: 'abandonedCartStatus', value: abandonedCartDto.abandonedCartStatus }, { name: 'recoveryEmailSent', value: abandonedCartDto.recoveryEmailSent }, { name: 'grandTotal', value: abandonedCartDto.grandTotal }, { name: 'selectedProducts', value: abandonedCartDto.selectedProducts }, { name: 'selectedOrderItems', value: abandonedCartDto.selectedOrderItems }, { name: 'recurrenceDiscountValue', value: abandonedCartDto.recurrenceDiscountValue }, { name: 'recurrenceDiscountTotal', value: abandonedCartDto.recurrenceDiscountTotal }, { name: 'recurrenceDescription', value: abandonedCartDto.recurrenceDescription }, { name: 'emailOptOut', value: abandonedCartDto.emailOptOut }, { name: 'id', value: abandonedCartDto.id }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getAbandonedCartRecoveryUrl'
    abp.services.app.abandonedCart.getAbandonedCartRecoveryUrl = function(publicUrl, id, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/AbandonedCart/GetAbandonedCartRecoveryUrl' + abp.utils.buildQueryString([{ name: 'publicUrl', value: publicUrl }, { name: 'id', value: id }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'sendAbandonedCartRecoverEmail'
    abp.services.app.abandonedCart.sendAbandonedCartRecoverEmail = function(emailInput, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/AbandonedCart/SendAbandonedCartRecoverEmail',
        type: 'POST',
        data: JSON.stringify(emailInput)
      }, ajaxParams));;
    };

    // action 'abandonedCartCustomerEmailOptOut'
    abp.services.app.abandonedCart.abandonedCartCustomerEmailOptOut = function(id, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/AbandonedCart/AbandonedCartCustomerEmailOptOut' + abp.utils.buildQueryString([{ name: 'id', value: id }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

  })();

  // controller 'order'
  (function(){

    abp.services.app.order = abp.services.app.order || {};

    // action 'getOrders'
    abp.services.app.order.getOrders = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/GetOrders',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getOrdersWithOptions'
    abp.services.app.order.getOrdersWithOptions = function(filter, sorting, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/GetOrdersWithOptions' + abp.utils.buildQueryString([{ name: 'orderStatuses', value: filter.orderStatuses }, { name: 'financialStatuses', value: filter.financialStatuses }, { name: 'showArchived', value: filter.showArchived }, { name: 'sorting', value: sorting }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getOrdersByDate'
    abp.services.app.order.getOrdersByDate = function(from, to, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/GetOrdersByDate' + abp.utils.buildQueryString([{ name: 'from', value: from }, { name: 'to', value: to }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getOrdersWithOptionsByDate'
    abp.services.app.order.getOrdersWithOptionsByDate = function(from, to, filter, sorting, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/GetOrdersWithOptionsByDate' + abp.utils.buildQueryString([{ name: 'from', value: from }, { name: 'to', value: to }, { name: 'orderStatuses', value: filter.orderStatuses }, { name: 'financialStatuses', value: filter.financialStatuses }, { name: 'showArchived', value: filter.showArchived }, { name: 'sorting', value: sorting }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getOrderWithOptions'
    abp.services.app.order.getOrderWithOptions = function(orderId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/GetOrderWithOptions' + abp.utils.buildQueryString([{ name: 'orderId', value: orderId }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getOrdersForCustomer'
    abp.services.app.order.getOrdersForCustomer = function(customerId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/GetOrdersForCustomer' + abp.utils.buildQueryString([{ name: 'customerId', value: customerId }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getOrdersForRecurringItem'
    abp.services.app.order.getOrdersForRecurringItem = function(recurringItemId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/GetOrdersForRecurringItem' + abp.utils.buildQueryString([{ name: 'recurringItemId', value: recurringItemId }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'createOrder'
    abp.services.app.order.createOrder = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/CreateOrder',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'addOrderItems'
    abp.services.app.order.addOrderItems = function(orderId, input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/AddOrderItems' + abp.utils.buildQueryString([{ name: 'orderId', value: orderId }]) + '',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'updateOrderItem'
    abp.services.app.order.updateOrderItem = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/UpdateOrderItem',
        type: 'PUT',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'updateOrderItemOptions'
    abp.services.app.order.updateOrderItemOptions = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/UpdateOrderItemOptions',
        type: 'PUT',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'addOrderPromoCode'
    abp.services.app.order.addOrderPromoCode = function(orderId, discountCode, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/AddOrderPromoCode' + abp.utils.buildQueryString([{ name: 'orderId', value: orderId }, { name: 'discountCode', value: discountCode }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'removeOrderPromoCode'
    abp.services.app.order.removeOrderPromoCode = function(orderId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/RemoveOrderPromoCode' + abp.utils.buildQueryString([{ name: 'orderId', value: orderId }]) + '',
        type: 'DELETE'
      }, ajaxParams));;
    };

    // action 'updateOrderSchedule'
    abp.services.app.order.updateOrderSchedule = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/UpdateOrderSchedule',
        type: 'PUT',
        dataType: null,
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'saveCustomerNote'
    abp.services.app.order.saveCustomerNote = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/SaveCustomerNote',
        type: 'POST',
        dataType: null,
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'savePrivateNote'
    abp.services.app.order.savePrivateNote = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/SavePrivateNote',
        type: 'POST',
        dataType: null,
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'removeOrderItem'
    abp.services.app.order.removeOrderItem = function(orderId, itemId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/RemoveOrderItem' + abp.utils.buildQueryString([{ name: 'orderId', value: orderId }, { name: 'itemId', value: itemId }]) + '',
        type: 'DELETE'
      }, ajaxParams));;
    };

    // action 'applyOrderPriceAdjustment'
    abp.services.app.order.applyOrderPriceAdjustment = function(orderId, adjustmentAmount, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/ApplyOrderPriceAdjustment' + abp.utils.buildQueryString([{ name: 'orderId', value: orderId }, { name: 'adjustmentAmount', value: adjustmentAmount }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'addRecurringOrderItems'
    abp.services.app.order.addRecurringOrderItems = function(orderId, input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/AddRecurringOrderItems' + abp.utils.buildQueryString([{ name: 'orderId', value: orderId }]) + '',
        type: 'POST',
        dataType: null,
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'updateRecurringOrderItem'
    abp.services.app.order.updateRecurringOrderItem = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/UpdateRecurringOrderItem',
        type: 'PUT',
        dataType: null,
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'updateRecurringOrderItemOptions'
    abp.services.app.order.updateRecurringOrderItemOptions = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/UpdateRecurringOrderItemOptions',
        type: 'PUT',
        dataType: null,
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'removeRecurringOrderItem'
    abp.services.app.order.removeRecurringOrderItem = function(orderId, itemId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/RemoveRecurringOrderItem' + abp.utils.buildQueryString([{ name: 'orderId', value: orderId }, { name: 'itemId', value: itemId }]) + '',
        type: 'DELETE',
        dataType: null
      }, ajaxParams));;
    };

    // action 'applyRecurringOrderPriceAdjustment'
    abp.services.app.order.applyRecurringOrderPriceAdjustment = function(orderId, adjustmentAmount, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/ApplyRecurringOrderPriceAdjustment' + abp.utils.buildQueryString([{ name: 'orderId', value: orderId }, { name: 'adjustmentAmount', value: adjustmentAmount }]) + '',
        type: 'POST',
        dataType: null
      }, ajaxParams));;
    };

    // action 'updateRecurringOrderSchedule'
    abp.services.app.order.updateRecurringOrderSchedule = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/UpdateRecurringOrderSchedule',
        type: 'PUT',
        dataType: null,
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'saveRecurringOrderCustomerNote'
    abp.services.app.order.saveRecurringOrderCustomerNote = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/SaveRecurringOrderCustomerNote',
        type: 'POST',
        dataType: null,
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'saveRecurringOrderPrivateNote'
    abp.services.app.order.saveRecurringOrderPrivateNote = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/SaveRecurringOrderPrivateNote',
        type: 'POST',
        dataType: null,
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'makeRecurring'
    abp.services.app.order.makeRecurring = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/MakeRecurring',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'authorizePaymentForOrder'
    abp.services.app.order.authorizePaymentForOrder = function(orderId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/AuthorizePaymentForOrder' + abp.utils.buildQueryString([{ name: 'orderId', value: orderId }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'releasePaymentAuthorization'
    abp.services.app.order.releasePaymentAuthorization = function(orderId, note, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/ReleasePaymentAuthorization' + abp.utils.buildQueryString([{ name: 'orderId', value: orderId }, { name: 'note', value: note }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'chargePaymentForOrder'
    abp.services.app.order.chargePaymentForOrder = function(orderId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/ChargePaymentForOrder' + abp.utils.buildQueryString([{ name: 'orderId', value: orderId }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'completeManualBooking'
    abp.services.app.order.completeManualBooking = function(orderId, note, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/CompleteManualBooking' + abp.utils.buildQueryString([{ name: 'orderId', value: orderId }, { name: 'note', value: note }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'cancelOrder'
    abp.services.app.order.cancelOrder = function(orderId, cancelAllFutureOrders, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/CancelOrder' + abp.utils.buildQueryString([{ name: 'orderId', value: orderId }, { name: 'cancelAllFutureOrders', value: cancelAllFutureOrders }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'cancelOrders'
    abp.services.app.order.cancelOrders = function(orderIds, cancelAllFutureOrders, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/CancelOrders' + abp.utils.buildQueryString([{ name: 'cancelAllFutureOrders', value: cancelAllFutureOrders }]) + '',
        type: 'POST',
        data: JSON.stringify(orderIds)
      }, ajaxParams));;
    };

    // action 'cancelRecurringOrder'
    abp.services.app.order.cancelRecurringOrder = function(orderId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/CancelRecurringOrder' + abp.utils.buildQueryString([{ name: 'orderId', value: orderId }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'archiveOrder'
    abp.services.app.order.archiveOrder = function(orderId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/ArchiveOrder' + abp.utils.buildQueryString([{ name: 'orderId', value: orderId }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'archiveOrders'
    abp.services.app.order.archiveOrders = function(orderIds, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/ArchiveOrders',
        type: 'POST',
        data: JSON.stringify(orderIds)
      }, ajaxParams));;
    };

    // action 'unarchiveOrder'
    abp.services.app.order.unarchiveOrder = function(orderId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/UnarchiveOrder' + abp.utils.buildQueryString([{ name: 'orderId', value: orderId }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'unarchiveOrders'
    abp.services.app.order.unarchiveOrders = function(orderIds, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/UnarchiveOrders',
        type: 'POST',
        data: JSON.stringify(orderIds)
      }, ajaxParams));;
    };

    // action 'archiveRecurringOrder'
    abp.services.app.order.archiveRecurringOrder = function(orderId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/ArchiveRecurringOrder' + abp.utils.buildQueryString([{ name: 'orderId', value: orderId }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'collectDeposit'
    abp.services.app.order.collectDeposit = function(collectDepositInput, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/CollectDeposit',
        type: 'POST',
        data: JSON.stringify(collectDepositInput)
      }, ajaxParams));;
    };

    // action 'resetExpiredPaymentAuthorization'
    abp.services.app.order.resetExpiredPaymentAuthorization = function(orderId, paymentChargeId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/ResetExpiredPaymentAuthorization' + abp.utils.buildQueryString([{ name: 'orderId', value: orderId }, { name: 'paymentChargeId', value: paymentChargeId }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'refundOrder'
    abp.services.app.order.refundOrder = function(refundPaymentInput, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/RefundOrder',
        type: 'POST',
        data: JSON.stringify(refundPaymentInput)
      }, ajaxParams));;
    };

    // action 'refundDeposit'
    abp.services.app.order.refundDeposit = function(refundDepositInput, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/RefundDeposit',
        type: 'POST',
        data: JSON.stringify(refundDepositInput)
      }, ajaxParams));;
    };

    // action 'updateOrderBillingInfo'
    abp.services.app.order.updateOrderBillingInfo = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/UpdateOrderBillingInfo',
        type: 'PUT',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'markOrderAsRead'
    abp.services.app.order.markOrderAsRead = function(orderId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/MarkOrderAsRead' + abp.utils.buildQueryString([{ name: 'orderId', value: orderId }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'getUnreadOrdersCount'
    abp.services.app.order.getUnreadOrdersCount = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/GetUnreadOrdersCount',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'addOrderItem'
    abp.services.app.order.addOrderItem = function(orderItemDto, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/AddOrderItem',
        type: 'POST',
        data: JSON.stringify(orderItemDto)
      }, ajaxParams));;
    };

    // action 'deleteOrderItem'
    abp.services.app.order.deleteOrderItem = function(itemId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/DeleteOrderItem' + abp.utils.buildQueryString([{ name: 'itemId', value: itemId }]) + '',
        type: 'DELETE'
      }, ajaxParams));;
    };

    // action 'deleteRecurringOrderItem'
    abp.services.app.order.deleteRecurringOrderItem = function(itemId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/DeleteRecurringOrderItem' + abp.utils.buildQueryString([{ name: 'itemId', value: itemId }]) + '',
        type: 'DELETE'
      }, ajaxParams));;
    };

    // action 'addOrderItemOption'
    abp.services.app.order.addOrderItemOption = function(orderItemOption, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/AddOrderItemOption',
        type: 'POST',
        data: JSON.stringify(orderItemOption)
      }, ajaxParams));;
    };

    // action 'addOrderItemOptionDto'
    abp.services.app.order.addOrderItemOptionDto = function(orderItemOptionDto, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/AddOrderItemOptionDto',
        type: 'POST',
        data: JSON.stringify(orderItemOptionDto)
      }, ajaxParams));;
    };

    // action 'deleteOrderItemOption'
    abp.services.app.order.deleteOrderItemOption = function(itemId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/DeleteOrderItemOption' + abp.utils.buildQueryString([{ name: 'itemId', value: itemId }]) + '',
        type: 'DELETE'
      }, ajaxParams));;
    };

    // action 'deleteRecurringOrderItemOption'
    abp.services.app.order.deleteRecurringOrderItemOption = function(itemId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/DeleteRecurringOrderItemOption' + abp.utils.buildQueryString([{ name: 'itemId', value: itemId }]) + '',
        type: 'DELETE'
      }, ajaxParams));;
    };

    // action 'getRecurringOrders'
    abp.services.app.order.getRecurringOrders = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/GetRecurringOrders',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getRecurringOrderWithOptions'
    abp.services.app.order.getRecurringOrderWithOptions = function(recurringOrderId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/GetRecurringOrderWithOptions' + abp.utils.buildQueryString([{ name: 'recurringOrderId', value: recurringOrderId }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'updateRecurringOrderBillingInfo'
    abp.services.app.order.updateRecurringOrderBillingInfo = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Order/UpdateRecurringOrderBillingInfo',
        type: 'PUT',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

  })();

  // controller 'orderAssignments'
  (function(){

    abp.services.app.orderAssignments = abp.services.app.orderAssignments || {};

    // action 'getOrderAssignments'
    abp.services.app.orderAssignments.getOrderAssignments = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/OrderAssignments/GetOrderAssignments',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getAssignmentsForOrder'
    abp.services.app.orderAssignments.getAssignmentsForOrder = function(orderId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/OrderAssignments/GetAssignmentsForOrder' + abp.utils.buildQueryString([{ name: 'orderId', value: orderId }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getOrderAssignmentAsync'
    abp.services.app.orderAssignments.getOrderAssignmentAsync = function(assignmentId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/OrderAssignments/GetOrderAssignmentAsync' + abp.utils.buildQueryString([{ name: 'assignmentId', value: assignmentId }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'createOrderAssignmentAndGetIdAsync'
    abp.services.app.orderAssignments.createOrderAssignmentAndGetIdAsync = function(assignmentDto, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/OrderAssignments/CreateOrderAssignmentAndGetIdAsync',
        type: 'POST',
        data: JSON.stringify(assignmentDto)
      }, ajaxParams));;
    };

    // action 'createOrderAssignmentAsync'
    abp.services.app.orderAssignments.createOrderAssignmentAsync = function(assignmentDto, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/OrderAssignments/CreateOrderAssignmentAsync',
        type: 'POST',
        data: JSON.stringify(assignmentDto)
      }, ajaxParams));;
    };

    // action 'updateOrderAssignmentAsync'
    abp.services.app.orderAssignments.updateOrderAssignmentAsync = function(assignmentDto, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/OrderAssignments/UpdateOrderAssignmentAsync',
        type: 'PUT',
        data: JSON.stringify(assignmentDto)
      }, ajaxParams));;
    };

    // action 'deleteOrderAssignmentAsync'
    abp.services.app.orderAssignments.deleteOrderAssignmentAsync = function(assignmentId, orderId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/OrderAssignments/DeleteOrderAssignmentAsync' + abp.utils.buildQueryString([{ name: 'assignmentId', value: assignmentId }, { name: 'orderId', value: orderId }]) + '',
        type: 'DELETE'
      }, ajaxParams));;
    };

    // action 'getRecurringOrderAssignments'
    abp.services.app.orderAssignments.getRecurringOrderAssignments = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/OrderAssignments/GetRecurringOrderAssignments',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getAssignmentsForRecurringOrder'
    abp.services.app.orderAssignments.getAssignmentsForRecurringOrder = function(orderId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/OrderAssignments/GetAssignmentsForRecurringOrder' + abp.utils.buildQueryString([{ name: 'orderId', value: orderId }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getRecurringOrderAssignmentAsync'
    abp.services.app.orderAssignments.getRecurringOrderAssignmentAsync = function(assignmentId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/OrderAssignments/GetRecurringOrderAssignmentAsync' + abp.utils.buildQueryString([{ name: 'assignmentId', value: assignmentId }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'createRecurringOrderAssignmentAsync'
    abp.services.app.orderAssignments.createRecurringOrderAssignmentAsync = function(assignmentDto, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/OrderAssignments/CreateRecurringOrderAssignmentAsync',
        type: 'POST',
        data: JSON.stringify(assignmentDto)
      }, ajaxParams));;
    };

    // action 'createRecurringOrderAssignmentAndGetIdAsync'
    abp.services.app.orderAssignments.createRecurringOrderAssignmentAndGetIdAsync = function(assignmentDto, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/OrderAssignments/CreateRecurringOrderAssignmentAndGetIdAsync',
        type: 'POST',
        data: JSON.stringify(assignmentDto)
      }, ajaxParams));;
    };

    // action 'updateRecurringOrderAssignmentAsync'
    abp.services.app.orderAssignments.updateRecurringOrderAssignmentAsync = function(assignmentDto, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/OrderAssignments/UpdateRecurringOrderAssignmentAsync',
        type: 'PUT',
        data: JSON.stringify(assignmentDto)
      }, ajaxParams));;
    };

    // action 'deleteRecurringOrderAssignmentAsync'
    abp.services.app.orderAssignments.deleteRecurringOrderAssignmentAsync = function(assignmentId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/OrderAssignments/DeleteRecurringOrderAssignmentAsync' + abp.utils.buildQueryString([{ name: 'assignmentId', value: assignmentId }]) + '',
        type: 'DELETE'
      }, ajaxParams));;
    };

  })();

  // controller 'notification'
  (function(){

    abp.services.app.notification = abp.services.app.notification || {};

    // action 'getUserNotifications'
    abp.services.app.notification.getUserNotifications = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Notification/GetUserNotifications' + abp.utils.buildQueryString([{ name: 'state', value: input.state }, { name: 'maxResultCount', value: input.maxResultCount }, { name: 'skipCount', value: input.skipCount }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'setAllNotificationsAsRead'
    abp.services.app.notification.setAllNotificationsAsRead = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Notification/SetAllNotificationsAsRead',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'setNotificationAsRead'
    abp.services.app.notification.setNotificationAsRead = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Notification/SetNotificationAsRead',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'getNotificationSettings'
    abp.services.app.notification.getNotificationSettings = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Notification/GetNotificationSettings',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'updateNotificationSettings'
    abp.services.app.notification.updateNotificationSettings = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Notification/UpdateNotificationSettings',
        type: 'PUT',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

  })();

  // controller 'subscription'
  (function(){

    abp.services.app.subscription = abp.services.app.subscription || {};

    // action 'upgradeTenantToEquivalentEdition'
    abp.services.app.subscription.upgradeTenantToEquivalentEdition = function(upgradeEditionId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Subscription/UpgradeTenantToEquivalentEdition' + abp.utils.buildQueryString([{ name: 'upgradeEditionId', value: upgradeEditionId }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

  })();

  // controller 'tenant'
  (function(){

    abp.services.app.tenant = abp.services.app.tenant || {};

    // action 'getTenants'
    abp.services.app.tenant.getTenants = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Tenant/GetTenants' + abp.utils.buildQueryString([{ name: 'filter', value: input.filter }, { name: 'subscriptionEndDateStart', value: input.subscriptionEndDateStart }, { name: 'subscriptionEndDateEnd', value: input.subscriptionEndDateEnd }, { name: 'creationDateStart', value: input.creationDateStart }, { name: 'creationDateEnd', value: input.creationDateEnd }, { name: 'editionId', value: input.editionId }, { name: 'editionIdSpecified', value: input.editionIdSpecified }, { name: 'sorting', value: input.sorting }, { name: 'maxResultCount', value: input.maxResultCount }, { name: 'skipCount', value: input.skipCount }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'createTenant'
    abp.services.app.tenant.createTenant = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Tenant/CreateTenant',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'getTenantForEdit'
    abp.services.app.tenant.getTenantForEdit = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Tenant/GetTenantForEdit' + abp.utils.buildQueryString([{ name: 'id', value: input.id }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'updateTenant'
    abp.services.app.tenant.updateTenant = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Tenant/UpdateTenant',
        type: 'PUT',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'deleteTenant'
    abp.services.app.tenant.deleteTenant = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Tenant/DeleteTenant' + abp.utils.buildQueryString([{ name: 'id', value: input.id }]) + '',
        type: 'DELETE'
      }, ajaxParams));;
    };

    // action 'getTenantFeaturesForEdit'
    abp.services.app.tenant.getTenantFeaturesForEdit = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Tenant/GetTenantFeaturesForEdit' + abp.utils.buildQueryString([{ name: 'id', value: input.id }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'updateTenantFeatures'
    abp.services.app.tenant.updateTenantFeatures = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Tenant/UpdateTenantFeatures',
        type: 'PUT',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'resetTenantSpecificFeatures'
    abp.services.app.tenant.resetTenantSpecificFeatures = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Tenant/ResetTenantSpecificFeatures',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'getTenantProfile'
    abp.services.app.tenant.getTenantProfile = function(tenantId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Tenant/GetTenantProfile' + abp.utils.buildQueryString([{ name: 'tenantId', value: tenantId }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getTenancyName'
    abp.services.app.tenant.getTenancyName = function(tenantId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Tenant/GetTenancyName' + abp.utils.buildQueryString([{ name: 'tenantId', value: tenantId }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'createOrUpdateTenantProfile'
    abp.services.app.tenant.createOrUpdateTenantProfile = function(tenantProfileDto, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Tenant/CreateOrUpdateTenantProfile',
        type: 'POST',
        data: JSON.stringify(tenantProfileDto)
      }, ajaxParams));;
    };

    // action 'setTenantStatusToNormal'
    abp.services.app.tenant.setTenantStatusToNormal = function(tenantId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Tenant/SetTenantStatusToNormal' + abp.utils.buildQueryString([{ name: 'tenantId', value: tenantId }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'unlockTenantAdmin'
    abp.services.app.tenant.unlockTenantAdmin = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Tenant/UnlockTenantAdmin',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

  })();

  // controller 'tenantRegistration'
  (function(){

    abp.services.app.tenantRegistration = abp.services.app.tenantRegistration || {};

    // action 'registerTenant'
    abp.services.app.tenantRegistration.registerTenant = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/TenantRegistration/RegisterTenant',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'getEditionsForSelect'
    abp.services.app.tenantRegistration.getEditionsForSelect = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/TenantRegistration/GetEditionsForSelect',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getEdition'
    abp.services.app.tenantRegistration.getEdition = function(editionId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/TenantRegistration/GetEdition' + abp.utils.buildQueryString([{ name: 'editionId', value: editionId }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

  })();

  // controller 'hostDashboard'
  (function(){

    abp.services.app.hostDashboard = abp.services.app.hostDashboard || {};

    // action 'getDashboardStatisticsData'
    abp.services.app.hostDashboard.getDashboardStatisticsData = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/HostDashboard/GetDashboardStatisticsData' + abp.utils.buildQueryString([{ name: 'incomeStatisticsDateInterval', value: input.incomeStatisticsDateInterval }, { name: 'startDate', value: input.startDate }, { name: 'endDate', value: input.endDate }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getIncomeStatistics'
    abp.services.app.hostDashboard.getIncomeStatistics = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/HostDashboard/GetIncomeStatistics' + abp.utils.buildQueryString([{ name: 'incomeStatisticsDateInterval', value: input.incomeStatisticsDateInterval }, { name: 'startDate', value: input.startDate }, { name: 'endDate', value: input.endDate }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getEditionTenantStatistics'
    abp.services.app.hostDashboard.getEditionTenantStatistics = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/HostDashboard/GetEditionTenantStatistics' + abp.utils.buildQueryString([{ name: 'startDate', value: input.startDate }, { name: 'endDate', value: input.endDate }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

  })();

  // controller 'invoice'
  (function(){

    abp.services.app.invoice = abp.services.app.invoice || {};

    // action 'getInvoiceInfo'
    abp.services.app.invoice.getInvoiceInfo = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Invoice/GetInvoiceInfo' + abp.utils.buildQueryString([{ name: 'id', value: input.id }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'createInvoice'
    abp.services.app.invoice.createInvoice = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Invoice/CreateInvoice',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

  })();

  // controller 'webLog'
  (function(){

    abp.services.app.webLog = abp.services.app.webLog || {};

    // action 'getLatestWebLogs'
    abp.services.app.webLog.getLatestWebLogs = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/WebLog/GetLatestWebLogs',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'downloadWebLogs'
    abp.services.app.webLog.downloadWebLogs = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/WebLog/DownloadWebLogs',
        type: 'POST'
      }, ajaxParams));;
    };

  })();

  // controller 'language'
  (function(){

    abp.services.app.language = abp.services.app.language || {};

    // action 'getLanguages'
    abp.services.app.language.getLanguages = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Language/GetLanguages',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getLanguageForEdit'
    abp.services.app.language.getLanguageForEdit = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Language/GetLanguageForEdit' + abp.utils.buildQueryString([{ name: 'id', value: input.id }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'createOrUpdateLanguage'
    abp.services.app.language.createOrUpdateLanguage = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Language/CreateOrUpdateLanguage',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'deleteLanguage'
    abp.services.app.language.deleteLanguage = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Language/DeleteLanguage' + abp.utils.buildQueryString([{ name: 'id', value: input.id }]) + '',
        type: 'DELETE'
      }, ajaxParams));;
    };

    // action 'setDefaultLanguage'
    abp.services.app.language.setDefaultLanguage = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Language/SetDefaultLanguage',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'getLanguageTexts'
    abp.services.app.language.getLanguageTexts = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Language/GetLanguageTexts' + abp.utils.buildQueryString([{ name: 'maxResultCount', value: input.maxResultCount }, { name: 'skipCount', value: input.skipCount }, { name: 'sorting', value: input.sorting }, { name: 'sourceName', value: input.sourceName }, { name: 'baseLanguageName', value: input.baseLanguageName }, { name: 'targetLanguageName', value: input.targetLanguageName }, { name: 'targetValueFilter', value: input.targetValueFilter }, { name: 'filterText', value: input.filterText }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'updateLanguageText'
    abp.services.app.language.updateLanguageText = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Language/UpdateLanguageText',
        type: 'PUT',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

  })();

  // controller 'friendship'
  (function(){

    abp.services.app.friendship = abp.services.app.friendship || {};

    // action 'createFriendshipRequest'
    abp.services.app.friendship.createFriendshipRequest = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Friendship/CreateFriendshipRequest',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'createFriendshipRequestByUserName'
    abp.services.app.friendship.createFriendshipRequestByUserName = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Friendship/CreateFriendshipRequestByUserName',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'blockUser'
    abp.services.app.friendship.blockUser = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Friendship/BlockUser',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'unblockUser'
    abp.services.app.friendship.unblockUser = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Friendship/UnblockUser',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'acceptFriendshipRequest'
    abp.services.app.friendship.acceptFriendshipRequest = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Friendship/AcceptFriendshipRequest',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

  })();

  // controller 'email'
  (function(){

    abp.services.app.email = abp.services.app.email || {};

    // action 'getEmailTemplateById'
    abp.services.app.email.getEmailTemplateById = function(templateId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Email/GetEmailTemplateById' + abp.utils.buildQueryString([{ name: 'templateId', value: templateId }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getDefaultEmailTemplate'
    abp.services.app.email.getDefaultEmailTemplate = function(templateType, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Email/GetDefaultEmailTemplate' + abp.utils.buildQueryString([{ name: 'templateType', value: templateType }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getDefaultSmsTemplate'
    abp.services.app.email.getDefaultSmsTemplate = function(templateType, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Email/GetDefaultSmsTemplate' + abp.utils.buildQueryString([{ name: 'templateType', value: templateType }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'createOrUpdateEmailTemplateReturnId'
    abp.services.app.email.createOrUpdateEmailTemplateReturnId = function(formValues, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Email/CreateOrUpdateEmailTemplateReturnId',
        type: 'POST',
        data: JSON.stringify(formValues)
      }, ajaxParams));;
    };

    // action 'createOrUpdateSmsTemplateReturnId'
    abp.services.app.email.createOrUpdateSmsTemplateReturnId = function(formValues, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Email/CreateOrUpdateSmsTemplateReturnId',
        type: 'POST',
        data: JSON.stringify(formValues)
      }, ajaxParams));;
    };

    // action 'createOrUpdateEmailTemplate'
    abp.services.app.email.createOrUpdateEmailTemplate = function(formValues, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Email/CreateOrUpdateEmailTemplate',
        type: 'POST',
        data: JSON.stringify(formValues)
      }, ajaxParams));;
    };

    // action 'createOrUpdateSmsTemplate'
    abp.services.app.email.createOrUpdateSmsTemplate = function(formValues, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Email/CreateOrUpdateSmsTemplate',
        type: 'POST',
        data: JSON.stringify(formValues)
      }, ajaxParams));;
    };

    // action 'getEmailTemplate'
    abp.services.app.email.getEmailTemplate = function(templateType, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Email/GetEmailTemplate' + abp.utils.buildQueryString([{ name: 'templateType', value: templateType }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getSmsTemplate'
    abp.services.app.email.getSmsTemplate = function(templateType, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Email/GetSmsTemplate' + abp.utils.buildQueryString([{ name: 'templateType', value: templateType }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

  })();

  // controller 'edition'
  (function(){

    abp.services.app.edition = abp.services.app.edition || {};

    // action 'getEditions'
    abp.services.app.edition.getEditions = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Edition/GetEditions',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getEditionForEdit'
    abp.services.app.edition.getEditionForEdit = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Edition/GetEditionForEdit' + abp.utils.buildQueryString([{ name: 'id', value: input.id }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'createOrUpdateEdition'
    abp.services.app.edition.createOrUpdateEdition = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Edition/CreateOrUpdateEdition',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'deleteEdition'
    abp.services.app.edition.deleteEdition = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Edition/DeleteEdition' + abp.utils.buildQueryString([{ name: 'id', value: input.id }]) + '',
        type: 'DELETE'
      }, ajaxParams));;
    };

    // action 'getEditionComboboxItems'
    abp.services.app.edition.getEditionComboboxItems = function(selectedEditionId, addAllItem, onlyFreeItems, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Edition/GetEditionComboboxItems' + abp.utils.buildQueryString([{ name: 'selectedEditionId', value: selectedEditionId }, { name: 'addAllItem', value: addAllItem }, { name: 'onlyFreeItems', value: onlyFreeItems }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

  })();

  // controller 'discount'
  (function(){

    abp.services.app.discount = abp.services.app.discount || {};

    // action 'getAllDiscounts'
    abp.services.app.discount.getAllDiscounts = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Discount/GetAllDiscounts',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getDiscountForEdit'
    abp.services.app.discount.getDiscountForEdit = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Discount/GetDiscountForEdit' + abp.utils.buildQueryString([{ name: 'id', value: input.id }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'createOrUpdateDiscountAsync'
    abp.services.app.discount.createOrUpdateDiscountAsync = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Discount/CreateOrUpdateDiscountAsync',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'updateDiscountAsync'
    abp.services.app.discount.updateDiscountAsync = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Discount/UpdateDiscountAsync',
        type: 'PUT',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'createDiscountAsync'
    abp.services.app.discount.createDiscountAsync = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Discount/CreateDiscountAsync',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'deleteDiscount'
    abp.services.app.discount.deleteDiscount = function(id, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Discount/DeleteDiscount' + abp.utils.buildQueryString([{ name: 'id', value: id }]) + '',
        type: 'DELETE'
      }, ajaxParams));;
    };

    // action 'generateDiscountCode'
    abp.services.app.discount.generateDiscountCode = function(length, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Discount/GenerateDiscountCode' + abp.utils.buildQueryString([{ name: 'length', value: length }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'validateDiscount'
    abp.services.app.discount.validateDiscount = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Discount/ValidateDiscount',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'incrementUsage'
    abp.services.app.discount.incrementUsage = function(discountId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Discount/IncrementUsage' + abp.utils.buildQueryString([{ name: 'discountId', value: discountId }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'decrementUsage'
    abp.services.app.discount.decrementUsage = function(discountId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Discount/DecrementUsage' + abp.utils.buildQueryString([{ name: 'discountId', value: discountId }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

  })();

  // controller 'demoUiComponents'
  (function(){

    abp.services.app.demoUiComponents = abp.services.app.demoUiComponents || {};

    // action 'sendAndGetDate'
    abp.services.app.demoUiComponents.sendAndGetDate = function(date, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/DemoUiComponents/SendAndGetDate' + abp.utils.buildQueryString([{ name: 'date', value: date }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'sendAndGetDateTime'
    abp.services.app.demoUiComponents.sendAndGetDateTime = function(date, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/DemoUiComponents/SendAndGetDateTime' + abp.utils.buildQueryString([{ name: 'date', value: date }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'sendAndGetDateRange'
    abp.services.app.demoUiComponents.sendAndGetDateRange = function(startDate, endDate, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/DemoUiComponents/SendAndGetDateRange' + abp.utils.buildQueryString([{ name: 'startDate', value: startDate }, { name: 'endDate', value: endDate }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'getCountries'
    abp.services.app.demoUiComponents.getCountries = function(searchTerm, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/DemoUiComponents/GetCountries' + abp.utils.buildQueryString([{ name: 'searchTerm', value: searchTerm }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'sendAndGetSelectedCountries'
    abp.services.app.demoUiComponents.sendAndGetSelectedCountries = function(selectedCountries, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/DemoUiComponents/SendAndGetSelectedCountries',
        type: 'POST',
        data: JSON.stringify(selectedCountries)
      }, ajaxParams));;
    };

    // action 'sendAndGetValue'
    abp.services.app.demoUiComponents.sendAndGetValue = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/DemoUiComponents/SendAndGetValue' + abp.utils.buildQueryString([{ name: 'input', value: input }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

  })();

  // controller 'customer'
  (function(){

    abp.services.app.customer = abp.services.app.customer || {};

    // action 'getCustomers'
    abp.services.app.customer.getCustomers = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Customer/GetCustomers' + abp.utils.buildQueryString([{ name: 'filter', value: input.filter }, { name: 'sorting', value: input.sorting }, { name: 'maxResultCount', value: input.maxResultCount }, { name: 'skipCount', value: input.skipCount }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getCustomer'
    abp.services.app.customer.getCustomer = function(id, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Customer/GetCustomer' + abp.utils.buildQueryString([{ name: 'id', value: id }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'createCustomerAsync'
    abp.services.app.customer.createCustomerAsync = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Customer/CreateCustomerAsync',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'createCustomerAndGetIdAsync'
    abp.services.app.customer.createCustomerAndGetIdAsync = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Customer/CreateCustomerAndGetIdAsync',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'updateCustomerAsync'
    abp.services.app.customer.updateCustomerAsync = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Customer/UpdateCustomerAsync',
        type: 'PUT',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'existingCustomer'
    abp.services.app.customer.existingCustomer = function(email, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Customer/ExistingCustomer' + abp.utils.buildQueryString([{ name: 'email', value: email }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'getCustomerForEdit'
    abp.services.app.customer.getCustomerForEdit = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Customer/GetCustomerForEdit' + abp.utils.buildQueryString([{ name: 'id', value: input.id }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'createOrUpdateCustomer'
    abp.services.app.customer.createOrUpdateCustomer = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Customer/CreateOrUpdateCustomer',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'deleteCustomerLocation'
    abp.services.app.customer.deleteCustomerLocation = function(customerId, locationId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Customer/DeleteCustomerLocation' + abp.utils.buildQueryString([{ name: 'customerId', value: customerId }, { name: 'locationId', value: locationId }]) + '',
        type: 'DELETE'
      }, ajaxParams));;
    };

    // action 'setDefaultLocation'
    abp.services.app.customer.setDefaultLocation = function(customerId, locationId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Customer/SetDefaultLocation' + abp.utils.buildQueryString([{ name: 'customerId', value: customerId }, { name: 'locationId', value: locationId }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

  })();

  // controller 'content'
  (function(){

    abp.services.app.content = abp.services.app.content || {};

    // action 'getGlobalContent'
    abp.services.app.content.getGlobalContent = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Content/GetGlobalContent',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getHomePage'
    abp.services.app.content.getHomePage = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Content/GetHomePage',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getAboutPage'
    abp.services.app.content.getAboutPage = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Content/GetAboutPage',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getServicesPage'
    abp.services.app.content.getServicesPage = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Content/GetServicesPage',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getServiceAreaPage'
    abp.services.app.content.getServiceAreaPage = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Content/GetServiceAreaPage',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getBlogPage'
    abp.services.app.content.getBlogPage = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Content/GetBlogPage',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getPoliciesPage'
    abp.services.app.content.getPoliciesPage = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Content/GetPoliciesPage',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getContactPage'
    abp.services.app.content.getContactPage = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Content/GetContactPage',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getBookingPage'
    abp.services.app.content.getBookingPage = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Content/GetBookingPage',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'createOrUpdateGlobalContent'
    abp.services.app.content.createOrUpdateGlobalContent = function(globalContent, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Content/CreateOrUpdateGlobalContent',
        type: 'POST',
        data: JSON.stringify(globalContent)
      }, ajaxParams));;
    };

    // action 'createOrUpdateHomePageContent'
    abp.services.app.content.createOrUpdateHomePageContent = function(homePage, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Content/CreateOrUpdateHomePageContent',
        type: 'POST',
        data: JSON.stringify(homePage)
      }, ajaxParams));;
    };

    // action 'createOrUpdateAboutPageContent'
    abp.services.app.content.createOrUpdateAboutPageContent = function(aboutPage, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Content/CreateOrUpdateAboutPageContent',
        type: 'POST',
        data: JSON.stringify(aboutPage)
      }, ajaxParams));;
    };

    // action 'createOrUpdateServicesPageContent'
    abp.services.app.content.createOrUpdateServicesPageContent = function(servicesPage, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Content/CreateOrUpdateServicesPageContent',
        type: 'POST',
        data: JSON.stringify(servicesPage)
      }, ajaxParams));;
    };

    // action 'createOrUpdateServiceAreaPageContent'
    abp.services.app.content.createOrUpdateServiceAreaPageContent = function(serviceAreaPage, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Content/CreateOrUpdateServiceAreaPageContent',
        type: 'POST',
        data: JSON.stringify(serviceAreaPage)
      }, ajaxParams));;
    };

    // action 'createOrUpdateBlogPageContent'
    abp.services.app.content.createOrUpdateBlogPageContent = function(blogPage, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Content/CreateOrUpdateBlogPageContent',
        type: 'POST',
        data: JSON.stringify(blogPage)
      }, ajaxParams));;
    };

    // action 'createOrUpdateContactPageContent'
    abp.services.app.content.createOrUpdateContactPageContent = function(contactPage, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Content/CreateOrUpdateContactPageContent',
        type: 'POST',
        data: JSON.stringify(contactPage)
      }, ajaxParams));;
    };

    // action 'createOrUpdateBookingPageContent'
    abp.services.app.content.createOrUpdateBookingPageContent = function(bookingPage, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Content/CreateOrUpdateBookingPageContent',
        type: 'POST',
        data: JSON.stringify(bookingPage)
      }, ajaxParams));;
    };

    // action 'getHomePageDefault'
    abp.services.app.content.getHomePageDefault = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Content/GetHomePageDefault',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getAboutPageDefault'
    abp.services.app.content.getAboutPageDefault = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Content/GetAboutPageDefault',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getServicesPageDefault'
    abp.services.app.content.getServicesPageDefault = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Content/GetServicesPageDefault',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getBlogPageDefault'
    abp.services.app.content.getBlogPageDefault = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Content/GetBlogPageDefault',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getServiceAreaPageDefault'
    abp.services.app.content.getServiceAreaPageDefault = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Content/GetServiceAreaPageDefault',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getPoliciesPageDefault'
    abp.services.app.content.getPoliciesPageDefault = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Content/GetPoliciesPageDefault',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getContactPageDefault'
    abp.services.app.content.getContactPageDefault = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Content/GetContactPageDefault',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getBookingPageDefault'
    abp.services.app.content.getBookingPageDefault = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Content/GetBookingPageDefault',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'populateBookingPageDefaultSections'
    abp.services.app.content.populateBookingPageDefaultSections = function(bookingPage, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Content/PopulateBookingPageDefaultSections',
        type: 'POST',
        dataType: null,
        data: JSON.stringify(bookingPage)
      }, ajaxParams));;
    };

    // action 'createOrUpdateWebsiteConfigForTenant'
    abp.services.app.content.createOrUpdateWebsiteConfigForTenant = function(pageName, isEnabled, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Content/CreateOrUpdateWebsiteConfigForTenant' + abp.utils.buildQueryString([{ name: 'pageName', value: pageName }, { name: 'isEnabled', value: isEnabled }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'createOrUpdatePoliciesPageContent'
    abp.services.app.content.createOrUpdatePoliciesPageContent = function(policiesPage, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Content/CreateOrUpdatePoliciesPageContent',
        type: 'POST',
        data: JSON.stringify(policiesPage)
      }, ajaxParams));;
    };

  })();

  // controller 'tenantSettings'
  (function(){

    abp.services.app.tenantSettings = abp.services.app.tenantSettings || {};

    // action 'getAllSettings'
    abp.services.app.tenantSettings.getAllSettings = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/TenantSettings/GetAllSettings',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getAbandonedCartSettingsAsync'
    abp.services.app.tenantSettings.getAbandonedCartSettingsAsync = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/TenantSettings/GetAbandonedCartSettingsAsync',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'updateAllSettings'
    abp.services.app.tenantSettings.updateAllSettings = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/TenantSettings/UpdateAllSettings',
        type: 'PUT',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'updateAbandonedCartSettings'
    abp.services.app.tenantSettings.updateAbandonedCartSettings = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/TenantSettings/UpdateAbandonedCartSettings',
        type: 'PUT',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'clearLogo'
    abp.services.app.tenantSettings.clearLogo = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/TenantSettings/ClearLogo',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'clearCustomCss'
    abp.services.app.tenantSettings.clearCustomCss = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/TenantSettings/ClearCustomCss',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'sendTestEmail'
    abp.services.app.tenantSettings.sendTestEmail = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/TenantSettings/SendTestEmail',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

  })();

  // controller 'hostSettings'
  (function(){

    abp.services.app.hostSettings = abp.services.app.hostSettings || {};

    // action 'getAllSettings'
    abp.services.app.hostSettings.getAllSettings = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/HostSettings/GetAllSettings',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'updateAllSettings'
    abp.services.app.hostSettings.updateAllSettings = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/HostSettings/UpdateAllSettings',
        type: 'PUT',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'sendTestEmail'
    abp.services.app.hostSettings.sendTestEmail = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/HostSettings/SendTestEmail',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

  })();

  // controller 'commonLookup'
  (function(){

    abp.services.app.commonLookup = abp.services.app.commonLookup || {};

    // action 'getEditionsForCombobox'
    abp.services.app.commonLookup.getEditionsForCombobox = function(onlyFreeItems, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/CommonLookup/GetEditionsForCombobox' + abp.utils.buildQueryString([{ name: 'onlyFreeItems', value: onlyFreeItems }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'findUsers'
    abp.services.app.commonLookup.findUsers = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/CommonLookup/FindUsers',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'getDefaultEditionName'
    abp.services.app.commonLookup.getDefaultEditionName = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/CommonLookup/GetDefaultEditionName',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getRegionInfo'
    abp.services.app.commonLookup.getRegionInfo = function(countryCode, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/CommonLookup/GetRegionInfo' + abp.utils.buildQueryString([{ name: 'countryCode', value: countryCode }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getCurrencyForCountryCode'
    abp.services.app.commonLookup.getCurrencyForCountryCode = function(countryCode, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/CommonLookup/GetCurrencyForCountryCode' + abp.utils.buildQueryString([{ name: 'countryCode', value: countryCode }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

  })();

  // controller 'checkin'
  (function(){

    abp.services.app.checkin = abp.services.app.checkin || {};

    // action 'getLocations'
    abp.services.app.checkin.getLocations = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Checkin/GetLocations',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getLocationsForFrontEnd'
    abp.services.app.checkin.getLocationsForFrontEnd = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Checkin/GetLocationsForFrontEnd',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getCheckins'
    abp.services.app.checkin.getCheckins = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Checkin/GetCheckins' + abp.utils.buildQueryString([{ name: 'id', value: input.id }, { name: 'sorting', value: input.sorting }, { name: 'maxResultCount', value: input.maxResultCount }, { name: 'skipCount', value: input.skipCount }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'createCheckinAsync'
    abp.services.app.checkin.createCheckinAsync = function(checkinDto, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Checkin/CreateCheckinAsync',
        type: 'POST',
        data: JSON.stringify(checkinDto)
      }, ajaxParams));;
    };

    // action 'createCheckinLocationAsync'
    abp.services.app.checkin.createCheckinLocationAsync = function(checkinLocationDto, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Checkin/CreateCheckinLocationAsync',
        type: 'POST',
        data: JSON.stringify(checkinLocationDto)
      }, ajaxParams));;
    };

    // action 'deleteCheckinAsync'
    abp.services.app.checkin.deleteCheckinAsync = function(id, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Checkin/DeleteCheckinAsync' + abp.utils.buildQueryString([{ name: 'id', value: id }]) + '',
        type: 'DELETE'
      }, ajaxParams));;
    };

    // action 'deleteCheckinLocationAsync'
    abp.services.app.checkin.deleteCheckinLocationAsync = function(id, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Checkin/DeleteCheckinLocationAsync' + abp.utils.buildQueryString([{ name: 'id', value: id }]) + '',
        type: 'DELETE'
      }, ajaxParams));;
    };

    // action 'getCheckinAsync'
    abp.services.app.checkin.getCheckinAsync = function(id, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Checkin/GetCheckinAsync' + abp.utils.buildQueryString([{ name: 'id', value: id }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getCheckinLocationAsync'
    abp.services.app.checkin.getCheckinLocationAsync = function(id, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Checkin/GetCheckinLocationAsync' + abp.utils.buildQueryString([{ name: 'id', value: id }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'updateCheckinAsync'
    abp.services.app.checkin.updateCheckinAsync = function(checkin, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Checkin/UpdateCheckinAsync',
        type: 'PUT',
        data: JSON.stringify(checkin)
      }, ajaxParams));;
    };

    // action 'updateCheckinLocationAsync'
    abp.services.app.checkin.updateCheckinLocationAsync = function(checkinLocation, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Checkin/UpdateCheckinLocationAsync',
        type: 'PUT',
        data: JSON.stringify(checkinLocation)
      }, ajaxParams));;
    };

    // action 'bulkAddCheckinsAsync'
    abp.services.app.checkin.bulkAddCheckinsAsync = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Checkin/BulkAddCheckinsAsync',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'bulkAddCheckinLocationsAsync'
    abp.services.app.checkin.bulkAddCheckinLocationsAsync = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Checkin/BulkAddCheckinLocationsAsync',
        type: 'POST'
      }, ajaxParams));;
    };

  })();

  // controller 'chat'
  (function(){

    abp.services.app.chat = abp.services.app.chat || {};

    // action 'getUserChatFriendsWithSettings'
    abp.services.app.chat.getUserChatFriendsWithSettings = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Chat/GetUserChatFriendsWithSettings',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getUserChatMessages'
    abp.services.app.chat.getUserChatMessages = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Chat/GetUserChatMessages' + abp.utils.buildQueryString([{ name: 'tenantId', value: input.tenantId }, { name: 'userId', value: input.userId }, { name: 'minMessageId', value: input.minMessageId }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'markAllUnreadMessagesOfUserAsRead'
    abp.services.app.chat.markAllUnreadMessagesOfUserAsRead = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Chat/MarkAllUnreadMessagesOfUserAsRead',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'findMessageAsync'
    abp.services.app.chat.findMessageAsync = function(id, userId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Chat/FindMessageAsync' + abp.utils.buildQueryString([{ name: 'id', value: id }, { name: 'userId', value: userId }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

  })();

  // controller 'caching'
  (function(){

    abp.services.app.caching = abp.services.app.caching || {};

    // action 'getAllCaches'
    abp.services.app.caching.getAllCaches = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Caching/GetAllCaches',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'clearCache'
    abp.services.app.caching.clearCache = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Caching/ClearCache',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'clearAllCaches'
    abp.services.app.caching.clearAllCaches = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Caching/ClearAllCaches',
        type: 'POST'
      }, ajaxParams));;
    };

  })();

  // controller 'blog'
  (function(){

    abp.services.app.blog = abp.services.app.blog || {};

    // action 'getBlogPosts'
    abp.services.app.blog.getBlogPosts = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Blog/GetBlogPosts' + abp.utils.buildQueryString([{ name: 'includeDrafts', value: input.includeDrafts }, { name: 'categoryId', value: input.categoryId }, { name: 'sorting', value: input.sorting }, { name: 'maxResultCount', value: input.maxResultCount }, { name: 'skipCount', value: input.skipCount }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getBlogPost'
    abp.services.app.blog.getBlogPost = function(id, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Blog/GetBlogPost' + abp.utils.buildQueryString([{ name: 'id', value: id }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'createBlogPost'
    abp.services.app.blog.createBlogPost = function(createBlogPostDto, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Blog/CreateBlogPost',
        type: 'POST',
        data: JSON.stringify(createBlogPostDto)
      }, ajaxParams));;
    };

    // action 'generateSlug'
    abp.services.app.blog.generateSlug = function(text, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Blog/GenerateSlug' + abp.utils.buildQueryString([{ name: 'text', value: text }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'updateBlogPost'
    abp.services.app.blog.updateBlogPost = function(blogPostDto, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Blog/UpdateBlogPost',
        type: 'PUT',
        data: JSON.stringify(blogPostDto)
      }, ajaxParams));;
    };

    // action 'deleteBlogPost'
    abp.services.app.blog.deleteBlogPost = function(id, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Blog/DeleteBlogPost' + abp.utils.buildQueryString([{ name: 'id', value: id }]) + '',
        type: 'DELETE'
      }, ajaxParams));;
    };

    // action 'getCategories'
    abp.services.app.blog.getCategories = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Blog/GetCategories' + abp.utils.buildQueryString([{ name: 'sorting', value: input.sorting }, { name: 'maxResultCount', value: input.maxResultCount }, { name: 'skipCount', value: input.skipCount }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getCategory'
    abp.services.app.blog.getCategory = function(id, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Blog/GetCategory' + abp.utils.buildQueryString([{ name: 'id', value: id }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'createCategory'
    abp.services.app.blog.createCategory = function(categoryDto, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Blog/CreateCategory',
        type: 'POST',
        data: JSON.stringify(categoryDto)
      }, ajaxParams));;
    };

    // action 'deleteCategory'
    abp.services.app.blog.deleteCategory = function(id, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Blog/DeleteCategory' + abp.utils.buildQueryString([{ name: 'id', value: id }]) + '',
        type: 'DELETE'
      }, ajaxParams));;
    };

    // action 'updateCategory'
    abp.services.app.blog.updateCategory = function(categoryDto, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Blog/UpdateCategory',
        type: 'PUT',
        data: JSON.stringify(categoryDto)
      }, ajaxParams));;
    };

    // action 'createOrUpdateCategory'
    abp.services.app.blog.createOrUpdateCategory = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Blog/CreateOrUpdateCategory',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'getRelatedPosts'
    abp.services.app.blog.getRelatedPosts = function(id, maxPostsToReturn, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Blog/GetRelatedPosts' + abp.utils.buildQueryString([{ name: 'id', value: id }, { name: 'maxPostsToReturn', value: maxPostsToReturn }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

  })();

  // controller 'user'
  (function(){

    abp.services.app.user = abp.services.app.user || {};

    // action 'getUsers'
    abp.services.app.user.getUsers = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/User/GetUsers' + abp.utils.buildQueryString([{ name: 'filter', value: input.filter }, { name: 'permission', value: input.permission }, { name: 'role', value: input.role }, { name: 'sorting', value: input.sorting }, { name: 'maxResultCount', value: input.maxResultCount }, { name: 'skipCount', value: input.skipCount }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getUsersToExcel'
    abp.services.app.user.getUsersToExcel = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/User/GetUsersToExcel',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getUserForEdit'
    abp.services.app.user.getUserForEdit = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/User/GetUserForEdit' + abp.utils.buildQueryString([{ name: 'id', value: input.id }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getUserPermissionsForEdit'
    abp.services.app.user.getUserPermissionsForEdit = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/User/GetUserPermissionsForEdit' + abp.utils.buildQueryString([{ name: 'id', value: input.id }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'resetUserSpecificPermissions'
    abp.services.app.user.resetUserSpecificPermissions = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/User/ResetUserSpecificPermissions',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'updateUserPermissions'
    abp.services.app.user.updateUserPermissions = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/User/UpdateUserPermissions',
        type: 'PUT',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'createOrUpdateUser'
    abp.services.app.user.createOrUpdateUser = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/User/CreateOrUpdateUser',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'deleteUser'
    abp.services.app.user.deleteUser = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/User/DeleteUser' + abp.utils.buildQueryString([{ name: 'id', value: input.id }]) + '',
        type: 'DELETE'
      }, ajaxParams));;
    };

    // action 'unlockUser'
    abp.services.app.user.unlockUser = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/User/UnlockUser',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'getUserByIdAsync'
    abp.services.app.user.getUserByIdAsync = function(tenantId, userId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/User/GetUserByIdAsync' + abp.utils.buildQueryString([{ name: 'tenantId', value: tenantId }, { name: 'userId', value: userId }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'activateUserAsync'
    abp.services.app.user.activateUserAsync = function(tenantId, userId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/User/ActivateUserAsync' + abp.utils.buildQueryString([{ name: 'tenantId', value: tenantId }, { name: 'userId', value: userId }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'activateNewTenantAndUserAsync'
    abp.services.app.user.activateNewTenantAndUserAsync = function(tenantId, userId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/User/ActivateNewTenantAndUserAsync' + abp.utils.buildQueryString([{ name: 'tenantId', value: tenantId }, { name: 'userId', value: userId }]) + '',
        type: 'POST'
      }, ajaxParams));;
    };

  })();

  // controller 'userLink'
  (function(){

    abp.services.app.userLink = abp.services.app.userLink || {};

    // action 'linkToUser'
    abp.services.app.userLink.linkToUser = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/UserLink/LinkToUser',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'getLinkedUsers'
    abp.services.app.userLink.getLinkedUsers = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/UserLink/GetLinkedUsers' + abp.utils.buildQueryString([{ name: 'maxResultCount', value: input.maxResultCount }, { name: 'skipCount', value: input.skipCount }, { name: 'sorting', value: input.sorting }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getRecentlyUsedLinkedUsers'
    abp.services.app.userLink.getRecentlyUsedLinkedUsers = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/UserLink/GetRecentlyUsedLinkedUsers',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'unlinkUser'
    abp.services.app.userLink.unlinkUser = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/UserLink/UnlinkUser',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

  })();

  // controller 'userLogin'
  (function(){

    abp.services.app.userLogin = abp.services.app.userLogin || {};

    // action 'getRecentUserLoginAttempts'
    abp.services.app.userLogin.getRecentUserLoginAttempts = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/UserLogin/GetRecentUserLoginAttempts',
        type: 'GET'
      }, ajaxParams));;
    };

  })();

  // controller 'profile'
  (function(){

    abp.services.app.profile = abp.services.app.profile || {};

    // action 'getCurrentUserProfileForEdit'
    abp.services.app.profile.getCurrentUserProfileForEdit = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Profile/GetCurrentUserProfileForEdit',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'updateGoogleAuthenticatorKey'
    abp.services.app.profile.updateGoogleAuthenticatorKey = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Profile/UpdateGoogleAuthenticatorKey',
        type: 'PUT'
      }, ajaxParams));;
    };

    // action 'sendVerificationSms'
    abp.services.app.profile.sendVerificationSms = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Profile/SendVerificationSms',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'verifySmsCode'
    abp.services.app.profile.verifySmsCode = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Profile/VerifySmsCode',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'updateCurrentUserProfile'
    abp.services.app.profile.updateCurrentUserProfile = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Profile/UpdateCurrentUserProfile',
        type: 'PUT',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'changePassword'
    abp.services.app.profile.changePassword = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Profile/ChangePassword',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'updateProfilePicture'
    abp.services.app.profile.updateProfilePicture = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Profile/UpdateProfilePicture',
        type: 'PUT',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'getPasswordComplexitySetting'
    abp.services.app.profile.getPasswordComplexitySetting = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Profile/GetPasswordComplexitySetting',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getProfilePicture'
    abp.services.app.profile.getProfilePicture = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Profile/GetProfilePicture',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getFriendProfilePictureById'
    abp.services.app.profile.getFriendProfilePictureById = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Profile/GetFriendProfilePictureById' + abp.utils.buildQueryString([{ name: 'profilePictureId', value: input.profilePictureId }, { name: 'userId', value: input.userId }, { name: 'tenantId', value: input.tenantId }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getProfilePictureById'
    abp.services.app.profile.getProfilePictureById = function(profilePictureId, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Profile/GetProfilePictureById' + abp.utils.buildQueryString([{ name: 'profilePictureId', value: profilePictureId }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'changeLanguage'
    abp.services.app.profile.changeLanguage = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Profile/ChangeLanguage',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

  })();

  // controller 'role'
  (function(){

    abp.services.app.role = abp.services.app.role || {};

    // action 'getRoles'
    abp.services.app.role.getRoles = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Role/GetRoles' + abp.utils.buildQueryString([{ name: 'permission', value: input.permission }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getRoleForEdit'
    abp.services.app.role.getRoleForEdit = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Role/GetRoleForEdit' + abp.utils.buildQueryString([{ name: 'id', value: input.id }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'createOrUpdateRole'
    abp.services.app.role.createOrUpdateRole = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Role/CreateOrUpdateRole',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'deleteRole'
    abp.services.app.role.deleteRole = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Role/DeleteRole' + abp.utils.buildQueryString([{ name: 'id', value: input.id }]) + '',
        type: 'DELETE'
      }, ajaxParams));;
    };

  })();

  // controller 'permission'
  (function(){

    abp.services.app.permission = abp.services.app.permission || {};

    // action 'getAllPermissions'
    abp.services.app.permission.getAllPermissions = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Permission/GetAllPermissions',
        type: 'GET'
      }, ajaxParams));;
    };

  })();

  // controller 'account'
  (function(){

    abp.services.app.account = abp.services.app.account || {};

    // action 'isTenantAvailable'
    abp.services.app.account.isTenantAvailable = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Account/IsTenantAvailable',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'register'
    abp.services.app.account.register = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Account/Register',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'sendPasswordResetCode'
    abp.services.app.account.sendPasswordResetCode = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Account/SendPasswordResetCode',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'resetPassword'
    abp.services.app.account.resetPassword = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Account/ResetPassword',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'sendEmailActivationLink'
    abp.services.app.account.sendEmailActivationLink = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Account/SendEmailActivationLink',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'activateEmail'
    abp.services.app.account.activateEmail = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Account/ActivateEmail',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'impersonate'
    abp.services.app.account.impersonate = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Account/Impersonate',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

    // action 'backToImpersonator'
    abp.services.app.account.backToImpersonator = function(ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Account/BackToImpersonator',
        type: 'POST'
      }, ajaxParams));;
    };

    // action 'switchToLinkedAccount'
    abp.services.app.account.switchToLinkedAccount = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/Account/SwitchToLinkedAccount',
        type: 'POST',
        data: JSON.stringify(input)
      }, ajaxParams));;
    };

  })();

  // controller 'auditLog'
  (function(){

    abp.services.app.auditLog = abp.services.app.auditLog || {};

    // action 'getAuditLogs'
    abp.services.app.auditLog.getAuditLogs = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/AuditLog/GetAuditLogs' + abp.utils.buildQueryString([{ name: 'startDate', value: input.startDate }, { name: 'endDate', value: input.endDate }, { name: 'userName', value: input.userName }, { name: 'serviceName', value: input.serviceName }, { name: 'methodName', value: input.methodName }, { name: 'browserInfo', value: input.browserInfo }, { name: 'hasException', value: input.hasException }, { name: 'minExecutionDuration', value: input.minExecutionDuration }, { name: 'maxExecutionDuration', value: input.maxExecutionDuration }, { name: 'sorting', value: input.sorting }, { name: 'maxResultCount', value: input.maxResultCount }, { name: 'skipCount', value: input.skipCount }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

    // action 'getAuditLogsToExcel'
    abp.services.app.auditLog.getAuditLogsToExcel = function(input, ajaxParams) {
      return abp.ajax($.extend(true, {
        url: abp.appPath + 'api/services/app/AuditLog/GetAuditLogsToExcel' + abp.utils.buildQueryString([{ name: 'startDate', value: input.startDate }, { name: 'endDate', value: input.endDate }, { name: 'userName', value: input.userName }, { name: 'serviceName', value: input.serviceName }, { name: 'methodName', value: input.methodName }, { name: 'browserInfo', value: input.browserInfo }, { name: 'hasException', value: input.hasException }, { name: 'minExecutionDuration', value: input.minExecutionDuration }, { name: 'maxExecutionDuration', value: input.maxExecutionDuration }, { name: 'sorting', value: input.sorting }, { name: 'maxResultCount', value: input.maxResultCount }, { name: 'skipCount', value: input.skipCount }]) + '',
        type: 'GET'
      }, ajaxParams));;
    };

  })();

})();