chore: add Imagoverum fleet management package

This commit is contained in:
Meik
2026-06-26 16:46:44 +02:00
parent fac55cd613
commit 3345365778
66 changed files with 2086 additions and 0 deletions

17
ImagoverumFleetManagement/.gitignore vendored Normal file
View File

@@ -0,0 +1,17 @@
Root/
.idea/
/**/bin
/**/obj
*.suo
**/.vs
/**/AssemblyInfoProduct.cs
/**/_Resharper.Caches
/backend/*.sln.DotSettings.user
/backend/**/Matrix42.*.csproj.user
/backend/**/packages/*.*
/backend/**/**/AssemblyInfoProduct.cs
/backend/TestResult/*.*
BasePackage/Assemblies/
node_modules/

View File

@@ -0,0 +1,49 @@
#name: $(BuildDefinitionName)_$(date:yyyyMMdd)$(rev:.r)
pr: none
trigger:
branches:
include:
- main
- dev_initialrequest
paths:
include:
- 'backend/**'
variables:
- name: BaseDir
value: $(build.sourcesDirectory)
- name: BackendDir
value: '$(build.sourcesDirectory)\ImagoverumFleetManagement\backend\FleetManagement'
stages:
- stage: BuildBackend
jobs:
- job: BuildAndCreateArtifact
displayName: 'Build and Create Artifact'
pool:
name: M42BPM
demands:
- DotNetFramework
- vstest
steps:
- template: ../AzurePipelines/templates/build-backend.yml
parameters:
BaseDir: '$(BaseDir)'
SuiteRarShare: '\\m42-sto-ffm01.matrix42.de\ServiceStore\Builds\TitanLinux Continuous'
TestsDir: '$(BackendDir)\Tests'
TestDllPaths: ['Imagoverum.FleetManagement.Tests\bin\Debug\Imagoverum.FleetManagement.Tests.dll']
- task: ArchiveFiles@2
displayName: 'Zip ImagoverumFleetManagement Package'
inputs:
rootFolderOrFile: '$(Build.SourcesDirectory)/ImagoverumFleetManagement/BasePackage'
includeRootFolder: false
archiveType: 'zip'
sevenZipCompression: 'normal'
archiveFile: '$(Build.ArtifactStagingDirectory)/Imagoverum_FleetManagement_1.0.zip'
replaceExistingArchive: true
- task: PublishPipelineArtifact@1
displayName: 'Imagoverum_FleetManagement_1.0.zip'
inputs:
targetPath: '$(Build.ArtifactStagingDirectory)/Imagoverum_FleetManagement_1.0.zip'
artifact: 'Imagoverum_FleetManagement'

View File

@@ -0,0 +1,126 @@
#name: $(BuildDefinitionName)_$(date:yyyyMMdd)$(rev:.r)
pr: none
trigger:
paths:
include:
- 'BasePackage/**'
parameters:
- name: extension_package_json_versioning
displayName: 'Increment extension major/minor version in package.json'
type: boolean
default: false
- name: extension_build_versioning
displayName: 'Increment extension build version in package.json'
type: boolean
default: false
- name: extension_publish
displayName: 'Publish Extension?'
type: boolean
default: false
resources:
repositories:
- repository: cicd
type: git
name: 'DWP/Continuous Integration and Delivery'
- repository: perf
type: git
name: 'DWP/M42ExtensionPerformanceAnalyser'
stages:
- stage: InternalRelease
displayName: Generate Package
variables:
- template: AzurePipelines/shared/variables/esx-vars.yml@cicd
- template: AzurePipelines/shared/variables/esm-deploy-vars.yml@cicd
- template: AzurePipelines/shared/variables/extensions-vars.yml@cicd
jobs:
- job: PreparePackage
displayName: Prepare Package
pool:
name: M42BPM
demands:
- DotNetFramework
- vstest
- NPM
steps:
- template: templates/generate-package.yml
parameters:
PackagePath: '$(System.DefaultWorkingDirectory)/BasePackage'
PackageAdditions: '$(BaseDir)/ConfigPackage'
PackageIncrementStrategy: 'parameter-based'
PackageBuildNumber: '$(Build.BuildId)'
PackagePipelineArtifacts:
- artifactName: Backend
pipelineProject: DWP
pipelineId: 1864
pipelineBranchName: '$(Build.SourceBranch)'
downloadPath: '$(Pipeline.Workspace)'
targetPath: '$(BaseDir)/ConfigPackage/Assemblies/svc/bin'
- job: UpdatePackageVersion
condition: and(succeeded(), ne(coalesce(dependencies.PreparePackage.outputs['PassVersion.PassPackageVersion'], ''), ''))
variables:
- name: PackageVersion
value: $[ dependencies.PreparePackage.outputs['PassVersion.PassPackageVersion'] ]
pool:
name: M42BPM
demands:
- npm
- DotNetFramework
- vstest
steps:
- ${{ if eq(variables['Build.SourceBranchName'], 'main') }}:
- checkout: perf
persistCredentials: true
clean: true
- template: templates/update-package-version.yml
parameters:
GitBranchName: $(Build.SourceBranchName)
PackageVersion: $(PackageVersion)
- stage: PublicRelease
dependsOn: InternalRelease
displayName: 'Public Release'
condition: and(succeeded(), eq(variables['build.sourceBranchName'], 'main'))
variables:
- template: AzurePipelines/shared/variables/extensions-vars.yml@cicd
- name: PackageVersion
value: $[stageDependencies.InternalRelease.PreparePackage.outputs['PassVersion.PassPackageVersion'] ]
jobs:
- deployment: UploadPackage
displayName: 'Publish Package on Gellary'
environment: extension-performance-analyzer-env
pool:
name: M42BPM
demands:
- DotNetFramework
- NPM
- msbuild
strategy:
runOnce:
deploy:
steps:
- checkout: self
- task: DownloadPipelineArtifact@2
displayName: Download Package as Artifact
inputs:
artifactName: Package
targetPath: '$(Pipeline.Workspace)'
- task: Matrix42ExtensionsUploadReleaseTask@1
displayName: 'Uploading Extension Release: f43b7586-0eae-40bb-9a66-0ea8baa9d5b6'
inputs:
acspat: 'M42 Extensions - Publish as Matrix42 (Vendor) - DWP'
extensionid: 'f43b7586-0eae-40bb-9a66-0ea8baa9d5b6'
extensionlocation: '$(Pipeline.Workspace)\Package\package-$(PackageVersion).zip'
- ${{ if eq(parameters.extension_publish, true) }}:
- task: Matrix42ExtensionsPublishReleaseTask@1
displayName: 'Publishing Extension'
inputs:
acspat: 'M42 Extensions - Publish as Matrix42 (Vendor) - DWP'
extensionid: 'f43b7586-0eae-40bb-9a66-0ea8baa9d5b6'
extensionmanifestlocation: 'BasePackage/package.json'
extensiontag: stable
extensionvisibility: contributors
extensioncommunity: true

View File

@@ -0,0 +1,60 @@
parameters:
- name: 'BaseDir'
type: string
- name: 'SuiteRarShare'
type: string
- name: 'TestsDir'
type: string
- name: 'TestDllPaths'
type: object
steps:
- task: CopyFiles@2
inputs:
SourceFolder: '${{ parameters.BaseDir }}'
Contents: '**'
TargetFolder: '${{ parameters.BaseDir }}/ImagoverumFleetManagement'
displayName: Copy extension source files
- task: CopyFiles@2
displayName: Copy suite.rar
inputs:
SourceFolder: ${{ parameters.SuiteRarShare }}
Contents: suite.rar
TargetFolder: ${{ parameters.BaseDir }}
OverWrite: true
- task: ExtractFiles@1
displayName: Extract suite.rar
inputs:
archiveFilePatterns: suite.rar
destinationFolder: '"${{ parameters.BaseDir }}\"'
cleanDestinationFolder: false
overwriteExistingFiles: true
- task: DotNetCoreCLI@2
displayName: 'Restore (net8.0)'
inputs:
command: 'restore'
projects: '${{ parameters.BaseDir }}/ImagoverumFleetManagement/backend/FleetManagement/Imagoverum.FleetManagement.sln'
- task: DotNetCoreCLI@2
displayName: 'Build (net8.0)'
inputs:
command: 'build'
projects: '${{ parameters.BaseDir }}/ImagoverumFleetManagement/backend/FleetManagement/Imagoverum.FleetManagement.sln'
arguments: '-c Release --no-restore'
- task: DotNetCoreCLI@2
displayName: 'Build Services (win-x64)'
inputs:
command: 'build'
projects: '${{ parameters.BaseDir }}/ImagoverumFleetManagement/backend/FleetManagement/Imagoverum.FleetManagement.Services/Imagoverum.FleetManagement.Services.csproj'
arguments: '-c Release -r win-x64 -p:SolutionDir=$(Build.SourcesDirectory)\ImagoverumFleetManagement\backend\FleetManagement\ --no-restore'
- task: DotNetCoreCLI@2
displayName: 'Build Services (linux-x64)'
inputs:
command: 'build'
projects: '${{ parameters.BaseDir }}/ImagoverumFleetManagement/backend/FleetManagement/Imagoverum.FleetManagement.Services/Imagoverum.FleetManagement.Services.csproj'
arguments: '-c Release -r linux-x64 -p:SolutionDir=$(Build.SourcesDirectory)\ImagoverumFleetManagement\backend\FleetManagement\ --no-restore'
- task: DotNetCoreCLI@2
displayName: 'Test (net8.0)'
inputs:
command: 'test'
projects: '${{ parameters.TestsDir }}/Imagoverum.FleetManagement.Tests/Imagoverum.FleetManagement.Tests.csproj'
arguments: '-c Release -f net8.0 --no-build'

View File

@@ -0,0 +1,111 @@
parameters:
- name: 'PackagePipelineArtifacts'
type: object
default:
- artifactName: 'Backend'
pipelineProject: 'DWP'
pipelineId: ''
pipelineBranchName: '$(Build.SourceBranch)'
downloadPath: '$(Pipeline.Workspace)'
targetPath: '$(Pipeline.Workspace)'
- artifactName: 'Frontend'
- name: 'PackagePath'
type: string
default: '$(System.DefaultWorkingDirectory)/BasePackage'
- name: 'PackageAdditions'
type: string
- name: 'PackageIncrementStrategy'
type: string
default: 'parameter-based'
values:
- file-based #increment package.json version directly in a file
- parameter-based #increment package version based on 'package build number' input parameter
- name: 'PackageBuildNumber'
type: string
default: '$(Build.BuildId)'
steps:
- script: |
echo PackagePath: ${{ parameters.PackagePath }}
echo PackageIncrementStrategy: ${{ parameters.PackageIncrementStrategy }}
echo PackageBuildNumber: ${{ parameters.PackageBuildNumber }}
name: InputVariables
displayName: Template Available Parameters
- ${{ each pipelineArtifact in parameters.PackagePipelineArtifacts }} :
- task: DownloadPipelineArtifact@2
displayName: Download Frontend Pipeline Artifacts From Build
inputs:
buildType: 'specific'
project: ${{ pipelineArtifact.pipelineProject }}
definition: ${{ pipelineArtifact.pipelineId }}
preferTriggeringPipeline: true
buildVersionToDownload: 'latestFromBranch'
branchName: ${{ pipelineArtifact.pipelineBranchName }}
targetPath: ${{ pipelineArtifact.downloadPath }}
- task: CopyFiles@2
displayName: 'Copy Files to: ${{ pipelineArtifact.targetPath }}'
inputs:
SourceFolder: ${{ pipelineArtifact.downloadPath }}/${{ pipelineArtifact.artifactName }}
TargetFolder: ${{ pipelineArtifact.targetPath }}
CleanTargetFolder: true
Contents: >-
Matrix42.DWP.PerformanceAnalyser*.dll
- ${{ if eq(parameters.PackageIncrementStrategy, 'file-based') }}:
- powershell: |
$packageJsonFile = -join($env:EXTENSION_PATH, "/package.json")
$packageConfigJson = get-content $packageJsonFile | ConvertFrom-Json
[version]$currentPackageVersion=$packageConfigJson.version
$newPackageBuild = $currentPackageVersion.Build +1
$newPackageVersion = ("{0}.{1}.{2}" -f $currentPackageVersion.Major, $currentPackageVersion.Minor, $newPackageBuild).ToString()
$packageConfigJson.version = $newPackageVersion;
$packageConfigJson | ConvertTo-Json -Depth 100 -Compress | set-content $packageJsonFile
Write-Host 'Package New Version: $newPackageVersion'
Write-Host "##vso[task.setvariable variable=PackageVersion]$newPackageVersion"
Write-Host "##vso[task.setvariable variable=PackageBuildNumber]$newPackageBuild"
name: UpdatePackageVersion
displayName: 'Update Package Version (based on package.json)'
env:
EXTENSION_PATH: '${{ parameters.PackagePath }}'
- task: Matrix42ExtensionsGeneratePackageTask@1
displayName: 'Generate Package based on package.json version'
inputs:
extensionManifest: BasePackage/package.json
extensionAdditions: '${{ parameters.PackageAdditions }}'
extensionOutput: '$(Build.ArtifactStagingDirectory)/package-$(PackageVersion).zip'
extensionManifestOutput: '$(Build.ArtifactStagingDirectory)'
developerIdentity: 'ivo-ci-key.pfx'
developerIdentityPassword: '$(ivo-key-password)'
- ${{ if eq(parameters.PackageIncrementStrategy, 'parameter-based') }}:
- powershell: |
$packageJsonFile = -join($env:EXTENSION_PATH, "/package.json")
$packageConfigJson = get-content $packageJsonFile | ConvertFrom-Json
$newPackageVersion = ("{0}.{1}" -f $packageConfigJson.version, $env:PACKAGE_BUILD_NUMBER).ToString()
Write-Host 'Package New Version: $newPackageVersion'
Write-Host "##vso[task.setvariable variable=PackageVersion]$newPackageVersion"
name: UpdatePackageVersion
displayName: 'Update Package Version (based on parameter)'
env:
EXTENSION_PATH: '${{ parameters.PackagePath }}'
PACKAGE_BUILD_NUMBER: '${{ parameters.PackageBuildNumber }}'
- task: Matrix42ExtensionsGeneratePackageTask@1
displayName: 'Generate Package based on build number version'
inputs:
extensionManifest: BasePackage/package.json
extensionAdditions: '${{ parameters.PackageAdditions }}'
extensionBuildNumber: '${{ parameters.PackageBuildNumber }}'
extensionOutput: '$(Build.ArtifactStagingDirectory)/package-$(PackageVersion).zip'
extensionManifestOutput: '$(Build.ArtifactStagingDirectory)'
developerIdentity: 'ivo-ci-key.pfx'
developerIdentityPassword: '$(ivo-key-password)'
- task: PublishPipelineArtifact@1
displayName: Publish Package as Pipeline Artifact - $(PackageVersion)
inputs:
targetPath: '$(Build.ArtifactStagingDirectory)/package-$(PackageVersion).zip'
artifactName: Package
- script: echo '##vso[task.setvariable variable=PassPackageVersion;isOutput=true]$(PackageVersion)
name: PassVersion

View File

@@ -0,0 +1,44 @@
parameters:
- name: 'SourceDirectory'
type: string
default: '$(System.DefaultWorkingDirectory)'
- name: 'GitBranchName'
type: string
- name: 'GitUserName'
type: string
default: 'Pipeline'
- name: 'PackagePath'
type: string
default: 'BasePackage/package.json'
- name: 'PackageVersion'
type: string
steps:
- script: |
ECHO Current Branch - ${{ parameters.GitBranchName }}
git config --global user.email ${{ parameters.GitUserName }}@matrix42.com & git config --global user.name ${{ parameters.GitUserName }}
git fetch origin
git checkout ${{ parameters.GitBranchName }}
git pull origin ${{ parameters.GitBranchName }} --allow-unrelated-histories
displayName: 'Git Pull ${{ parameters.GitBranchName }} branch under ${{ parameters.GitUserName }} user'
workingDirectory: ${{ parameters.SourceDirectory }}
- powershell: |
Write-Host "New Package Version: $env:PACKAGE_VERSION"
$packageJsonFile = $env:EXTENSION_PATH
$packageConfigJson = get-content $packageJsonFile | ConvertFrom-Json
$packageConfigJson.version = $env:PACKAGE_VERSION
$packageConfigJson | ConvertTo-Json -Depth 100 | set-content $packageJsonFile
displayName: 'Update package version on git repository'
env:
EXTENSION_PATH: '${{ parameters.SourceDirectory }}/${{ parameters.PackagePath }}'
PACKAGE_VERSION: ${{ parameters.PackageVersion }}
- script: |
git add ${{ parameters.PackagePath }}
git commit ${{ parameters.PackagePath }} -m "Build version increment ${{ parameters.PackageVersion }} *CI*"
git push --set-upstream --progress "origin" HEAD:${{ parameters.GitBranchName }}
displayName: Git Push Update package.json version to ${{ parameters.PackageVersion }}
workingDirectory: ${{ parameters.SourceDirectory }}

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<SchemaScripts>
<Script Major="2" Minor="1" Build="10" Type="class" Name="Fleet Management_IMGVCarClass_create" PackageVersion="1.0" FilePath="install\02-01-0010 IMGVCarClass_create.class" />
<Script Major="2" Minor="1" Build="10" Type="relation" Name="Fleet Management_FK_SPSUserClassBaseIMGVCarClass_CarsDriver_create" PackageVersion="1.0" FilePath="install\02-01-0010 FK_SPSUserClassBaseIMGVCarClass_CarsDriver_create.relation" />
<Script Major="2" Minor="1" Build="20" Type="type" Name="Fleet Management_IMGVCarType_create" PackageVersion="1.0" FilePath="install\02-01-0020 IMGVCarType_create.type" />
<Script Major="2" Minor="1" Build="30" Type="dat" Name="Fleet Management_PDRDataQueryType" PackageVersion="1.0" Mode="Merge" FilePath="install\02-01-0030 PDRDataQueryType.dat" />
<Script Major="2" Minor="1" Build="40" Type="dat" Name="Fleet Management_PDRContentWidgetTemplateType_Car Dataset View" PackageVersion="1.0" FilePath="install\02-01-0040 PDRContentWidgetTemplateType_Car Dataset View.dat" />
<Script Major="2" Minor="1" Build="40" Type="dat" Name="Fleet Management_PDRContentWidgetTypeList_Car Dataset View" PackageVersion="1.0" FilePath="install\02-01-0040 PDRContentWidgetTypeList_Car Dataset View.dat" />
<Script Major="2" Minor="1" Build="50" Type="dat" Name="Fleet Management_PDRContentWidgetTemplateType_Car Preview" PackageVersion="1.0" FilePath="install\02-01-0050 PDRContentWidgetTemplateType_Car Preview.dat" />
<Script Major="2" Minor="1" Build="50" Type="dat" Name="Fleet Management_PDRContentWidgetTemplateViewType_Car Preview" PackageVersion="1.0" FilePath="install\02-01-0050 PDRContentWidgetTemplateViewType_Car Preview.dat" />
<Script Major="2" Minor="1" Build="50" Type="dat" Name="Fleet Management_PDRContentWidgetTypeObjectDetails_Car Preview" PackageVersion="1.0" FilePath="install\02-01-0050 PDRContentWidgetTypeObjectDetails_Car Preview.dat" />
<Script Major="2" Minor="1" Build="60" Type="dat" Name="Fleet Management_PDRContentWidgetTemplateType_Car Dialog" PackageVersion="1.0" FilePath="install\02-01-0060 PDRContentWidgetTemplateType_Car Dialog.dat" />
<Script Major="2" Minor="1" Build="60" Type="dat" Name="Fleet Management_PDRContentWidgetTemplateViewType_Car Dialog" PackageVersion="1.0" FilePath="install\02-01-0060 PDRContentWidgetTemplateViewType_Car Dialog.dat" />
<Script Major="2" Minor="1" Build="60" Type="dat" Name="Fleet Management_PDRContentWidgetTypeDialog_Car Dialog" PackageVersion="1.0" FilePath="install\02-01-0060 PDRContentWidgetTypeDialog_Car Dialog.dat" />
<Script Major="2" Minor="1" Build="70" Type="dat" Name="Fleet Management_PDRNavigationItemType" PackageVersion="1.0" Mode="Merge" FilePath="install\02-01-0070 PDRNavigationItemType.dat" />
<Script Major="2" Minor="1" Build="80" Type="type" Name="Fleet Management_IMGVCarType_behavior_create" PackageVersion="1.0" FilePath="install\02-01-0080 IMGVCarType_behavior_create.type" />
<Script Major="2" Minor="1" Build="90" Type="dat" Name="Fleet Management_PLSLServiceTypeWebAPI" PackageVersion="1.0" Mode="Merge" FilePath="install\02-01-0090 PLSLServiceTypeWebAPI.dat" />
<Script Major="2" Minor="1" Build="100" Type="dat" Name="Fleet Management_PLSLWebServiceOperationType" PackageVersion="1.0" Mode="Merge" FilePath="install\02-01-0100 PLSLWebServiceOperationType.dat" />
<Script Major="2" Minor="1" Build="110" Type="dat" Name="Fleet Management_PLSLWebServiceOperationType" PackageVersion="1.0" Mode="Merge" FilePath="install\02-01-0110 PLSLWebServiceOperationType.dat" />
<Script Major="2" Minor="1" Build="120" Type="dat" Name="Fleet Management_PLSLWebServiceOperationType" PackageVersion="1.0" Mode="Merge" FilePath="install\02-01-0120 PLSLWebServiceOperationType.dat" />
<Script Major="2" Minor="1" Build="130" Type="dat" Name="Fleet Management_PDRContentWidgetTemplateType_Car Geolocation Wizard" PackageVersion="1.0" FilePath="install\02-01-0130 PDRContentWidgetTemplateType_Car Geolocation Wizard.dat" />
<Script Major="2" Minor="1" Build="130" Type="dat" Name="Fleet Management_PDRContentWidgetTemplateViewType_Car Geolocation Wizard" PackageVersion="1.0" FilePath="install\02-01-0130 PDRContentWidgetTemplateViewType_Car Geolocation Wizard.dat" />
<Script Major="2" Minor="1" Build="130" Type="dat" Name="Fleet Management_PDRContentWidgetTypeWizard_Car Geolocation Wizard" PackageVersion="1.0" FilePath="install\02-01-0130 PDRContentWidgetTypeWizard_Car Geolocation Wizard.dat" />
<Script Major="2" Minor="1" Build="140" Type="dat" Name="Fleet Management_PDRActionType" PackageVersion="1.0" Mode="Merge" FilePath="install\02-01-0140 PDRActionType.dat" />
</SchemaScripts>

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<NewDataSet>
<BasicSchemaObjectRelation>
<ID>4216de08-a5f4-d065-bcf0-b236340509e1</ID>
<Name>FK_SPSUserClassBaseIMGVCarClass_CarsDriver</Name>
<IsSchemaObject>0</IsSchemaObject>
<DBRelation>0</DBRelation>
<RelationClass>3</RelationClass>
<BasicSchemaAttributeClass
Side="Left">
<ID>4216de08-e8f4-f528-bcf0-b236340509ff</ID>
<Name>Cars</Name>
<BelongsToSchemaObjectClass>7c9df8f2-d564-47ca-8fd9-92fcbed7b58b</BelongsToSchemaObjectClass>
<DisplayName>Cars</DisplayName>
</BasicSchemaAttributeClass>
<BasicSchemaAttributeClass
Side="Right">
<ID>4216de08-e8f4-9d77-bcf0-b23634050a00</ID>
<Name>Driver</Name>
<BelongsToSchemaObjectClass>4216de08-b1f4-cc7a-bcf0-b236340509e8</BelongsToSchemaObjectClass>
<DisplayName>Driver</DisplayName>
</BasicSchemaAttributeClass>
</BasicSchemaObjectRelation>
</NewDataSet>

View File

@@ -0,0 +1,76 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<NewDataSet>
<BasicSchemaObjectClass>
<ID>4216de08-b1f4-cc7a-bcf0-b236340509e8</ID>
<Name>IMGVCarClass</Name>
<IsSchemaObject>0</IsSchemaObject>
<Schema-MetaInfo>
<Name>DisplayExpression</Name>
<Value>Name</Value>
</Schema-MetaInfo>
<DisplayName>Car </DisplayName>
<ProtectionLevel>4</ProtectionLevel>
<ClassType>13</ClassType>
<DisableHistory>1</DisableHistory>
<BasicSchemaAttributeClass>
<ID>4216de08-a5f4-d065-bcf0-b236340509e5</ID>
<Name>FuelCardNumber</Name>
<IsSchemaObject>0</IsSchemaObject>
<DisplayName>Fuel Card Number</DisplayName>
<DisableHistory>1</DisableHistory>
<ProtectionLevel>0</ProtectionLevel>
<DataProtectionIgnored>0</DataProtectionIgnored>
<AllowNull>1</AllowNull>
<ValueType>0</ValueType>
<AttributeLength>100</AttributeLength>
</BasicSchemaAttributeClass>
<BasicSchemaAttributeClass>
<ID>4216de08-a5f4-d065-bcf0-b236340509e3</ID>
<Name>Description</Name>
<IsSchemaObject>0</IsSchemaObject>
<DisplayName>Description</DisplayName>
<DisableHistory>1</DisableHistory>
<ProtectionLevel>0</ProtectionLevel>
<DataProtectionIgnored>0</DataProtectionIgnored>
<AllowNull>1</AllowNull>
<ValueType>8</ValueType>
<AttributeLength>0</AttributeLength>
</BasicSchemaAttributeClass>
<BasicSchemaAttributeClass>
<ID>4216de08-a5f4-d065-bcf0-b236340509e2</ID>
<Name>Name</Name>
<IsSchemaObject>0</IsSchemaObject>
<DisplayName>Name</DisplayName>
<DisableHistory>1</DisableHistory>
<ProtectionLevel>0</ProtectionLevel>
<DataProtectionIgnored>0</DataProtectionIgnored>
<AllowNull>0</AllowNull>
<ValueType>0</ValueType>
<AttributeLength>100</AttributeLength>
</BasicSchemaAttributeClass>
<BasicSchemaAttributeClass>
<ID>4416de08-338d-ef78-bcf0-b2363405156f</ID>
<Name>FuelCardPinCode</Name>
<IsSchemaObject>0</IsSchemaObject>
<DisplayName>Fuel Card PIN Code</DisplayName>
<DisableHistory>1</DisableHistory>
<ProtectionLevel>0</ProtectionLevel>
<DataProtectionIgnored>0</DataProtectionIgnored>
<AllowNull>1</AllowNull>
<ValueType>0</ValueType>
<AttributeLength>10</AttributeLength>
</BasicSchemaAttributeClass>
<BasicSchemaAttributeClass>
<ID>4416de08-338d-ef78-bcf0-b23634051570</ID>
<Name>LicensePlate</Name>
<IsSchemaObject>0</IsSchemaObject>
<DisplayName>License Plate</DisplayName>
<DisableHistory>1</DisableHistory>
<ProtectionLevel>0</ProtectionLevel>
<DataProtectionIgnored>0</DataProtectionIgnored>
<AllowNull>0</AllowNull>
<ValueType>0</ValueType>
<AttributeLength>10</AttributeLength>
</BasicSchemaAttributeClass>
</BasicSchemaObjectClass>
</NewDataSet>

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<NewDataSet>
<BasicSchemaObjectType>
<ID>4216de08-0af5-cdd9-bcf0-b23634050a0c</ID>
<Name>IMGVCarType</Name>
<IsSchemaObject>0</IsSchemaObject>
<Schema-MetaInfo>
<Name>AddActionPosition</Name>
<Value>0</Value>
</Schema-MetaInfo>
<Schema-MetaInfo>
<Name>UUXIcon</Name>
<Value>directions_car</Value>
</Schema-MetaInfo>
<Schema-MetaInfo>
<Name>ArchivingEnabled</Name>
<Value>False</Value>
</Schema-MetaInfo>
<Schema-MetaInfo>
<Name>StateGroup</Name>
<Value>0</Value>
</Schema-MetaInfo>
<Schema-MetaInfo>
<Name>UseUserCurrency</Name>
<Value>False</Value>
</Schema-MetaInfo>
<Schema-MetaInfo>
<Name>UUXColor</Name>
<Value>#FFFEFE</Value>
</Schema-MetaInfo>
<Schema-MetaInfo>
<Name>ArchiveCleanupEnabled</Name>
<Value>False</Value>
</Schema-MetaInfo>
<Schema-MetaInfo>
<Name>DisplayExpression</Name>
<Value>Name</Value>
</Schema-MetaInfo>
<DisplayName>Car</DisplayName>
<ProtectionLevel>4</ProtectionLevel>
<BasedOnTypeClass>4216de08-b1f4-cc7a-bcf0-b236340509e8</BasedOnTypeClass>
</BasicSchemaObjectType>
</NewDataSet>

View File

@@ -0,0 +1,81 @@
<NewDataSet>
<PDRDataQueryType>
<ID>5faaf635-4a13-ca1e-525e-08de1643906c</ID>
</PDRDataQueryType>
<PDRDataQueryClassColumn>
<ID>6c7cf1c0-d01f-4466-9fee-b77319e0dfe6</ID>
<Expression>Name</Expression>
<Name>Name</Name>
<UsedInTypePDRDataQueryType>5faaf635-4a13-ca1e-525e-08de1643906c</UsedInTypePDRDataQueryType>
<IsSystem>1</IsSystem>
<Sorting>0</Sorting>
<Position>30</Position>
<Alignment>0</Alignment>
<Visibility>0</Visibility>
<Width>200</Width>
<ShowFilter>0</ShowFilter>
<DisplayType>0</DisplayType>
<TitleType>1</TitleType>
<DisplayImage>0</DisplayImage>
<SearchDisplayType>0</SearchDisplayType>
<IsKeyword>0</IsKeyword>
</PDRDataQueryClassColumn>
<PDRDataQueryClassColumn>
<ID>1dc05f4c-1c0e-4c48-9af5-eb4c29e4f0ec</ID>
<Expression>LicensePlate</Expression>
<Name>LicensePlate</Name>
<UsedInTypePDRDataQueryType>5faaf635-4a13-ca1e-525e-08de1643906c</UsedInTypePDRDataQueryType>
<IsSystem>1</IsSystem>
<Sorting>0</Sorting>
<Position>30</Position>
<Alignment>0</Alignment>
<Visibility>0</Visibility>
<Width>150</Width>
<ShowFilter>0</ShowFilter>
<DisplayType>0</DisplayType>
<TitleType>1</TitleType>
<DisplayImage>0</DisplayImage>
<SearchDisplayType>0</SearchDisplayType>
<IsKeyword>0</IsKeyword>
</PDRDataQueryClassColumn>
<PDRDataQueryClassColumn>
<ID>5aba989e-4ad4-4096-ba06-edc4eb126a94</ID>
<Expression>Driver</Expression>
<Name>Driver</Name>
<UsedInTypePDRDataQueryType>5faaf635-4a13-ca1e-525e-08de1643906c</UsedInTypePDRDataQueryType>
<IsSystem>1</IsSystem>
<Sorting>0</Sorting>
<Position>40</Position>
<Alignment>0</Alignment>
<Visibility>0</Visibility>
<Width>200</Width>
<ShowFilter>0</ShowFilter>
<DisplayType>0</DisplayType>
<TitleType>1</TitleType>
<DisplayImage>0</DisplayImage>
<SearchDisplayType>0</SearchDisplayType>
<IsKeyword>0</IsKeyword>
</PDRDataQueryClassColumn>
<PDRDataQueryClassBase>
<ID>4316de08-6d90-0947-bcf0-b23634050c79</ID>
<Description>Car</Description>
<SchemaClassName>IMGVCarClass</SchemaClassName>
<Name>Car</Name>
<UsedInTypePDRDataQueryType>5faaf635-4a13-ca1e-525e-08de1643906c</UsedInTypePDRDataQueryType>
<IsDefault>1</IsDefault>
<ImplementationType>d</ImplementationType>
<AllowCache>0</AllowCache>
<CultureSensitive>0</CultureSensitive>
<CacheInterval>60</CacheInterval>
<Tag>fa9039b9-55ad-4a95-aba5-0447bbaca677</Tag>
<Priority>0</Priority>
</PDRDataQueryClassBase>
<PDRAudienceClass>
<ID>4316de08-6d90-0947-bcf0-b23634050c78</ID>
<Unrestricted>1</Unrestricted>
<Configured>1</Configured>
<ConsiderRelated>0</ConsiderRelated>
<StrictAdminControl>0</StrictAdminControl>
<UsedInTypePDRDataQueryType>5faaf635-4a13-ca1e-525e-08de1643906c</UsedInTypePDRDataQueryType>
</PDRAudienceClass>
</NewDataSet>

View File

@@ -0,0 +1,9 @@
<NewDataSet>
<PDRContentWidgetTemplateType>
<ID>cc987070-c9ee-cd4c-c63b-08de1643908f</ID>
</PDRContentWidgetTemplateType>
<PDRContentWidgetTemplateClassBase>
<UsedInTypePDRContentWidgetTemplateType>cc987070-c9ee-cd4c-c63b-08de1643908f</UsedInTypePDRContentWidgetTemplateType>
<ID>4316de08-9090-b731-bcf0-b23634050cb8</ID>
</PDRContentWidgetTemplateClassBase>
</NewDataSet>

View File

@@ -0,0 +1,46 @@
<NewDataSet>
<PDRContentWidgetTypeList>
<ID>74005178-4b9e-c4f2-8dd7-08de1643908c</ID>
</PDRContentWidgetTypeList>
<PDRContentWidgetClassList>
<IsAutoRefreshInGridEnabled>0</IsAutoRefreshInGridEnabled>
<ShowArchivedDataToggle>0</ShowArchivedDataToggle>
<CalendarEventIsWholeDayColumn />
<ShowWeekView>1</ShowWeekView>
<isBoardModeEnabled>0</isBoardModeEnabled>
<isTileModeEnabled>0</isTileModeEnabled>
<ActivateContextInGlobalSearchByDefault>0</ActivateContextInGlobalSearchByDefault>
<EntityClass>IMGVCarClass</EntityClass>
<CalendarDefaultView>agendaWeek</CalendarDefaultView>
<DataQuery>4316de08-6d90-0947-bcf0-b23634050c79</DataQuery>
<isGridModeEnabled>1</isGridModeEnabled>
<UsedInTypePDRContentWidgetTypeList>74005178-4b9e-c4f2-8dd7-08de1643908c</UsedInTypePDRContentWidgetTypeList>
<LoadOnlyFilteredData>0</LoadOnlyFilteredData>
<CalendarEventIsReadOnlyColumn />
<DisableDelete>0</DisableDelete>
<DefaultView>0</DefaultView>
<isCalendarModeEnabled>0</isCalendarModeEnabled>
<CalendarEventIsBackgroundColumn />
<SchemaTypes>IMGVCarType</SchemaTypes>
<GroupByExtraDimension>0</GroupByExtraDimension>
<ShowMonthView>1</ShowMonthView>
<IsBoardDragAndDropEnabled>0</IsBoardDragAndDropEnabled>
<ShowArchived>0</ShowArchived>
<CalendarShowHolidays>0</CalendarShowHolidays>
<ID>4316de08-8d90-ea54-bcf0-b23634050c9d</ID>
<ShowDayView>1</ShowDayView>
<isListModeEnabled>0</isListModeEnabled>
</PDRContentWidgetClassList>
<PDRContentWidgetClassBase>
<EnablePersonalization>0</EnablePersonalization>
<Enabled>1</Enabled>
<Description>Car Dataset View</Description>
<ID>4316de08-8d90-ea54-bcf0-b23634050c9e</ID>
<HelpSourceType>0</HelpSourceType>
<VisibleByCondition>0</VisibleByCondition>
<Name>Car Dataset View</Name>
<System>1</System>
<UsedInTypePDRContentWidgetTypeList>74005178-4b9e-c4f2-8dd7-08de1643908c</UsedInTypePDRContentWidgetTypeList>
<Template>4316de08-9090-b731-bcf0-b23634050cb8</Template>
</PDRContentWidgetClassBase>
</NewDataSet>

View File

@@ -0,0 +1,11 @@
<NewDataSet>
<PDRContentWidgetTemplateType>
<ID>8518f453-0388-c949-07f4-08de164390a5</ID>
</PDRContentWidgetTemplateType>
<PDRContentWidgetTemplateClassBase>
<UsedInTypePDRContentWidgetTemplateType>8518f453-0388-c949-07f4-08de164390a5</UsedInTypePDRContentWidgetTemplateType>
<DataModelExtention>{"Sources":[],"Properties":[],"ExtraProperties":[],"entityName":"IMGVCarType","widgetId":"a08ca017-adef-cdb8-e20a-08de164390a2"}</DataModelExtention>
<NonVisualControls>{"Name":"layout-container-nonvisual","ControlName":"mx-layout-container","IsSystem":true,"Type":1,"Items":[],"Id":"645f5fd8-d49c-4895-9062-27f4cb764168","Properties":[{"Name":"sizeX","Value":1},{"Name":"name","Value":"layout-container-nonvisual"}]}</NonVisualControls>
<ID>4316de08-a590-0b2f-bcf0-b23634050d02</ID>
</PDRContentWidgetTemplateClassBase>
</NewDataSet>

View File

@@ -0,0 +1,26 @@
<NewDataSet>
<PDRContentWidgetTemplateView>
<PartnerCustomization>1</PartnerCustomization>
<Position>0</Position>
<System>1</System>
<Description />
<Content>{"Name":"root-container","ControlName":"mx-layout-container","IsSystem":true,"Type":2,"Items":[{"Name":"layout-row1","ControlName":"mx-layout-row","IsSystem":true,"Type":3,"Items":[{"Name":"layout-container0","ControlName":"mx-layout-container","IsSystem":true,"Type":1,"Items":[{"Name":"layout-grid0","ControlName":"mx-layout-grid","IsSystem":true,"Type":13,"Items":[{"Name":"text-literal-IMGVCarClass-4","ControlName":"mx-text-literal","IsSystem":true,"Type":4,"Items":[],"Id":"910f9426-1588-4c1e-8362-3624a47474cc","Properties":[{"Name":"value","Value":{"__type":1,"path":"IMGVCarType.IMGVCarClass.Name"}},{"Name":"label","Value":"Name"},{"Name":"label-position","Value":"top"},{"Name":"layout-grid-cell-id","Value":"850fa262-25a1-4dad-a9d0-19e2d789de6d"},{"Name":"name","Value":"text-literal-IMGVCarClass-4"}]},{"Name":"object-link-IMGVCarClass-5","ControlName":"mx-object-link","IsSystem":true,"Type":4,"Items":[],"Id":"23c8009a-5946-4792-8796-52c2e209a94c","Properties":[{"Name":"value","Value":{"__type":1,"path":"IMGVCarType.IMGVCarClass.Driver"}},{"Name":"entityClassName","Value":"SPSUserClassBase"},{"Name":"label","Value":"Driver"},{"Name":"label-position","Value":"top"},{"Name":"layout-grid-cell-id","Value":"850fa262-25a1-4dad-a9d0-19e2d789de6d"},{"Name":"name","Value":"object-link-IMGVCarClass-5"}]},{"Name":"text-literal1","ControlName":"mx-text-literal","Type":4,"Items":[],"Id":"4c29fa74-c7dd-7a41-c298-3997a8fdd725","Properties":[{"Name":"value","Value":{"__type":1,"path":"IMGVCarType.IMGVCarClass.LicensePlate"}},{"Name":"label","Value":{"__type":2,"datatype":"datamodel","ResourceKey":"SchemaObjectAttribute.[BelongsToSchemaObjectClass=4216de08-b1f4-cc7a-bcf0-b236340509e8;Name=LicensePlate].DisplayName"}},{"Name":"label-position","Value":"top"},{"Name":"layout-grid-cell-id","Value":"850fa262-25a1-4dad-a9d0-19e2d789de6d"},{"Name":"name","Value":"text-literal1"}]},{"Name":"text-literal-IMGVCarClass-1","ControlName":"mx-text-literal","IsSystem":true,"Type":4,"Items":[],"Id":"75cbd2d3-6619-4a5c-9e25-a573c137c46c","Properties":[{"Name":"value","Value":{"__type":1,"path":"IMGVCarType.IMGVCarClass.FuelCardNumber"}},{"Name":"label","Value":"Fuel Card Number"},{"Name":"label-position","Value":"top"},{"Name":"layout-grid-cell-id","Value":"850fa262-25a1-4dad-a9d0-19e2d789de6d"},{"Name":"name","Value":"text-literal-IMGVCarClass-1"}]},{"Name":"text-literal-IMGVCarClass-3","ControlName":"mx-text-literal","IsSystem":true,"Type":4,"Items":[],"Id":"2a0e30fd-78ba-49e2-b5d7-a6d03a506d52","Properties":[{"Name":"value","Value":{"__type":1,"path":"IMGVCarType.IMGVCarClass.Description"}},{"Name":"label","Value":"Description"},{"Name":"label-position","Value":"top"},{"Name":"layout-grid-cell-id","Value":"850fa262-25a1-4dad-a9d0-19e2d789de6d"},{"Name":"name","Value":"text-literal-IMGVCarClass-3"}]}],"Id":"a1959b12-c712-4219-a2ef-d540ba2db106","Properties":[{"Name":"cells-definition","Value":{"Id":"86913899-958d-468c-85cb-940fe02c7583","Flex":0,"MobileFlex":0,"__type":15,"SubCells":[{"Id":"d751e97d-b077-4b66-b34f-3872dcc40fce","Flex":0,"MobileFlex":0,"Direction":1,"SubCells":[{"Id":"850fa262-25a1-4dad-a9d0-19e2d789de6d","Flex":0,"MobileFlex":0}]}]}},{"Name":"name","Value":"layout-grid0"}]}],"Id":"bd519ce3-e1e0-4b7e-adbc-41cdbde121b6","Properties":[{"Name":"mode","Value":"layout_container_mode_panel"},{"Name":"sizeX","Value":10},{"Name":"sizeY","Value":4},{"Name":"hide-if-empty","Value":false},{"Name":"name","Value":"layout-container0"}]}],"Id":"57a55243-d388-412d-8b2f-014c0ca290cd","Properties":[{"Name":"name","Value":"layout-row1"}]}],"Id":"a82b88fd-c81b-4cea-b0c2-d075fa2c2adb","Properties":[{"Name":"name","Value":"root-container"}]}</Content>
<Header />
<Type>3</Type>
<Key>GeneralView</Key>
<Template>4316de08-a590-0b2f-bcf0-b23634050d02</Template>
<ID>7bff4162-412a-4566-8106-3ab5ce8337bc</ID>
<Published>0</Published>
<Title>General</Title>
<TypeID>a7d73401-b3d5-e711-1187-7824af394f88</TypeID>
</PDRContentWidgetTemplateView>
<PDRAudienceClass>
<Unrestricted>1</Unrestricted>
<UsedInTypePDRContentWidgetTemplateViewType>7bff4162-412a-4566-8106-3ab5ce8337bc</UsedInTypePDRContentWidgetTemplateViewType>
<ConsiderRelated>0</ConsiderRelated>
<ID>4316de08-db90-0aac-bcf0-b23634050d64</ID>
<Configured>0</Configured>
<StrictAdminControl>0</StrictAdminControl>
</PDRAudienceClass>
</NewDataSet>

View File

@@ -0,0 +1,38 @@
<NewDataSet>
<PDRContentWidgetTypeObjectDetails>
<ID>a08ca017-adef-cdb8-e20a-08de164390a2</ID>
</PDRContentWidgetTypeObjectDetails>
<PDRAudienceClass>
<Unrestricted>1</Unrestricted>
<UsedInTypePDRContentWidgetTypeObjectDetails>a08ca017-adef-cdb8-e20a-08de164390a2</UsedInTypePDRContentWidgetTypeObjectDetails>
<ConsiderRelated>0</ConsiderRelated>
<ID>4316de08-a390-f4aa-bcf0-b23634050ce6</ID>
<Configured>1</Configured>
<StrictAdminControl>0</StrictAdminControl>
</PDRAudienceClass>
<PDRContentWidgetClassDialog>
<NotUseInCreateEditPurposes>0</NotUseInCreateEditPurposes>
<Purpose>0</Purpose>
<ID>4316de08-a390-f4aa-bcf0-b23634050ce7</ID>
<Priority>0</Priority>
<ShowOwnership>0</ShowOwnership>
<Entity>IMGVCarType</Entity>
<ShowAsWizard>0</ShowAsWizard>
<HideHeaderTitle>0</HideHeaderTitle>
<DisableCreatingMode>0</DisableCreatingMode>
<DisableEditingMode>0</DisableEditingMode>
<UsedInTypePDRContentWidgetTypeObjectDetails>a08ca017-adef-cdb8-e20a-08de164390a2</UsedInTypePDRContentWidgetTypeObjectDetails>
</PDRContentWidgetClassDialog>
<PDRContentWidgetClassBase>
<EnablePersonalization>0</EnablePersonalization>
<Enabled>1</Enabled>
<Description>Car Preview</Description>
<ID>4316de08-a390-f4aa-bcf0-b23634050ce8</ID>
<HelpSourceType>0</HelpSourceType>
<UsedInTypePDRContentWidgetTypeObjectDetails>a08ca017-adef-cdb8-e20a-08de164390a2</UsedInTypePDRContentWidgetTypeObjectDetails>
<VisibleByCondition>0</VisibleByCondition>
<Name>Car Preview</Name>
<System>1</System>
<Template>4316de08-a590-0b2f-bcf0-b23634050d02</Template>
</PDRContentWidgetClassBase>
</NewDataSet>

View File

@@ -0,0 +1,11 @@
<NewDataSet>
<PDRContentWidgetTemplateType>
<ID>44528d0f-5e9b-c45a-059d-08de164390e7</ID>
</PDRContentWidgetTemplateType>
<PDRContentWidgetTemplateClassBase>
<UsedInTypePDRContentWidgetTemplateType>44528d0f-5e9b-c45a-059d-08de164390e7</UsedInTypePDRContentWidgetTemplateType>
<DataModelExtention>{"Sources":[],"Properties":[],"ExtraProperties":[],"entityName":"IMGVCarType","widgetId":"c971f302-ae30-cf2a-9f25-08de164390e5"}</DataModelExtention>
<NonVisualControls>{"Name":"layout-container-nonvisual","ControlName":"mx-layout-container","IsSystem":true,"Type":1,"Items":[],"Id":"507b75cd-5fc0-483c-bf5b-12924afd662d","Properties":[{"Name":"sizeX","Value":1},{"Name":"name","Value":"layout-container-nonvisual"}]}</NonVisualControls>
<ID>4316de08-e790-562c-bcf0-b23634050db1</ID>
</PDRContentWidgetTemplateClassBase>
</NewDataSet>

View File

@@ -0,0 +1,26 @@
<NewDataSet>
<PDRContentWidgetTemplateView>
<PartnerCustomization>1</PartnerCustomization>
<Position>0</Position>
<System>1</System>
<Description />
<Content>{"Name":"root-container","ControlName":"mx-layout-container","IsSystem":true,"Type":2,"Items":[{"Name":"layout-row1","ControlName":"mx-layout-row","IsSystem":true,"Type":3,"Items":[{"Name":"layout-container0","ControlName":"mx-layout-container","IsSystem":true,"Type":1,"Items":[{"Name":"layout-grid0","ControlName":"mx-layout-grid","IsSystem":true,"Type":13,"Items":[{"Name":"text-area-IMGVCarClass-3","ControlName":"mx-text-area","IsSystem":true,"Type":4,"Items":[],"Id":"ae21808c-0db9-4f0c-9435-d666b51e1c08","Properties":[{"Name":"value","Value":{"__type":1,"path":"IMGVCarType.IMGVCarClass.Description"}},{"Name":"label","Value":"Description"},{"Name":"layout-grid-cell-id","Value":"1d7d2311-6d95-4c60-9b98-6c6b9984c2dd"},{"Name":"name","Value":"text-area-IMGVCarClass-3"}]},{"Name":"edit-IMGVCarClass-4","ControlName":"mx-edit","IsSystem":true,"Type":4,"Items":[],"Id":"37714186-bbe5-4386-afb2-831ae6da8abf","Properties":[{"Name":"value","Value":{"__type":1,"path":"IMGVCarType.IMGVCarClass.Name"}},{"Name":"label","Value":"Name"},{"Name":"layout-grid-cell-id","Value":"e923a8cf-7b1a-4238-b5c4-5089a8331111"},{"Name":"ng-maxlength","Value":100},{"Name":"required","Value":true},{"Name":"name","Value":"edit-IMGVCarClass-4"}]},{"Name":"object-picker-IMGVCarClass-5","ControlName":"mx-object-picker","IsSystem":true,"Type":4,"Items":[],"Id":"0bf86a09-5498-484b-94a0-bbbf054c8dd0","Properties":[{"Name":"value","Value":{"__type":1,"path":"IMGVCarType.IMGVCarClass.Driver"}},{"Name":"entity-class-name","Value":"SPSUserClassBase"},{"Name":"filter-expression","Value":{"Expression":"","Parameters":[],"__type":16}},{"Name":"reset-filter-expression","Value":{"Expression":"","Parameters":[],"__type":16}},{"Name":"label","Value":"Driver"},{"Name":"layout-grid-cell-id","Value":"e923a8cf-7b1a-4238-b5c4-5089a8331111"},{"Name":"name","Value":"object-picker-IMGVCarClass-5"}]},{"Name":"edit-IMGVCarClass-1","ControlName":"mx-edit","IsSystem":true,"Type":4,"Items":[],"Id":"21a60112-2d1a-4bfd-a788-6f10489b8a44","Properties":[{"Name":"value","Value":{"__type":1,"path":"IMGVCarType.IMGVCarClass.FuelCardNumber"}},{"Name":"label","Value":"Fuel Card Number"},{"Name":"layout-grid-cell-id","Value":"050bb411-f07a-4255-9ab3-65d8a2b47f9e"},{"Name":"ng-maxlength","Value":100},{"Name":"name","Value":"edit-IMGVCarClass-1"}]},{"Name":"edit1","ControlName":"mx-edit","Type":4,"Items":[],"Id":"286c0af6-6044-0848-fd1b-39d26ae06217","Properties":[{"Name":"value","Value":{"__type":1,"path":"IMGVCarType.IMGVCarClass.FuelCardPinCode"}},{"Name":"label","Value":{"__type":2,"datatype":"datamodel","ResourceKey":"SchemaObjectAttribute.[BelongsToSchemaObjectClass=4216de08-b1f4-cc7a-bcf0-b236340509e8;Name=FuelCardPinCode].DisplayName"}},{"Name":"data-type","Value":"password"},{"Name":"layout-grid-cell-id","Value":"050bb411-f07a-4255-9ab3-65d8a2b47f9e"},{"Name":"ng-maxlength","Value":10},{"Name":"name","Value":"edit1"}]},{"Name":"edit2","ControlName":"mx-edit","Type":4,"Items":[],"Id":"87c049e8-6242-857d-1e6c-16c51137cc41","Properties":[{"Name":"value","Value":{"__type":1,"path":"IMGVCarType.IMGVCarClass.LicensePlate"}},{"Name":"label","Value":{"__type":2,"datatype":"datamodel","ResourceKey":"SchemaObjectAttribute.[BelongsToSchemaObjectClass=4216de08-b1f4-cc7a-bcf0-b236340509e8;Name=LicensePlate].DisplayName"}},{"Name":"layout-grid-cell-id","Value":"e923a8cf-7b1a-4238-b5c4-5089a8331111"},{"Name":"ng-maxlength","Value":10},{"Name":"required","Value":true},{"Name":"name","Value":"edit2"}]}],"Id":"698c661f-8122-46bd-af24-e594d00a0ce9","Properties":[{"Name":"cells-definition","Value":{"Id":"297cbce9-8d39-4e2c-9c2f-af6d32dc9f6d","Flex":0,"MobileFlex":0,"__type":15,"SubCells":[{"Id":"c4e5c92e-3346-4cd1-b363-c82aeb82eadd","Flex":0,"MobileFlex":0,"Direction":1,"SubCells":[{"Id":"e923a8cf-7b1a-4238-b5c4-5089a8331111","Flex":0,"MobileFlex":0},{"Id":"050bb411-f07a-4255-9ab3-65d8a2b47f9e","Flex":0,"MobileFlex":0}]},{"Id":"0e828757-d3bd-448a-9b90-ba0f2669c947","Flex":null,"MobileFlex":null,"Direction":1,"SubCells":[{"Id":"1d7d2311-6d95-4c60-9b98-6c6b9984c2dd","Flex":0,"MobileFlex":0}]}]}},{"Name":"name","Value":"layout-grid0"}]}],"Id":"bb0d1569-51c4-4c09-9eb8-bd588eb326a0","Properties":[{"Name":"mode","Value":"layout_container_mode_panel"},{"Name":"sizeX","Value":10},{"Name":"sizeY","Value":4},{"Name":"hide-if-empty","Value":false},{"Name":"name","Value":"layout-container0"}]}],"Id":"21617f36-2ecd-4195-8070-5334471ae2a5","Properties":[{"Name":"name","Value":"layout-row1"}]}],"Id":"90cf4c84-b9d9-40ee-b36b-ba2181a45e3e","Properties":[{"Name":"name","Value":"root-container"}]}</Content>
<Header />
<Type>4</Type>
<Key>GeneralView</Key>
<Template>4316de08-e790-562c-bcf0-b23634050db1</Template>
<ID>02a96712-7b32-4508-acd5-e26c7efd0ef8</ID>
<Published>0</Published>
<Title>General</Title>
<TypeID>a7d73401-b3d5-e711-1187-7824af394f88</TypeID>
</PDRContentWidgetTemplateView>
<PDRAudienceClass>
<Unrestricted>1</Unrestricted>
<UsedInTypePDRContentWidgetTemplateViewType>02a96712-7b32-4508-acd5-e26c7efd0ef8</UsedInTypePDRContentWidgetTemplateViewType>
<ConsiderRelated>0</ConsiderRelated>
<ID>4316de08-f390-7799-bcf0-b23634050e19</ID>
<Configured>0</Configured>
<StrictAdminControl>0</StrictAdminControl>
</PDRAudienceClass>
</NewDataSet>

View File

@@ -0,0 +1,38 @@
<NewDataSet>
<PDRContentWidgetTypeDialog>
<ID>c971f302-ae30-cf2a-9f25-08de164390e5</ID>
</PDRContentWidgetTypeDialog>
<PDRAudienceClass>
<Unrestricted>1</Unrestricted>
<ConsiderRelated>0</ConsiderRelated>
<ID>4316de08-e690-1f03-bcf0-b23634050d95</ID>
<UsedInTypePDRContentWidgetTypeDialog>c971f302-ae30-cf2a-9f25-08de164390e5</UsedInTypePDRContentWidgetTypeDialog>
<Configured>1</Configured>
<StrictAdminControl>0</StrictAdminControl>
</PDRAudienceClass>
<PDRContentWidgetClassDialog>
<NotUseInCreateEditPurposes>0</NotUseInCreateEditPurposes>
<Purpose>0</Purpose>
<ID>4316de08-e690-1f03-bcf0-b23634050d96</ID>
<Priority>0</Priority>
<ShowOwnership>0</ShowOwnership>
<Entity>IMGVCarType</Entity>
<ShowAsWizard>0</ShowAsWizard>
<HideHeaderTitle>0</HideHeaderTitle>
<DisableCreatingMode>0</DisableCreatingMode>
<UsedInTypePDRContentWidgetTypeDialog>c971f302-ae30-cf2a-9f25-08de164390e5</UsedInTypePDRContentWidgetTypeDialog>
<DisableEditingMode>0</DisableEditingMode>
</PDRContentWidgetClassDialog>
<PDRContentWidgetClassBase>
<UsedInTypePDRContentWidgetTypeDialog>c971f302-ae30-cf2a-9f25-08de164390e5</UsedInTypePDRContentWidgetTypeDialog>
<EnablePersonalization>0</EnablePersonalization>
<Enabled>1</Enabled>
<Description>Car Dialog</Description>
<ID>4316de08-e690-1f03-bcf0-b23634050d97</ID>
<HelpSourceType>0</HelpSourceType>
<VisibleByCondition>0</VisibleByCondition>
<Name>Car Dialog</Name>
<System>1</System>
<Template>4316de08-e790-562c-bcf0-b23634050db1</Template>
</PDRContentWidgetClassBase>
</NewDataSet>

View File

@@ -0,0 +1,39 @@
<NewDataSet>
<PDRNavigationItemType>
<ID>4346cb3d-6b16-ce14-585e-08de164390f6</ID>
</PDRNavigationItemType>
<PDRNavigationItemClassBase>
<ID>4316de08-f690-44b7-bcf0-b23634050e4a</ID>
<Icon>local_car_wash</Icon>
<UsedInTypePDRNavigationItemType>4346cb3d-6b16-ce14-585e-08de164390f6</UsedInTypePDRNavigationItemType>
<Name>Car</Name>
<Description>Car</Description>
<Title>Car</Title>
<Position>10009</Position>
<Widget>4316de08-8d90-ea54-bcf0-b23634050c9e</Widget>
<Disabled>0</Disabled>
<M42UserRequired>0</M42UserRequired>
<OpenInNewWindow>0</OpenInNewWindow>
<ImplementationType>D</ImplementationType>
<Application>560aac3d-1e3c-e511-14a9-00248cfe5192</Application>
<Enabled>1</Enabled>
<AvailableInSearch>1</AvailableInSearch>
<HideLeftSideNavigation>0</HideLeftSideNavigation>
<HideIfNoChildAvailable>0</HideIfNoChildAvailable>
<ShowStructureInNavigation>0</ShowStructureInNavigation>
<NumericBadge>0</NumericBadge>
<ShowNestedNavigationInTabs>0</ShowNestedNavigationInTabs>
</PDRNavigationItemClassBase>
<PDRControllerClassBase>
<ID>4316de08-f690-44b7-bcf0-b23634050e4b</ID>
<UsedInTypePDRNavigationItemType>4346cb3d-6b16-ce14-585e-08de164390f6</UsedInTypePDRNavigationItemType>
</PDRControllerClassBase>
<PDRAudienceClass>
<ID>4316de08-f690-44b7-bcf0-b23634050e49</ID>
<Unrestricted>1</Unrestricted>
<Configured>1</Configured>
<UsedInTypePDRNavigationItemType>4346cb3d-6b16-ce14-585e-08de164390f6</UsedInTypePDRNavigationItemType>
<ConsiderRelated>0</ConsiderRelated>
<StrictAdminControl>0</StrictAdminControl>
</PDRAudienceClass>
</NewDataSet>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<NewDataSet>
<BasicSchemaObjectType>
<ID>4216de08-0af5-cdd9-bcf0-b23634050a0c</ID>
<Name>IMGVCarType</Name>
<IsSchemaObject>0</IsSchemaObject>
<ActionOnImport>update</ActionOnImport>
<Schema-MetaInfo>
<Name>CustomBehavior</Name>
<Value>Imagoverum.FleetManagement.BizLogic.CarBehavior, Imagoverum.FleetManagement.BizLogic.dll|10</Value>
</Schema-MetaInfo>
</BasicSchemaObjectType>
</NewDataSet>

View File

@@ -0,0 +1,22 @@
<NewDataSet>
<PLSLServiceTypeWebAPI>
<ID>16e0bf04-39f0-c60e-b77e-08de1ba1de26</ID>
</PLSLServiceTypeWebAPI>
<PLSLServiceClassBase>
<ID>a11bde08-8de5-52b2-4bad-36de8000826b</ID>
<Name>Car</Name>
<ImplementationType>Imagoverum.FleetManagement.Services.CarController</ImplementationType>
<IsPublished>1</IsPublished>
<ImplementationAssembly>Imagoverum.FleetManagement.Services</ImplementationAssembly>
<UsedInTypePLSLServiceTypeWebAPI>16e0bf04-39f0-c60e-b77e-08de1ba1de26</UsedInTypePLSLServiceTypeWebAPI>
<RoutePrefix>api/car</RoutePrefix>
</PLSLServiceClassBase>
<PDRAudienceClass>
<ID>a11bde08-8de5-52b2-4bad-36de8000826a</ID>
<Unrestricted>0</Unrestricted>
<Configured>0</Configured>
<ConsiderRelated>0</ConsiderRelated>
<UsedInTypePLSLServiceTypeWebAPI>16e0bf04-39f0-c60e-b77e-08de1ba1de26</UsedInTypePLSLServiceTypeWebAPI>
<StrictAdminControl>0</StrictAdminControl>
</PDRAudienceClass>
</NewDataSet>

View File

@@ -0,0 +1,25 @@
<NewDataSet>
<PLSLWebServiceOperation>
<ID>bfa5904a-f817-c768-3ef0-08de1ba1ed15</ID>
<ResponseContract>{"UsedTypes":{"Imagoverum_FleetManagement_Services_CarController+GeoLocation":{"Descriptor":{"Latitude":{"Type":"System_Double"},"Longitude":{"Type":"System_Double"}}}},"ContractDescriptor":{"ReturnCountType":"NotProvided","Documentation":"Return value","Title":null,"Paths":null,"Type":"Imagoverum_FleetManagement_Services_CarController+GeoLocation"}}</ResponseContract>
<RequestContract>{"UsedTypes":{"RequestContract":{"Descriptor":{"region":{"Type":"StringType"}}}},"ContractDescriptor":{"ReferenceTo":null,"ReferenceFilter":null,"Required":false,"Obsolete":false,"MaxLength":0,"ResourceKey":null,"Documentation":null,"Title":null,"Paths":null,"Type":"RequestContract"}}</RequestContract>
<Name>GetLocation(region)</Name>
<RouteTemplate>geoposition</RouteTemplate>
<Documentation />
<TypeID>7660e907-769c-e711-a182-f079595b3ec7</TypeID>
<Service>a11bde08-8de5-52b2-4bad-36de8000826b</Service>
<SupportedOperation>0</SupportedOperation>
<Type>1</Type>
<IsPublic>0</IsPublic>
<IsScripted>0</IsScripted>
<IsArray>0</IsArray>
</PLSLWebServiceOperation>
<PDRAudienceClass>
<ID>a11bde08-16ed-6150-4bad-36de800082f1</ID>
<Unrestricted>0</Unrestricted>
<Configured>1</Configured>
<ConsiderRelated>0</ConsiderRelated>
<UsedInTypePLSLWebServiceOperationType>bfa5904a-f817-c768-3ef0-08de1ba1ed15</UsedInTypePLSLWebServiceOperationType>
<StrictAdminControl>0</StrictAdminControl>
</PDRAudienceClass>
</NewDataSet>

View File

@@ -0,0 +1,25 @@
<NewDataSet>
<PLSLWebServiceOperation>
<ID>f34fbf71-1b34-c3a3-25bc-08de1ba1ed4a</ID>
<ResponseContract>{"UsedTypes":{},"ContractDescriptor":{"ReturnCountType":"NotProvided","Documentation":"Return value","Title":null,"Paths":null,"Type":"StringType"}}</ResponseContract>
<RequestContract>{"UsedTypes":{},"ContractDescriptor":{"ReferenceTo":null,"ReferenceFilter":null,"Required":false,"Obsolete":false,"MaxLength":0,"ResourceKey":null,"Documentation":null,"Title":null,"Paths":null,"Type":"RequestContract"}}</RequestContract>
<Name>TestCar()</Name>
<RouteTemplate>test</RouteTemplate>
<Documentation />
<TypeID>7660e907-769c-e711-a182-f079595b3ec7</TypeID>
<Service>a11bde08-8de5-52b2-4bad-36de8000826b</Service>
<SupportedOperation>16</SupportedOperation>
<Type>2</Type>
<IsPublic>0</IsPublic>
<IsScripted>0</IsScripted>
<IsArray>0</IsArray>
</PLSLWebServiceOperation>
<PDRAudienceClass>
<ID>a11bde08-4bed-410b-4bad-36de80008340</ID>
<Unrestricted>0</Unrestricted>
<Configured>1</Configured>
<ConsiderRelated>0</ConsiderRelated>
<UsedInTypePLSLWebServiceOperationType>f34fbf71-1b34-c3a3-25bc-08de1ba1ed4a</UsedInTypePLSLWebServiceOperationType>
<StrictAdminControl>0</StrictAdminControl>
</PDRAudienceClass>
</NewDataSet>

View File

@@ -0,0 +1,25 @@
<NewDataSet>
<PLSLWebServiceOperation>
<ID>1cab778c-9182-cfbf-b07f-08de1ba1ed5d</ID>
<ResponseContract>{"UsedTypes":{},"ContractDescriptor":{"ReturnCountType":"NotProvided","Documentation":"Return value","Title":null,"Paths":null,"Type":"Matrix42_WebApi_Contracts_IHttpActionResult"}}</ResponseContract>
<RequestContract>{"UsedTypes":{},"ContractDescriptor":{"ReferenceTo":null,"ReferenceFilter":null,"Required":false,"Obsolete":false,"MaxLength":0,"ResourceKey":null,"Documentation":null,"Title":null,"Paths":null,"Type":"RequestContract"}}</RequestContract>
<Name>Throw()</Name>
<RouteTemplate>error</RouteTemplate>
<Documentation />
<TypeID>7660e907-769c-e711-a182-f079595b3ec7</TypeID>
<Service>a11bde08-8de5-52b2-4bad-36de8000826b</Service>
<SupportedOperation>0</SupportedOperation>
<Type>1</Type>
<IsPublic>0</IsPublic>
<IsScripted>0</IsScripted>
<IsArray>0</IsArray>
</PLSLWebServiceOperation>
<PDRAudienceClass>
<ID>a11bde08-5eed-ba4c-4bad-36de8000838f</ID>
<Unrestricted>0</Unrestricted>
<Configured>1</Configured>
<ConsiderRelated>0</ConsiderRelated>
<UsedInTypePLSLWebServiceOperationType>1cab778c-9182-cfbf-b07f-08de1ba1ed5d</UsedInTypePLSLWebServiceOperationType>
<StrictAdminControl>0</StrictAdminControl>
</PDRAudienceClass>
</NewDataSet>

View File

@@ -0,0 +1,20 @@
<NewDataSet>
<PDRContentWidgetTemplateType>
<ID>e020e358-b683-c2e0-e36f-08de1bb164db</ID>
</PDRContentWidgetTemplateType>
<PDRContentWidgetTemplateClassBase>
<UsedInTypePDRContentWidgetTemplateType>e020e358-b683-c2e0-e36f-08de1bb164db</UsedInTypePDRContentWidgetTemplateType>
<DataModelExtention>{"Sources":[{"Id":"98e85d65-0932-90ce-708a-08458547869f","Name":"custom_CarGeolocation","Path":"custom_CarGeolocation","OperationId":"bfa5904a-f817-c768-3ef0-08de1ba1ed15","RelativePath":"api/car/geoposition?region={region}","RouteTemplate":"geoposition?region={region}","HttpMethod":1,"Direction":0,"Reloadable":true,"RefreshInterval":null,"RewriteResponse":false,"CacheResponse":false,"LoadOnInit":true,"OnSaving":false,"OnSaved":false,"Download":false,"Operation":"GetLocation(region)","ServiceId":"a11bde08-8de5-52b2-4bad-36de8000826b","Service":"Car"}],"Properties":[{"Name":"Regions","Title":"Regions","ReferenceName":"","Type":"ObjectType","IsArray":true,"Value":"","Expression":"return $value;","Parameters":[],"Direction":0,"ParentPath":"Context","Path":"Context.Regions","EditMode":1},{"Name":"Key","Title":"Key","ReferenceName":"","Type":"StringType","IsArray":false,"Value":"","Expression":"return $value;","Parameters":[],"Direction":0,"ParentPath":"Context.Regions","Path":"Context.Regions.Key","EditMode":1},{"Name":"Value","Title":"Value","ReferenceName":"","Type":"StringType","IsArray":false,"Value":"","Expression":"return $value;","Parameters":[],"Direction":0,"ParentPath":"Context.Regions","Path":"Context.Regions.Value","EditMode":1},{"Name":"Region","Title":"Region","ReferenceName":"","Type":"StringType","IsArray":false,"Value":"","Expression":"return $value;","Parameters":[],"Direction":0,"ParentPath":"Context","Path":"Context.Region","EditMode":1},{"Name":"region","ReferenceName":"","Type":"StringType","IsArray":false,"Value":"","Expression":"return region.$value;","Parameters":[{"varName":"region","path":"Context.Region","name":"Region","watchable":true}],"Direction":0,"ParentPath":"custom_CarGeolocation","Path":"custom_CarGeolocation.region","EditMode":2}],"ExtraProperties":[],"isWizard":true,"widgetId":"60888afb-e82d-c474-7f41-08de1bb145ee"}</DataModelExtention>
<NonVisualControls>{"Name":"layout-container1","ControlName":"mx-layout-container","Type":1,"Items":[],"Id":"591c2b52-18b9-1f81-9dea-801a4b9ab6a3","Properties":[{"Name":"name","Value":"layout-container1"}]}</NonVisualControls>
<ID>b11bde08-dd64-eb42-4bad-36c2d401b862</ID>
</PDRContentWidgetTemplateClassBase>
<PDRContentWidgetTemplateCustom>
<ID>dfe49c74-3347-4d27-b8b0-92c18ee0933c</ID>
<NonVisualControlsDiff>{"Adds":[],"TypeChanges":{},"Removals":[],"Shifts":[],"ModifiedControls":[]}</NonVisualControlsDiff>
<Order>0</Order>
<PartnerCustomization>1</PartnerCustomization>
<Published>1</Published>
<UsedInTypePDRContentWidgetTemplateType>e020e358-b683-c2e0-e36f-08de1bb164db</UsedInTypePDRContentWidgetTemplateType>
<DataModelExtentionDiff>{"HasChanges":true,"Changes":{"Properties":{"Added":[{"Parameters":[{"path":"Context.Region","name":"Region","varName":"region","watchable":true}],"Path":"custom_CarGeolocation.return.Address","ParentPath":"custom_CarGeolocation.return","Name":"Address","Expression":"return region.$value;","ReferenceName":"","Type":"StringType","EditMode":2},{"Parameters":[{"path":"Context.Region","name":"Region","varName":"region","watchable":true}],"Path":"custom_CarGeolocation.return.Title","ParentPath":"custom_CarGeolocation.return","Name":"Title","Expression":"return $value;","ReferenceName":"","Type":"StringType","EditMode":2},{"Parameters":[],"Path":"Context.Regions.$item.Key","ParentPath":"Context.Regions.$item","Name":"Key","Expression":"return $value;","ReferenceName":"","Type":"StringType","EditMode":1},{"Parameters":[],"Path":"Context.Regions.$item.Value","ParentPath":"Context.Regions.$item","Name":"Value","Expression":"return $value;","ReferenceName":"","Type":"StringType","EditMode":1},{"Parameters":[{"path":"custom_CarGeolocation.return","name":"return","varName":"result","watchable":true}],"Path":"Context.GeoLiteral","ParentPath":"Context","Name":"GeoLiteral","Expression":"return 'Latitude: ' + result.$value.Latitude + '| Longitude:' + result.$value.Longitude;","ReferenceName":"","Type":"StringType","EditMode":2},{"Parameters":[],"Path":"Context.DefaultRegion","ParentPath":"Context","Name":"DefaultRegion","Expression":"return {Key: 'Whole World', Value: 'world'};","ReferenceName":"","Type":"ObjectType","EditMode":2}],"Modified":{"Context.Regions":{"Expression":"return [{Key: 'Whole World', Value: 'world'},{Key: 'Europe', Value: 'europe'},{Key: 'Asia', Value: 'asia'},{Key: 'USA', Value: 'north-america'},{Key: 'South America', Value: 'south-america'}, {Key: 'Australia', Value: 'australia'}];","EditMode":2},"Context.Regions.Key":{"EditMode":2},"Context.Region":{"Expression":"return $value || \"world\";","EditMode":2}}}}}</DataModelExtentionDiff>
</PDRContentWidgetTemplateCustom>
</NewDataSet>

View File

@@ -0,0 +1,26 @@
<NewDataSet>
<PDRContentWidgetTemplateView>
<Key>view1</Key>
<Title>Check Geolocation</Title>
<Position>1</Position>
<Description />
<Header />
<Type>5</Type>
<Template>b11bde08-dd64-eb42-4bad-36c2d401b862</Template>
<TypeID>a7d73401-b3d5-e711-1187-7824af394f88</TypeID>
<Published>1</Published>
<PartnerCustomization>1</PartnerCustomization>
<System>0</System>
<Content>{"Name":"root-container","ControlName":"mx-layout-container","Type":2,"Items":[{"Name":"layout-row1","ControlName":"mx-layout-row","Type":3,"Items":[{"Name":"layout-container1","ControlName":"mx-layout-container","Type":1,"Items":[{"Name":"text-literal1","ControlName":"mx-text-literal","Type":4,"Items":[],"Id":"1ec7944f-30c3-5d82-0382-2ee08742575c","Properties":[{"Name":"value","Value":"You current car geolocation"},{"Name":"icon","Value":"location_on"},{"Name":"name","Value":"text-literal1"}]},{"Name":"select1","ControlName":"mx-select","Type":4,"Items":[],"Id":"aeb0f950-0e21-dd2c-9a1c-9489c9cfa73b","Properties":[{"Name":"ng-model","Value":{"__type":1,"path":"Context.Region"}},{"Name":"items","Value":{"__type":1,"path":"Context.Regions"}},{"Name":"item-title-field","Value":"Key"},{"Name":"item-id-field","Value":"Value"},{"Name":"default","Value":{"__type":1,"path":"Context.Region"}},{"Name":"label","Value":"Search your car in a region"},{"Name":"name","Value":"select1"}]},{"Name":"geo-map1","ControlName":"mx-geo-map","Type":4,"Items":[],"Id":"2275f123-44c1-821c-870f-3959acb5bdaf","Properties":[{"Name":"source-data","Value":{"__type":1,"path":"custom_CarGeolocation.return"}},{"Name":"lat-attribute","Value":"Latitude"},{"Name":"lng-attribute","Value":"Longitude"},{"Name":"address-attribute","Value":"Address"},{"Name":"title-attribute","Value":"Title"},{"Name":"name","Value":"geo-map1"}]},{"Name":"text-literal2","ControlName":"mx-text-literal","Type":4,"Items":[],"Id":"4995f9f3-545a-4898-0b3c-de34d7ae43b5","Properties":[{"Name":"value","Value":{"__type":1,"path":"Context.GeoLiteral"}},{"Name":"icon","Value":"location_searching"},{"Name":"designer-mode","Value":true},{"Name":"name","Value":"text-literal2"}]}],"Id":"038ac3ba-c42d-354e-4eb4-1769760a1055","Properties":[{"Name":"sizeX","Value":10},{"Name":"sizeY","Value":6},{"Name":"name","Value":"layout-container1"}]}],"Id":"b0e54ae3-6d76-de77-409b-e2d00e547ed9","Properties":[{"Name":"name","Value":"layout-row1"}]}],"Id":"57f64077-86d0-49d3-d4d5-7e3bbced4746","Properties":[{"Name":"name","Value":"root-container"}]}</Content>
<ID>3f48bb91-5d63-ab40-0c15-4a2cef0a14c8</ID>
</PDRContentWidgetTemplateView>
<PDRAudienceClass>
<Unrestricted>1</Unrestricted>
<UsedInTypePDRContentWidgetTemplateViewType>3f48bb91-5d63-ab40-0c15-4a2cef0a14c8</UsedInTypePDRContentWidgetTemplateViewType>
<ConsiderRelated>0</ConsiderRelated>
<ID>b21bde08-24f6-5a91-4bad-36c2d401bd6d</ID>
<Configured>0</Configured>
<StrictAdminControl>0</StrictAdminControl>
</PDRAudienceClass>
</NewDataSet>

View File

@@ -0,0 +1,21 @@
<NewDataSet>
<PDRContentWidgetTypeWizard>
<ID>60888afb-e82d-c474-7f41-08de1bb145ee</ID>
</PDRContentWidgetTypeWizard>
<PDRContentWidgetClassWizard>
<FinishTitle>Finish</FinishTitle>
<UsedInTypePDRContentWidgetTypeWizard>60888afb-e82d-c474-7f41-08de1bb145ee</UsedInTypePDRContentWidgetTypeWizard>
<ID>b11bde08-a864-e976-4bad-36c2d401b842</ID>
</PDRContentWidgetClassWizard>
<PDRContentWidgetClassBase>
<EnablePersonalization>0</EnablePersonalization>
<Enabled>1</Enabled>
<ID>b11bde08-a864-e976-4bad-36c2d401b843</ID>
<HelpSourceType>0</HelpSourceType>
<UsedInTypePDRContentWidgetTypeWizard>60888afb-e82d-c474-7f41-08de1bb145ee</UsedInTypePDRContentWidgetTypeWizard>
<VisibleByCondition>0</VisibleByCondition>
<Name>Car Geolocation Wizard</Name>
<System>0</System>
<Template>b11bde08-dd64-eb42-4bad-36c2d401b862</Template>
</PDRContentWidgetClassBase>
</NewDataSet>

View File

@@ -0,0 +1,36 @@
<NewDataSet>
<PDRActionType>
<ID>80d1c2c1-99fd-c32c-aa66-08de1bb124dc</ID>
</PDRActionType>
<PDRActionClassBase>
<ID>b11bde08-1d6d-a10c-4bad-36c2d401b905</ID>
<Widget>b11bde08-a864-e976-4bad-36c2d401b843</Widget>
<UsedInTypePDRActionType>80d1c2c1-99fd-c32c-aa66-08de1bb124dc</UsedInTypePDRActionType>
<DeviceVisibility>0</DeviceVisibility>
<StateFilter>0</StateFilter>
<TypeFilter>1</TypeFilter>
<Target>1</Target>
<SchemaTypes>IMGVCarType</SchemaTypes>
<Name>Check Geolocation</Name>
<Icon>location_on</Icon>
<InternalName>check_geolocation</InternalName>
<ImplementationType>w</ImplementationType>
<Enabled>1</Enabled>
<UIZones>0</UIZones>
<FilterBy>ci</FilterBy>
<OpenDialogOnSuccess>0</OpenDialogOnSuccess>
<ReloadPageOnSuccess>0</ReloadPageOnSuccess>
</PDRActionClassBase>
<PDRControllerClassBase>
<ID>b11bde08-1d6d-a10c-4bad-36c2d401b907</ID>
<UsedInTypePDRActionType>80d1c2c1-99fd-c32c-aa66-08de1bb124dc</UsedInTypePDRActionType>
</PDRControllerClassBase>
<PDRAudienceClass>
<ID>b11bde08-1d6d-a10c-4bad-36c2d401b906</ID>
<Unrestricted>0</Unrestricted>
<Configured>0</Configured>
<UsedInTypePDRActionType>80d1c2c1-99fd-c32c-aa66-08de1bb124dc</UsedInTypePDRActionType>
<ConsiderRelated>0</ConsiderRelated>
<StrictAdminControl>0</StrictAdminControl>
</PDRAudienceClass>
</NewDataSet>

View File

@@ -0,0 +1,14 @@
{
"Id": "22be0879-4587-cf4b-333c-08de16408acb",
"Vendor": "matrix42 AG",
"Name": "Fleet Management",
"Version": "1.0",
"LastUpdatedDate": "0001-01-01T00:00:00",
"SetupDirectives": {
"MaintenanceMode": false,
"RecycleWebApplication": false,
"RestartM42WindowsServices": false
},
"Sandboxed": true,
"RID":"WinCore"
}

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<SchemaScripts>
<Script Major="2" Minor="1" Build="2147483577" Type="del" Name="Fleet Management_PDRNavigationItemType_uninstall" PackageVersion="1.0" Mode="Merge" Register="false" FilePath="uninstall\02-01-2147483577 PDRNavigationItemType_uninstall.del" />
<Script Major="2" Minor="1" Build="2147483617" Type="del" Name="Fleet Management_PDRDataQueryType_uninstall" PackageVersion="1.0" Mode="Merge" Register="false" FilePath="uninstall\02-01-2147483617 PDRDataQueryType_uninstall.del" />
<Script Major="2" Minor="1" Build="2147483567" Type="del" Name="Fleet Management_PLSLWebServiceOperationType_uninstall" PackageVersion="1.0" Mode="Merge" Register="false" FilePath="uninstall\02-01-2147483567 PLSLWebServiceOperationType_uninstall.del" />
<Script Major="2" Minor="1" Build="2147483587" Type="del" Name="Fleet Management_PLSLWebServiceOperationType_uninstall" PackageVersion="1.0" Mode="Merge" Register="false" FilePath="uninstall\02-01-2147483587 PLSLWebServiceOperationType_uninstall.del" />
<Script Major="2" Minor="1" Build="2147483607" Type="del" Name="Fleet Management_PLSLWebServiceOperationType_uninstall" PackageVersion="1.0" Mode="Merge" Register="false" FilePath="uninstall\02-01-2147483607 PLSLWebServiceOperationType_uninstall.del" />
<Script Major="2" Minor="1" Build="2147483627" Type="del" Name="Fleet Management_PLSLServiceTypeWebAPI_uninstall" PackageVersion="1.0" Mode="Merge" Register="false" FilePath="uninstall\02-01-2147483627 PLSLServiceTypeWebAPI_uninstall.del" />
<Script Major="2" Minor="1" Build="2147483627" Type="del" Name="Fleet Management_PDRActionType_uninstall" PackageVersion="1.0" Mode="Merge" Register="false" FilePath="uninstall\02-01-2147483627 PDRActionType_uninstall.del" />
<Script Major="2" Minor="1" Build="2147483637" Type="del" Name="Fleet Management_PDRContentWidgetTypeWizard_Car Geolocation Wizard_uninstall" PackageVersion="1.0" Register="false" FilePath="uninstall\02-01-2147483637 PDRContentWidgetTypeWizard_Car Geolocation Wizard_uninstall.del" />
<Script Major="2" Minor="1" Build="2147483647" Type="post" Name="Fleet Management_UnregisterInstallScripts_Sobu" Register="false" FilePath="uninstall\02-01-2147483647 UnregisterInstallScripts_Sobu.post" />
</SchemaScripts>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<DeleteObjectRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Items>
<DeleteObjectRequestItem>
<ObjectId>1cab778c-9182-cfbf-b07f-08de1ba1ed5d</ObjectId>
<TypeId>7660e907-769c-e711-a182-f079595b3ec7</TypeId>
</DeleteObjectRequestItem>
</Items>
</DeleteObjectRequest>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<DeleteObjectRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Items>
<DeleteObjectRequestItem>
<ObjectId>4346cb3d-6b16-ce14-585e-08de164390f6</ObjectId>
<TypeId>7480d43f-a42f-e511-14a9-00248cfe5192</TypeId>
</DeleteObjectRequestItem>
</Items>
</DeleteObjectRequest>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<DeleteObjectRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Items>
<DeleteObjectRequestItem>
<ObjectId>f34fbf71-1b34-c3a3-25bc-08de1ba1ed4a</ObjectId>
<TypeId>7660e907-769c-e711-a182-f079595b3ec7</TypeId>
</DeleteObjectRequestItem>
</Items>
</DeleteObjectRequest>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<DeleteObjectRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Items>
<DeleteObjectRequestItem>
<ObjectId>bfa5904a-f817-c768-3ef0-08de1ba1ed15</ObjectId>
<TypeId>7660e907-769c-e711-a182-f079595b3ec7</TypeId>
</DeleteObjectRequestItem>
</Items>
</DeleteObjectRequest>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<DeleteObjectRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Items>
<DeleteObjectRequestItem>
<ObjectId>5faaf635-4a13-ca1e-525e-08de1643906c</ObjectId>
<TypeId>e35932d0-de1f-e511-9282-60d819b5ce8f</TypeId>
</DeleteObjectRequestItem>
</Items>
</DeleteObjectRequest>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<DeleteObjectRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Items>
<DeleteObjectRequestItem>
<ObjectId>80d1c2c1-99fd-c32c-aa66-08de1bb124dc</ObjectId>
<TypeId>0fa6b97f-c362-e511-7882-bc5ff41a70c0</TypeId>
</DeleteObjectRequestItem>
</Items>
</DeleteObjectRequest>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<DeleteObjectRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Items>
<DeleteObjectRequestItem>
<ObjectId>16e0bf04-39f0-c60e-b77e-08de1ba1de26</ObjectId>
<TypeId>a861b74e-5621-e511-d09e-00248cfe5192</TypeId>
</DeleteObjectRequestItem>
</Items>
</DeleteObjectRequest>

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<DeleteObjectRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Items>
<DeleteObjectRequestItem>
<ObjectId>3f48bb91-5d63-ab40-0c15-4a2cef0a14c8</ObjectId>
<TypeId>a7d73401-b3d5-e711-1187-7824af394f88</TypeId>
</DeleteObjectRequestItem>
<DeleteObjectRequestItem>
<ObjectId>60888afb-e82d-c474-7f41-08de1bb145ee</ObjectId>
<TypeId>b14a1212-4a68-e511-7882-bc5ff41a70c0</TypeId>
</DeleteObjectRequestItem>
<DeleteObjectRequestItem>
<ObjectId>e020e358-b683-c2e0-e36f-08de1bb164db</ObjectId>
<TypeId>10d7630f-1b62-e511-6082-f079595b3ec7</TypeId>
</DeleteObjectRequestItem>
</Items>
</DeleteObjectRequest>

View File

@@ -0,0 +1,21 @@
/*1.0*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 30 AND Type = 'dat' AND Name = '22be0879-4587-cf4b-333c-08de16408acb_Fleet Management_PDRDataQueryType'
/*1.0*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 40 AND Type = 'dat' AND Name = '22be0879-4587-cf4b-333c-08de16408acb_Fleet Management_PDRContentWidgetTemplateType_Car Dataset View'
/*1.0*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 40 AND Type = 'dat' AND Name = '22be0879-4587-cf4b-333c-08de16408acb_Fleet Management_PDRContentWidgetTypeList_Car Dataset View'
/*1.0*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 50 AND Type = 'dat' AND Name = '22be0879-4587-cf4b-333c-08de16408acb_Fleet Management_PDRContentWidgetTemplateType_Car Preview'
/*1.0*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 50 AND Type = 'dat' AND Name = '22be0879-4587-cf4b-333c-08de16408acb_Fleet Management_PDRContentWidgetTemplateViewType_Car Preview'
/*1.0*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 50 AND Type = 'dat' AND Name = '22be0879-4587-cf4b-333c-08de16408acb_Fleet Management_PDRContentWidgetTypeObjectDetails_Car Preview'
/*1.0*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 60 AND Type = 'dat' AND Name = '22be0879-4587-cf4b-333c-08de16408acb_Fleet Management_PDRContentWidgetTemplateType_Car Dialog'
/*1.0*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 60 AND Type = 'dat' AND Name = '22be0879-4587-cf4b-333c-08de16408acb_Fleet Management_PDRContentWidgetTemplateViewType_Car Dialog'
/*1.0*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 60 AND Type = 'dat' AND Name = '22be0879-4587-cf4b-333c-08de16408acb_Fleet Management_PDRContentWidgetTypeDialog_Car Dialog'
/*1.0*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 70 AND Type = 'dat' AND Name = '22be0879-4587-cf4b-333c-08de16408acb_Fleet Management_PDRNavigationItemType'
/*1.0*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 90 AND Type = 'dat' AND Name = '22be0879-4587-cf4b-333c-08de16408acb_Fleet Management_PLSLServiceTypeWebAPI'
/*1.0*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 100 AND Type = 'dat' AND Name = '22be0879-4587-cf4b-333c-08de16408acb_Fleet Management_PLSLWebServiceOperationType'
/*1.0*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 110 AND Type = 'dat' AND Name = '22be0879-4587-cf4b-333c-08de16408acb_Fleet Management_PLSLWebServiceOperationType'
/*1.0*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 120 AND Type = 'dat' AND Name = '22be0879-4587-cf4b-333c-08de16408acb_Fleet Management_PLSLWebServiceOperationType'
/*1.0*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 130 AND Type = 'dat' AND Name = '22be0879-4587-cf4b-333c-08de16408acb_Fleet Management_PDRContentWidgetTemplateType_Car Geolocation Wizard'
/*1.0*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 130 AND Type = 'dat' AND Name = '22be0879-4587-cf4b-333c-08de16408acb_Fleet Management_PDRContentWidgetTemplateViewType_Car Geolocation Wizard'
/*1.0*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 130 AND Type = 'dat' AND Name = '22be0879-4587-cf4b-333c-08de16408acb_Fleet Management_PDRContentWidgetTypeWizard_Car Geolocation Wizard'
/*1.0*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 140 AND Type = 'dat' AND Name = '22be0879-4587-cf4b-333c-08de16408acb_Fleet Management_PDRActionType'

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<SchemaScripts>
<Script Major="2" Minor="1" Build="2147483627" Type="type" Name="Fleet Management_IMGVCarType_create_uninstall" PackageVersion="1.0" Register="false" FilePath="uninstall_data\02-01-2147483627 IMGVCarType_create_uninstall.type" />
<Script Major="2" Minor="1" Build="2147483637" Type="class" Name="Fleet Management_IMGVCarClass_create_uninstall" PackageVersion="1.0" Register="false" FilePath="uninstall_data\02-01-2147483637 IMGVCarClass_create_uninstall.class" />
<Script Major="2" Minor="1" Build="2147483647" Type="post" Name="Fleet Management_UnregisterInstallScripts_Data" Register="false" FilePath="uninstall_data\02-01-2147483647 UnregisterInstallScripts_Data.post" />
</SchemaScripts>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<NewDataSet>
<BasicSchemaObjectType>
<ID>4216de08-0af5-cdd9-bcf0-b23634050a0c</ID>
<Name>IMGVCarType</Name>
<ActionOnImport>delete</ActionOnImport>
</BasicSchemaObjectType>
</NewDataSet>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<NewDataSet>
<BasicSchemaObjectClass>
<ID>4216de08-b1f4-cc7a-bcf0-b236340509e8</ID>
<Name>IMGVCarClass</Name>
<ActionOnImport>delete</ActionOnImport>
</BasicSchemaObjectClass>
</NewDataSet>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<NewDataSet>
<BasicSchemaObjectType>
<ID>4216de08-0af5-cdd9-bcf0-b23634050a0c</ID>
<Name>IMGVCarType</Name>
<IsSchemaObject>0</IsSchemaObject>
<ActionOnImport>update</ActionOnImport>
<Schema-MetaInfo>
<Name>CustomBehavior</Name>
<Value>Imagoverum.FleetManagement.BizLogic.CarBehavior, Imagoverum.FleetManagement.Services.dll|2</Value>
</Schema-MetaInfo>
</BasicSchemaObjectType>
</NewDataSet>

View File

@@ -0,0 +1,5 @@
/*1.0*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 10 AND Type = 'class' AND Name = '22be0879-4587-cf4b-333c-08de16408acb_Fleet Management_IMGVCarClass_create'
/*1.0*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 20 AND Type = 'type' AND Name = '22be0879-4587-cf4b-333c-08de16408acb_Fleet Management_IMGVCarType_create'
/*1.0*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 10 AND Type = 'relation' AND Name = '22be0879-4587-cf4b-333c-08de16408acb_Fleet Management_FK_SPSUserClassBaseIMGVCarClass_CarsDriver_create'
/*1.0*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 80 AND Type = 'type' AND Name = '22be0879-4587-cf4b-333c-08de16408acb_Fleet Management_IMGVCarType_behavior_create'

View File

@@ -0,0 +1,201 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--
Layout assumptions
This .targets file lives in:
{ExtensionPath}\Extension.Assemblies.targets
We want to copy to:
BasePackage\Assemblies\
→ {ExtensionPath}\BasePackage\Assemblies\
Root\InstalledPackages\Assemblies\{ExtensionId}\
→ {ExtensionPath}\..\Root\InstalledPackages\Assemblies\{ExtensionId}\
Properties:
- M42BasePackageAssembliesDir (can override in csproj)
- M42RootAssembliesDir (needs M42ExtensionId)
- M42AssemblyPattern (default: $(MSBuildProjectName)*.*)
- M42DefaultRids (default: win-x64;linux-x64)
- M42ExtensionId (set in csproj)
- M42EnableRidBuild (true for net8.0 w/ RIDs, false for netstandard)
-->
<PropertyGroup>
<!-- BasePackage under extension root -->
<M42BasePackageAssembliesDir Condition="'$(M42BasePackageAssembliesDir)' == ''">$(MSBuildThisFileDirectory)BasePackage\Assemblies\</M42BasePackageAssembliesDir>
<!-- Root one level above extension root -->
<M42RootAssembliesDir Condition="'$(M42RootAssembliesDir)' == '' AND '$(M42ExtensionId)' != ''">$(MSBuildThisFileDirectory)..\Root\InstalledPackages\Assemblies\$(M42ExtensionId)\</M42RootAssembliesDir>
<!-- Pattern & default RIDs -->
<M42AssemblyPattern Condition="'$(M42AssemblyPattern)' == ''">$(MSBuildProjectName)*.*</M42AssemblyPattern>
<M42DefaultRids Condition="'$(M42DefaultRids)' == ''">win-x64;linux-x64</M42DefaultRids>
<!-- Enable multi-RID builds per project; can be set to false in csproj -->
<M42EnableRidBuild Condition="'$(M42EnableRidBuild)' == ''">true</M42EnableRidBuild>
</PropertyGroup>
<!--
M42_BuildAllRids
If no RuntimeIdentifier was specified and M42EnableRidBuild=true,
re-build the project for all RIDs in M42DefaultRids.
Works both locally and in CI (we do NOT check TF_BUILD here).
-->
<Target Name="M42_BuildAllRids"
BeforeTargets="Build"
Condition="'$(RuntimeIdentifier)' == '' AND '$(M42EnableRidBuild)' == 'true'">
<ItemGroup>
<_M42RidList Include="$(M42DefaultRids)" />
</ItemGroup>
<MSBuild Projects="$(MSBuildProjectFullPath)"
Targets="Restore;Build"
Properties="RuntimeIdentifier=%(_M42RidList.Identity);Configuration=$(Configuration);AppendRuntimeIdentifierToOutputPath=true"
BuildInParallel="true" />
<PropertyGroup>
<SkipBuild>true</SkipBuild>
</PropertyGroup>
</Target>
<!--
M42_PostBuild_CopyRidless
For RID-less builds (RuntimeIdentifier == ''),
copy top-level output files that match M42AssemblyPattern from $(TargetDir) to:
1) BasePackage\Assemblies\
2) Root\InstalledPackages\Assemblies\{ExtId}\ (if configured)
Used for netstandard2.0 or when M42EnableRidBuild=false.
-->
<Target Name="M42_PostBuild_CopyRidless"
AfterTargets="Build"
Condition="'$(RuntimeIdentifier)' == ''">
<Message Text="M42: RID-less copy from $(TargetDir) → $(M42BasePackageAssembliesDir)" Importance="high" />
<ItemGroup>
<_M42FlatRootRidless Include="$(TargetDir)$(M42AssemblyPattern)" />
</ItemGroup>
<!-- BasePackage flat copy -->
<MakeDir Directories="$(M42BasePackageAssembliesDir)"
Condition="!Exists('$(M42BasePackageAssembliesDir)')" />
<Copy
SourceFiles="@(_M42FlatRootRidless)"
DestinationFolder="$(M42BasePackageAssembliesDir)"
SkipUnchangedFiles="true"
Condition="Exists('$(TargetDir)')" />
<!-- Root flat copy (if configured) -->
<Message Text="M42: RID-less copy to Root → $(M42RootAssembliesDir)" Importance="high"
Condition="'$(M42RootAssembliesDir)' != ''" />
<MakeDir Directories="$(M42RootAssembliesDir)"
Condition="'$(M42RootAssembliesDir)' != '' AND !Exists('$(M42RootAssembliesDir)')" />
<Copy
SourceFiles="@(_M42FlatRootRidless)"
DestinationFolder="$(M42RootAssembliesDir)"
SkipUnchangedFiles="true"
Condition="'$(M42RootAssembliesDir)' != '' AND Exists('$(TargetDir)')" />
</Target>
<!--
M42_PostBuild_CopyRID
For RID-specific builds (RuntimeIdentifier != ''),
copy assemblies to:
1) BasePackage\Assemblies\ (FLAT, from RID-less bin\...\netX\)
2) BasePackage\Assemblies\<RID>\... (RECURSIVE, from current RID build)
And, if M42RootAssembliesDir is set:
3) Root\InstalledPackages\Assemblies\{ExtId}\ (FLAT)
4) Root\InstalledPackages\Assemblies\{ExtId}\<RID>\ (RECURSIVE)
-->
<Target Name="M42_PostBuild_CopyRID"
AfterTargets="Build"
Condition="'$(RuntimeIdentifier)' != ''">
<Message Text="M42: RID=$(RuntimeIdentifier) TargetDir=$(TargetDir)" Importance="high" />
<!-- Parent of ...\netX\<rid>\ -->
<PropertyGroup>
<M42_RidlessTargetDir>$([System.IO.Path]::GetFullPath('$(TargetDir)..\'))</M42_RidlessTargetDir>
</PropertyGroup>
<!-- 1) FLAT copy from rid-less netX to BasePackage\Assemblies -->
<Message Text="M42: flat copy from $(M42_RidlessTargetDir) → $(M42BasePackageAssembliesDir)" Importance="high" />
<ItemGroup>
<_M42FlatRoot Include="$(M42_RidlessTargetDir)$(M42AssemblyPattern)" />
</ItemGroup>
<MakeDir Directories="$(M42BasePackageAssembliesDir)"
Condition="!Exists('$(M42BasePackageAssembliesDir)')" />
<Copy
SourceFiles="@(_M42FlatRoot)"
DestinationFolder="$(M42BasePackageAssembliesDir)"
SkipUnchangedFiles="true"
Condition="Exists('$(M42_RidlessTargetDir)')" />
<!-- 1b) FLAT copy to Root if configured -->
<Message Text="M42: flat copy to Root → $(M42RootAssembliesDir)" Importance="high"
Condition="'$(M42RootAssembliesDir)' != ''" />
<MakeDir Directories="$(M42RootAssembliesDir)"
Condition="'$(M42RootAssembliesDir)' != '' AND !Exists('$(M42RootAssembliesDir)')" />
<Copy
SourceFiles="@(_M42FlatRoot)"
DestinationFolder="$(M42RootAssembliesDir)"
SkipUnchangedFiles="true"
Condition="'$(M42RootAssembliesDir)' != '' AND Exists('$(M42_RidlessTargetDir)')" />
<!-- 2) RID copy to BasePackage\Assemblies\<RID>\... -->
<Message Text="M42: RID copy → $(M42BasePackageAssembliesDir)$(RuntimeIdentifier)\" Importance="high" />
<ItemGroup>
<_M42Rid Include="$(TargetDir)**\$(M42AssemblyPattern)" />
</ItemGroup>
<MakeDir Directories="$(M42BasePackageAssembliesDir)$(RuntimeIdentifier)"
Condition="!Exists('$(M42BasePackageAssembliesDir)$(RuntimeIdentifier)')" />
<Copy
SourceFiles="@(_M42Rid)"
DestinationFolder="$(M42BasePackageAssembliesDir)$(RuntimeIdentifier)\%(RecursiveDir)"
SkipUnchangedFiles="true" />
<!-- 2b) RID copy to Root\...\<RID>\... -->
<Message Text="M42: RID copy to Root → $(M42RootAssembliesDir)$(RuntimeIdentifier)\" Importance="high"
Condition="'$(M42RootAssembliesDir)' != ''" />
<MakeDir Directories="$(M42RootAssembliesDir)$(RuntimeIdentifier)"
Condition="'$(M42RootAssembliesDir)' != '' AND !Exists('$(M42RootAssembliesDir)$(RuntimeIdentifier)')" />
<Copy
SourceFiles="@(_M42Rid)"
DestinationFolder="$(M42RootAssembliesDir)$(RuntimeIdentifier)\%(RecursiveDir)"
SkipUnchangedFiles="true"
Condition="'$(M42RootAssembliesDir)' != ''" />
</Target>
</Project>

View File

@@ -0,0 +1,22 @@
# ImagoverumFleetManagement
## Description
The ESMP Demo extension provides a boilerplate foundation that can be reused when building new extensions
## Owner
Name: ESMP
Email: vadim.zinoviev@matrix42.com
## Product
M42 Enterprise
## Documentation
- [Service Information](./service-info.yml)
## Runtime pre requisites
$installer = "$env:TEMP\dotnet-sdk-8.0.415-win-x64.exe"
Invoke-WebRequest -Uri "https://builds.dotnet.microsoft.com/dotnet/Sdk/8.0.415/dotnet-sdk-8.0.415-win-x64.exe" -OutFile $installer
Start-Process -FilePath $installer -ArgumentList "/install", "/quiet", "/norestart" -Wait
Remove-Item $installer
dotnet --list-sdks

View File

@@ -0,0 +1 @@
call %~dps0..\..\TeamBuildEvent.cmd %1 %2 %3 "/Solutions/FleetManagement"

View File

@@ -0,0 +1,49 @@
using Matrix42.Behaviors.Contracts;
using System;
using System.Diagnostics;
using update4u.SPS.Security;
namespace Imagoverum.FleetManagement.BizLogic
{
public class CarBehavior() : CustomGenericBehavior
{
private static readonly string Secured = "***Secured***";
private const string PasswordField = "FuelCardPinCode";
public override void OnAdding(DbRecord dbRecord, BehaviorActionContext context)
{
if (dbRecord.Data["IMGVCarClass"]["Name"].ToString() == "Test")
{
dbRecord.Data["IMGVCarClass"]["Name"] = "Specify choice";
}
EncryptPasswordField(dbRecord, context, isNew: true);
base.OnAdding(dbRecord, context);
}
public override void OnModifing(DbRecord dbRecord, BehaviorActionContext context)
{
EncryptPasswordField(dbRecord, context, isNew: false);
base.OnModifing(dbRecord, context);
}
private void EncryptPasswordField(DbRecord dbRecord, BehaviorActionContext context, bool isNew)
{
if (isNew || dbRecord.Data["IMGVCarClass"][PasswordField].ToString() != Secured)
{
dbRecord.Data["IMGVCarClass"][PasswordField] = CryptoManager.Instance.EncryptDBText(dbRecord.Data["IMGVCarClass"][PasswordField].ToString());
}
else if (dbRecord.Data["IMGVCarClass"][PasswordField].ToString() == Secured)
{
var oldRecordData = context?.OldValue?.Data;
if (oldRecordData != null)
{
dbRecord.Data["IMGVCarClass"][PasswordField] = oldRecordData["IMGVCarClass"][PasswordField];
}
}
}
}
}

View File

@@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Imagoverum.FleetManagement.BizLogic
{
public static class CarTester
{
public static bool IsCarWorkingProperly()
{
return true;
}
}
}

View File

@@ -0,0 +1,31 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup Label="Globals">
<SccProjectName>SAK</SccProjectName>
<SccProvider>SAK</SccProvider>
<SccAuxPath>SAK</SccAuxPath>
<SccLocalPath>SAK</SccLocalPath>
</PropertyGroup>
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<LangVersion>latestmajor</LangVersion>
</PropertyGroup>
<ItemGroup>
<Reference Include="Matrix42.Behaviors.Contracts">
<HintPath>..\..\..\..\Root\bin\Matrix42.Behaviors.Contracts.dll</HintPath>
</Reference>
<Reference Include="update4u.SPS.Security">
<HintPath>..\..\..\..\Root\bin\update4u.SPS.Security.dll</HintPath>
</Reference>
</ItemGroup>
<PropertyGroup>
<M42ExtensionId>22be0879-4587-cf4b-333c-08de16408acb</M42ExtensionId>
<M42AssemblyPattern>$(MSBuildProjectName)*.*</M42AssemblyPattern>
<M42EnableRidBuild>false</M42EnableRidBuild>
</PropertyGroup>
<Import Project="..\..\..\Extension.Assemblies.targets" Condition="Exists('..\..\..\Extension.Assemblies.targets')" />
</Project>

View File

@@ -0,0 +1,10 @@
""
{
"FILE_VERSION" = "9237"
"ENLISTMENT_CHOICE" = "NEVER"
"PROJECT_FILE_RELATIVE_PATH" = ""
"NUMBER_OF_EXCLUDED_FILES" = "0"
"ORIGINAL_PROJECT_FILE_PATH" = ""
"NUMBER_OF_NESTED_PROJECTS" = "0"
"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
}

View File

@@ -0,0 +1,3 @@
REM %robodir%robocopy %targetDir% %basedir%BasePackage\Assemblies\ Imagoverum.FleetManagement*.* /s %roboOptions%
exit /b 0

View File

@@ -0,0 +1,78 @@
using Imagoverum.FleetManagement.BizLogic;
using Matrix42.Blob.Contracts;
using Matrix42.WebApi.Contracts;
using System.Runtime.InteropServices;
namespace Imagoverum.FleetManagement.Services
{
[RoutePrefix("api/car")]
public class CarController(IBlobManager blobManager) : ApiController
{
[HttpGet, Route("geoposition")]
public GeoLocation GetLocation(string region = "world")
{
return GeoLocation.GetRandom(region);
}
[HttpPost, Route("test")]
public string TestCar()
{
var blobState = blobManager.IsBlobConfigured()
? "With Configured Cloud"
: "Without Configured Cloud";
return CarTester.IsCarWorkingProperly()
? $"Car test successful completed ({blobState}) on {RuntimeInformation.OSDescription} environment at " + DateTime.UtcNow.ToString("o")
: $"Car test failed ({blobState}) on {RuntimeInformation.OSDescription} environment at " + DateTime.UtcNow.ToString("o");
}
[Route("error")]
[HttpGet]
public IHttpActionResult Throw()
{
throw new Exception("Boom! Unhandled!");
}
public class GeoLocation(double latitude, double longitude)
{
/// <summary>
/// Latitude in decimal degrees. Valid range: -90 to 90.
/// </summary>
public double Latitude { get; set; } = latitude;
/// <summary>
/// Longitude in decimal degrees. Valid range: -180 to 180.
/// </summary>
public double Longitude { get; set; } = longitude;
/// <summary>
/// Generates a random geographic location.
/// If a region is specified, limits the random coordinates within that region.
/// </summary>
/// <param name="region">Optional region: "europe", "asia", "north-america", "south-america", "africa", "australia", or "world" (default).</param>
public static GeoLocation GetRandom(string region = "world")
{
var rnd = new Random();
// Define approximate bounding boxes for major regions
(double latMin, double latMax, double lonMin, double lonMax) bounds = region.ToLower() switch
{
"europe" => (35, 71, -25, 45),
"asia" => (-10, 81, 25, 180),
"north-america" => (5, 83, -170, -30),
"south-america" => (-56, 13, -82, -34),
"africa" => (-35, 37, -18, 52),
"australia" => (-47, -10, 110, 155),
_ => (-90, 90, -180, 180) // whole world
};
double latitude = rnd.NextDouble() * (bounds.latMax - bounds.latMin) + bounds.latMin;
double longitude = rnd.NextDouble() * (bounds.lonMax - bounds.lonMin) + bounds.lonMin;
return new GeoLocation(latitude, longitude);
}
public override string ToString() => $"Lat: {Latitude:F5}, Lon: {Longitude:F5}";
}
}
}

View File

@@ -0,0 +1,45 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<OutputType>Library</OutputType>
<!-- Build can target either RID from CLI/YAML; locally we'll build both via the target below -->
<RuntimeIdentifiers>win-x64;linux-x64</RuntimeIdentifiers>
<AppendRuntimeIdentifierToOutputPath>true</AppendRuntimeIdentifierToOutputPath>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<LangVersion>latestmajor</LangVersion>
<!-- Where to mirror outputs (project-relative, stable in CI & local) -->
<!-- Adjust ..\..\..\ if your folder depth differs -->
<BasePackageAssembliesDir>$(MSBuildProjectDirectory)\..\..\..\BasePackage\Assemblies\</BasePackageAssembliesDir>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Imagoverum.FleetManagement.BizLogic\Imagoverum.FleetManagement.BizLogic.csproj" />
</ItemGroup>
<ItemGroup>
<Reference Include="Matrix42.Blob.Contracts">
<HintPath>..\..\..\..\Root\bin\Matrix42.Blob.Contracts.dll</HintPath>
</Reference>
<Reference Include="Matrix42.WebApi.Contracts">
<HintPath>..\..\..\..\Root\bin\Matrix42.WebApi.Contracts.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<None Update="Imagoverum.FleetManagement.Services.dll.host.config">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<PropertyGroup>
<M42ExtensionId>22be0879-4587-cf4b-333c-08de16408acb</M42ExtensionId>
<M42AssemblyPattern>$(MSBuildProjectName)*.*</M42AssemblyPattern>
</PropertyGroup>
<Import Project="..\..\..\Extension.Assemblies.targets" Condition="Exists('..\..\..\Extension.Assemblies.targets')" />
</Project>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8" ?>
<host xmlns="urn:m42/host.config">
<modules>
<module assembly="Matrix42.DataLayer.Persistence" />
<module assembly="Matrix42.Blob.BizLogic" />
</modules>
<sections></sections>
</host>

View File

@@ -0,0 +1,3 @@
REM %robodir%robocopy %targetDir% %basedir%BasePackage\Assemblies\ Imagoverum.FleetManagement*.* /s %roboOptions%
exit /b 0

View File

@@ -0,0 +1,12 @@
{
"profiles": {
"Matrix42.Imagoverum.FleetManagement.Services": {
"commandName": "Project",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "https://localhost:63088;http://localhost:63089"
}
}
}

View File

@@ -0,0 +1,50 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.14.36310.24
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Imagoverum.FleetManagement.Services", "Imagoverum.FleetManagement.Services\Imagoverum.FleetManagement.Services.csproj", "{A0E718BE-9056-A2E9-1301-C9F9704ECDF3}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SolutionItems", "SolutionItems", "{02EA681E-C7D8-13C7-8484-4AC65E1B71E8}"
ProjectSection(SolutionItems) = preProject
BuildEvent.cmd = BuildEvent.cmd
..\..\azure-pipelines-ci.yaml = ..\..\azure-pipelines-ci.yaml
..\..\Extension.Assemblies.targets = ..\..\Extension.Assemblies.targets
..\..\TeamBuildEvent.cmd = ..\..\TeamBuildEvent.cmd
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Imagoverum.FleetManagement.BizLogic", "Imagoverum.FleetManagement.BizLogic\Imagoverum.FleetManagement.BizLogic.csproj", "{E72B0A73-F3EC-46F6-8464-D6C891DCA67C}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{FE1C91D1-E02F-4A92-B4E6-23DC3DCDF5D1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Imagoverum.FleetManagement.Tests", "Tests\Imagoverum.FleetManagement.Tests\Imagoverum.FleetManagement.Tests.csproj", "{E9179E67-0E80-4E87-A0D7-B537252E15A5}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{A0E718BE-9056-A2E9-1301-C9F9704ECDF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A0E718BE-9056-A2E9-1301-C9F9704ECDF3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A0E718BE-9056-A2E9-1301-C9F9704ECDF3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A0E718BE-9056-A2E9-1301-C9F9704ECDF3}.Release|Any CPU.Build.0 = Release|Any CPU
{E72B0A73-F3EC-46F6-8464-D6C891DCA67C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E72B0A73-F3EC-46F6-8464-D6C891DCA67C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E72B0A73-F3EC-46F6-8464-D6C891DCA67C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E72B0A73-F3EC-46F6-8464-D6C891DCA67C}.Release|Any CPU.Build.0 = Release|Any CPU
{E9179E67-0E80-4E87-A0D7-B537252E15A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E9179E67-0E80-4E87-A0D7-B537252E15A5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E9179E67-0E80-4E87-A0D7-B537252E15A5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E9179E67-0E80-4E87-A0D7-B537252E15A5}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{E9179E67-0E80-4E87-A0D7-B537252E15A5} = {FE1C91D1-E02F-4A92-B4E6-23DC3DCDF5D1}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {16277959-19C9-48D5-BD44-3C53F3DDB02E}
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,19 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<LangVersion>latest</LangVersion>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
<PackageReference Include="MSTest" Version="3.6.4" />
</ItemGroup>
<ItemGroup>
<Using Include="Microsoft.VisualStudio.TestTools.UnitTesting" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1 @@
[assembly: Parallelize(Scope = ExecutionScope.MethodLevel)]

View File

@@ -0,0 +1,11 @@
namespace Imagoverum.FleetManagement.Tests
{
[TestClass]
public sealed class Test1
{
[TestMethod]
public void TestMethod1()
{
}
}
}

View File

@@ -0,0 +1,104 @@
rem ****************************************
rem Local variables section
rem ****************************************
setlocal
set projectDir=%~s2
set targetPath=%~s3
set targetDir=%~dps3
set targetName=%~n3
set targetExt=%~x3
set teamProject=%~4
@echo %projectDir%
@echo %targetPath%
@echo %targetDir%
@echo %targetName%
@echo %targetExt%
@echo %teamProject%
set basedir=%~dps0
set rootDir=%basedir%..\Root\
set tools=%basedir%build\tools\
set inetDir=%basedir%..\Root\web\
set wmDir=%basedir%..\Root\wm\
set svcDir=%basedir%..\Root\svc\
set roboOptions=/NFL /NDL /NP /NJH /A-:R
set roboDir=%basedir%
set linkerPath=%basedir%..\Root\Libraries\
set packagesRepository=%linkerPath%nuget.repository\Matrix42\
set packages=%basedir%nuget.packages\
set outPackages=%basedir%_packages\
set supportedCultures=EN DE FR ES NL PL PT IT
SET project=%projectDir%
IF %project:~-1%==\ SET project=%project:~0,-1%
rem ****************************************
rem Pre build event section
rem ****************************************
if %1==/pre (
rem Start resource convertion if .hresx file exists
rem
if exist "%projectDir%Resources.hresx" (
"%rootDir%bin\ResConverter.exe" -resx "%projectDir%Resources.hresx" "%projectDir%Resources.resx"
if errorlevel 1 goto EndError)
if not "%~5"=="/skipVersionCopy" (
rem Copy AssemblyInfoProduct.cs to the project directory
rem
if exist "%projectDir%AssemblyInfoProduct.cs" (
attrib -R "%projectDir%AssemblyInfoProduct.cs" )
if exist "%baseDir%AssemblyInfoProduct.cs" (
copy "%baseDir%AssemblyInfoProduct.cs" "%projectDir%AssemblyInfoProduct.cs" )
)
if exist "%basedir%Build\Analysis\Matrix42.ruleset" (
copy "%baseDir%Build\Analysis\Matrix42.ruleset" "%projectDir%Matrix42.ruleset" )
rem Call project's PreBuild.cmd file if exists
rem
if exist "%projectDir%PreBuild.cmd" (
call "%projectDir%PreBuild.cmd"
if errorlevel 1 goto EndError)
goto EndOK
)
rem ****************************************
rem Post build event section
rem ****************************************
if %1==/post (
rem Start building sattelite assemblies if .hresx file exists
rem
if exist "%projectDir%Resources.hresx" (
"%rootDir%bin\ResConverter.exe" -build "%targetPath%" "%projectDir%..\Resources" "%teamProject%" "%project%" "%basedir%..\Root"
if errorlevel 1 goto EndError)
rem Call project's PostBuild.cmd file if exists
rem
if exist "%projectDir%PostBuild.cmd" (
call "%projectDir%PostBuild.cmd"
if errorlevel 1 goto EndError)
goto EndOK
)
echo Invalid argument switch. Possible values are: "/pre" or "/post"
goto EndError
:EndError
exit 1
:EndOK
exit 0

View File

@@ -0,0 +1,120 @@
# azure-pipelines.yml
pr: none
trigger:
branches:
include:
- main
- dev_initialrequest
paths:
include:
- 'Solutions/**'
parameters:
- name: BaseDir
type: string
default: $(Build.SourcesDirectory)
- name: SuiteRarShare
type: string
default: '\\m42-sto-ffm01.matrix42.de\ServiceStore\Builds\TitanLinux Continuous'
- name: RepoName
type: string
default: 'ImagoverumFleetManagement'
variables:
- name: BaseDir
value: ${{ parameters.BaseDir }}
- name: ExtensionTarget
value: ${{ parameters.BaseDir }}/${{ parameters.RepoName }}
- name: BackendDir
value: $(ExtensionTarget)/Solutions/FleetManagement
- name: SolutionPath
value: $(BackendDir)/Imagoverum.FleetManagement.sln
# Tests
- name: TestsDir
value: $(ExtensionTarget)/Solutions/FleetManagement
- name: TestProject
value: Imagoverum.FleetManagement.Tests/Imagoverum.FleetManagement.Tests.csproj
stages:
- stage: Build
displayName: 'Build ${{ parameters.RepoName }}'
jobs:
- job: Build_Backend
displayName: 'Build, Test, Package'
pool:
name: M42BPM
demands:
- DotNetFramework
- vstest
steps:
- task: CopyFiles@2
displayName: 'Copy extension $(ExtensionTarget) source files'
inputs:
SourceFolder: '${{ parameters.BaseDir }}'
Contents: '**'
TargetFolder: '$(ExtensionTarget)'
- task: CopyFiles@2
displayName: 'Copy suite.rar'
inputs:
SourceFolder: '${{ parameters.SuiteRarShare }}'
Contents: 'suite.rar'
TargetFolder: '${{ parameters.BaseDir }}'
OverWrite: true
- task: ExtractFiles@1
displayName: 'Extract suite.rar'
inputs:
archiveFilePatterns: '${{ parameters.BaseDir }}/suite.rar'
destinationFolder: '${{ parameters.BaseDir }}'
cleanDestinationFolder: false
overwriteExistingFiles: true
- task: DotNetCoreCLI@2
displayName: 'Restore $(ExtensionTarget) solution'
inputs:
command: 'restore'
projects: '$(SolutionPath)'
# Optional: override default RIDs globally if needed: -p:M42DefaultRids=win-x64;linux-x64
- task: DotNetCoreCLI@2
displayName: 'Build FleetManagement solution'
inputs:
command: 'build'
projects: '$(SolutionPath)'
arguments: >
-c Release
--no-restore
-p:SolutionDir=$(BackendDir)\
- task: DotNetCoreCLI@2
displayName: 'Test (net8.0)'
inputs:
command: 'test'
projects: '$(TestsDir)/$(TestProject)'
arguments: '-c Release -f net8.0 --no-build'
- task: ArchiveFiles@2
displayName: 'Zip $(ExtensionTarget) BasePackage'
inputs:
rootFolderOrFile: '$(ExtensionTarget)/BasePackage'
includeRootFolder: false
archiveType: 'zip'
sevenZipCompression: 'normal'
archiveFile: '$(Build.ArtifactStagingDirectory)/${{ parameters.RepoName }}_1.0.zip'
replaceExistingArchive: true
- task: PublishPipelineArtifact@1
displayName: 'Publish ${{ parameters.RepoName }}_1.0.zip'
inputs:
targetPath: '$(Build.ArtifactStagingDirectory)/${{ parameters.RepoName }}_1.0.zip'
artifact: '${{ parameters.RepoName }}'

Binary file not shown.

View File

@@ -0,0 +1,17 @@
product: "M42 Enterprise" # The project or platform this service belongs to
service_name: "Fleet Management" # Name of the service
description: "The ESMP Demo extension provides a boilerplate foundation that can be reused when building new extensions" # A brief description of the service
owner:
name: "ESMP" # Owner of the service (could be an individual or team)
email: "vadim.zinoviev@matrix42.com" # Contact email for the owner
pipelines:
pull_request_pipeline: "N/A" # URL to the pipeline that runs for pull requests
ci_pipeline: "N/A" # URL to the continuous integration (CI) pipeline
cd_pipeline: "N/A" # URL to the continuous delivery (CD) pipeline
links:
repository: "https://dev.azure.com/matrix42/DWP/_git/ImagoverumFleetManagement"
documentation: "https://dev.azure.com/matrix42/DWP/_git/ImagoverumFleetManagement?path=/README.md"
backlog: "https://dev.azure.com/matrix42/BPM/_backlogs/backlog/Titan"