diff --git a/ImagoverumFleetManagement/.gitignore b/ImagoverumFleetManagement/.gitignore
new file mode 100644
index 0000000..0f6cc52
--- /dev/null
+++ b/ImagoverumFleetManagement/.gitignore
@@ -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/
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/AzurePipelines/build.yaml b/ImagoverumFleetManagement/AzurePipelines/build.yaml
new file mode 100644
index 0000000..55b9969
--- /dev/null
+++ b/ImagoverumFleetManagement/AzurePipelines/build.yaml
@@ -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'
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/AzurePipelines/release.yml b/ImagoverumFleetManagement/AzurePipelines/release.yml
new file mode 100644
index 0000000..d5d1246
--- /dev/null
+++ b/ImagoverumFleetManagement/AzurePipelines/release.yml
@@ -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
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/AzurePipelines/templates/build-backend.yml b/ImagoverumFleetManagement/AzurePipelines/templates/build-backend.yml
new file mode 100644
index 0000000..fa75797
--- /dev/null
+++ b/ImagoverumFleetManagement/AzurePipelines/templates/build-backend.yml
@@ -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'
diff --git a/ImagoverumFleetManagement/AzurePipelines/templates/generate-package.yml b/ImagoverumFleetManagement/AzurePipelines/templates/generate-package.yml
new file mode 100644
index 0000000..58fcce9
--- /dev/null
+++ b/ImagoverumFleetManagement/AzurePipelines/templates/generate-package.yml
@@ -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
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/AzurePipelines/templates/update-package-version.yml b/ImagoverumFleetManagement/AzurePipelines/templates/update-package-version.yml
new file mode 100644
index 0000000..b22fd07
--- /dev/null
+++ b/ImagoverumFleetManagement/AzurePipelines/templates/update-package-version.yml
@@ -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 }}
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/install.xml b/ImagoverumFleetManagement/BasePackage/install.xml
new file mode 100644
index 0000000..141ca1d
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/install.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/install/02-01-0010 FK_SPSUserClassBaseIMGVCarClass_CarsDriver_create.relation b/ImagoverumFleetManagement/BasePackage/install/02-01-0010 FK_SPSUserClassBaseIMGVCarClass_CarsDriver_create.relation
new file mode 100644
index 0000000..e7904ec
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/install/02-01-0010 FK_SPSUserClassBaseIMGVCarClass_CarsDriver_create.relation
@@ -0,0 +1,24 @@
+
+
+
+ 4216de08-a5f4-d065-bcf0-b236340509e1
+ FK_SPSUserClassBaseIMGVCarClass_CarsDriver
+ 0
+ 0
+ 3
+
+ 4216de08-e8f4-f528-bcf0-b236340509ff
+ Cars
+ 7c9df8f2-d564-47ca-8fd9-92fcbed7b58b
+ Cars
+
+
+ 4216de08-e8f4-9d77-bcf0-b23634050a00
+ Driver
+ 4216de08-b1f4-cc7a-bcf0-b236340509e8
+ Driver
+
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/install/02-01-0010 IMGVCarClass_create.class b/ImagoverumFleetManagement/BasePackage/install/02-01-0010 IMGVCarClass_create.class
new file mode 100644
index 0000000..3a033cf
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/install/02-01-0010 IMGVCarClass_create.class
@@ -0,0 +1,76 @@
+
+
+
+ 4216de08-b1f4-cc7a-bcf0-b236340509e8
+ IMGVCarClass
+ 0
+
+ DisplayExpression
+ Name
+
+ Car
+ 4
+ 13
+ 1
+
+ 4216de08-a5f4-d065-bcf0-b236340509e5
+ FuelCardNumber
+ 0
+ Fuel Card Number
+ 1
+ 0
+ 0
+ 1
+ 0
+ 100
+
+
+ 4216de08-a5f4-d065-bcf0-b236340509e3
+ Description
+ 0
+ Description
+ 1
+ 0
+ 0
+ 1
+ 8
+ 0
+
+
+ 4216de08-a5f4-d065-bcf0-b236340509e2
+ Name
+ 0
+ Name
+ 1
+ 0
+ 0
+ 0
+ 0
+ 100
+
+
+ 4416de08-338d-ef78-bcf0-b2363405156f
+ FuelCardPinCode
+ 0
+ Fuel Card PIN Code
+ 1
+ 0
+ 0
+ 1
+ 0
+ 10
+
+
+ 4416de08-338d-ef78-bcf0-b23634051570
+ LicensePlate
+ 0
+ License Plate
+ 1
+ 0
+ 0
+ 0
+ 0
+ 10
+
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/install/02-01-0020 IMGVCarType_create.type b/ImagoverumFleetManagement/BasePackage/install/02-01-0020 IMGVCarType_create.type
new file mode 100644
index 0000000..edd2503
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/install/02-01-0020 IMGVCarType_create.type
@@ -0,0 +1,43 @@
+
+
+
+ 4216de08-0af5-cdd9-bcf0-b23634050a0c
+ IMGVCarType
+ 0
+
+ AddActionPosition
+ 0
+
+
+ UUXIcon
+ directions_car
+
+
+ ArchivingEnabled
+ False
+
+
+ StateGroup
+ 0
+
+
+ UseUserCurrency
+ False
+
+
+ UUXColor
+ #FFFEFE
+
+
+ ArchiveCleanupEnabled
+ False
+
+
+ DisplayExpression
+ Name
+
+ Car
+ 4
+ 4216de08-b1f4-cc7a-bcf0-b236340509e8
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/install/02-01-0030 PDRDataQueryType.dat b/ImagoverumFleetManagement/BasePackage/install/02-01-0030 PDRDataQueryType.dat
new file mode 100644
index 0000000..fc88e66
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/install/02-01-0030 PDRDataQueryType.dat
@@ -0,0 +1,81 @@
+
+
+ 5faaf635-4a13-ca1e-525e-08de1643906c
+
+
+ 6c7cf1c0-d01f-4466-9fee-b77319e0dfe6
+ Name
+ Name
+ 5faaf635-4a13-ca1e-525e-08de1643906c
+ 1
+ 0
+ 30
+ 0
+ 0
+ 200
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+
+
+ 1dc05f4c-1c0e-4c48-9af5-eb4c29e4f0ec
+ LicensePlate
+ LicensePlate
+ 5faaf635-4a13-ca1e-525e-08de1643906c
+ 1
+ 0
+ 30
+ 0
+ 0
+ 150
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+
+
+ 5aba989e-4ad4-4096-ba06-edc4eb126a94
+ Driver
+ Driver
+ 5faaf635-4a13-ca1e-525e-08de1643906c
+ 1
+ 0
+ 40
+ 0
+ 0
+ 200
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+
+
+ 4316de08-6d90-0947-bcf0-b23634050c79
+ Car
+ IMGVCarClass
+ Car
+ 5faaf635-4a13-ca1e-525e-08de1643906c
+ 1
+ d
+ 0
+ 0
+ 60
+ fa9039b9-55ad-4a95-aba5-0447bbaca677
+ 0
+
+
+ 4316de08-6d90-0947-bcf0-b23634050c78
+ 1
+ 1
+ 0
+ 0
+ 5faaf635-4a13-ca1e-525e-08de1643906c
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/install/02-01-0040 PDRContentWidgetTemplateType_Car Dataset View.dat b/ImagoverumFleetManagement/BasePackage/install/02-01-0040 PDRContentWidgetTemplateType_Car Dataset View.dat
new file mode 100644
index 0000000..85a054f
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/install/02-01-0040 PDRContentWidgetTemplateType_Car Dataset View.dat
@@ -0,0 +1,9 @@
+
+
+ cc987070-c9ee-cd4c-c63b-08de1643908f
+
+
+ cc987070-c9ee-cd4c-c63b-08de1643908f
+ 4316de08-9090-b731-bcf0-b23634050cb8
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/install/02-01-0040 PDRContentWidgetTypeList_Car Dataset View.dat b/ImagoverumFleetManagement/BasePackage/install/02-01-0040 PDRContentWidgetTypeList_Car Dataset View.dat
new file mode 100644
index 0000000..5ada40e
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/install/02-01-0040 PDRContentWidgetTypeList_Car Dataset View.dat
@@ -0,0 +1,46 @@
+
+
+ 74005178-4b9e-c4f2-8dd7-08de1643908c
+
+
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ 0
+ IMGVCarClass
+ agendaWeek
+ 4316de08-6d90-0947-bcf0-b23634050c79
+ 1
+ 74005178-4b9e-c4f2-8dd7-08de1643908c
+ 0
+
+ 0
+ 0
+ 0
+
+ IMGVCarType
+ 0
+ 1
+ 0
+ 0
+ 0
+ 4316de08-8d90-ea54-bcf0-b23634050c9d
+ 1
+ 0
+
+
+ 0
+ 1
+ Car Dataset View
+ 4316de08-8d90-ea54-bcf0-b23634050c9e
+ 0
+ 0
+ Car Dataset View
+ 1
+ 74005178-4b9e-c4f2-8dd7-08de1643908c
+ 4316de08-9090-b731-bcf0-b23634050cb8
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/install/02-01-0050 PDRContentWidgetTemplateType_Car Preview.dat b/ImagoverumFleetManagement/BasePackage/install/02-01-0050 PDRContentWidgetTemplateType_Car Preview.dat
new file mode 100644
index 0000000..e607691
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/install/02-01-0050 PDRContentWidgetTemplateType_Car Preview.dat
@@ -0,0 +1,11 @@
+
+
+ 8518f453-0388-c949-07f4-08de164390a5
+
+
+ 8518f453-0388-c949-07f4-08de164390a5
+ {"Sources":[],"Properties":[],"ExtraProperties":[],"entityName":"IMGVCarType","widgetId":"a08ca017-adef-cdb8-e20a-08de164390a2"}
+ {"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"}]}
+ 4316de08-a590-0b2f-bcf0-b23634050d02
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/install/02-01-0050 PDRContentWidgetTemplateViewType_Car Preview.dat b/ImagoverumFleetManagement/BasePackage/install/02-01-0050 PDRContentWidgetTemplateViewType_Car Preview.dat
new file mode 100644
index 0000000..b84c121
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/install/02-01-0050 PDRContentWidgetTemplateViewType_Car Preview.dat
@@ -0,0 +1,26 @@
+
+
+ 1
+ 0
+ 1
+
+ {"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"}]}
+
+ 3
+ GeneralView
+ 4316de08-a590-0b2f-bcf0-b23634050d02
+ 7bff4162-412a-4566-8106-3ab5ce8337bc
+ 0
+ General
+ a7d73401-b3d5-e711-1187-7824af394f88
+
+
+ 1
+ 7bff4162-412a-4566-8106-3ab5ce8337bc
+ 0
+ 4316de08-db90-0aac-bcf0-b23634050d64
+ 0
+ 0
+
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/install/02-01-0050 PDRContentWidgetTypeObjectDetails_Car Preview.dat b/ImagoverumFleetManagement/BasePackage/install/02-01-0050 PDRContentWidgetTypeObjectDetails_Car Preview.dat
new file mode 100644
index 0000000..8cf028d
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/install/02-01-0050 PDRContentWidgetTypeObjectDetails_Car Preview.dat
@@ -0,0 +1,38 @@
+
+
+ a08ca017-adef-cdb8-e20a-08de164390a2
+
+
+ 1
+ a08ca017-adef-cdb8-e20a-08de164390a2
+ 0
+ 4316de08-a390-f4aa-bcf0-b23634050ce6
+ 1
+ 0
+
+
+ 0
+ 0
+ 4316de08-a390-f4aa-bcf0-b23634050ce7
+ 0
+ 0
+ IMGVCarType
+ 0
+ 0
+ 0
+ 0
+ a08ca017-adef-cdb8-e20a-08de164390a2
+
+
+ 0
+ 1
+ Car Preview
+ 4316de08-a390-f4aa-bcf0-b23634050ce8
+ 0
+ a08ca017-adef-cdb8-e20a-08de164390a2
+ 0
+ Car Preview
+ 1
+ 4316de08-a590-0b2f-bcf0-b23634050d02
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/install/02-01-0060 PDRContentWidgetTemplateType_Car Dialog.dat b/ImagoverumFleetManagement/BasePackage/install/02-01-0060 PDRContentWidgetTemplateType_Car Dialog.dat
new file mode 100644
index 0000000..a096cee
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/install/02-01-0060 PDRContentWidgetTemplateType_Car Dialog.dat
@@ -0,0 +1,11 @@
+
+
+ 44528d0f-5e9b-c45a-059d-08de164390e7
+
+
+ 44528d0f-5e9b-c45a-059d-08de164390e7
+ {"Sources":[],"Properties":[],"ExtraProperties":[],"entityName":"IMGVCarType","widgetId":"c971f302-ae30-cf2a-9f25-08de164390e5"}
+ {"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"}]}
+ 4316de08-e790-562c-bcf0-b23634050db1
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/install/02-01-0060 PDRContentWidgetTemplateViewType_Car Dialog.dat b/ImagoverumFleetManagement/BasePackage/install/02-01-0060 PDRContentWidgetTemplateViewType_Car Dialog.dat
new file mode 100644
index 0000000..f21093f
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/install/02-01-0060 PDRContentWidgetTemplateViewType_Car Dialog.dat
@@ -0,0 +1,26 @@
+
+
+ 1
+ 0
+ 1
+
+ {"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"}]}
+
+ 4
+ GeneralView
+ 4316de08-e790-562c-bcf0-b23634050db1
+ 02a96712-7b32-4508-acd5-e26c7efd0ef8
+ 0
+ General
+ a7d73401-b3d5-e711-1187-7824af394f88
+
+
+ 1
+ 02a96712-7b32-4508-acd5-e26c7efd0ef8
+ 0
+ 4316de08-f390-7799-bcf0-b23634050e19
+ 0
+ 0
+
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/install/02-01-0060 PDRContentWidgetTypeDialog_Car Dialog.dat b/ImagoverumFleetManagement/BasePackage/install/02-01-0060 PDRContentWidgetTypeDialog_Car Dialog.dat
new file mode 100644
index 0000000..fdbb51a
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/install/02-01-0060 PDRContentWidgetTypeDialog_Car Dialog.dat
@@ -0,0 +1,38 @@
+
+
+ c971f302-ae30-cf2a-9f25-08de164390e5
+
+
+ 1
+ 0
+ 4316de08-e690-1f03-bcf0-b23634050d95
+ c971f302-ae30-cf2a-9f25-08de164390e5
+ 1
+ 0
+
+
+ 0
+ 0
+ 4316de08-e690-1f03-bcf0-b23634050d96
+ 0
+ 0
+ IMGVCarType
+ 0
+ 0
+ 0
+ c971f302-ae30-cf2a-9f25-08de164390e5
+ 0
+
+
+ c971f302-ae30-cf2a-9f25-08de164390e5
+ 0
+ 1
+ Car Dialog
+ 4316de08-e690-1f03-bcf0-b23634050d97
+ 0
+ 0
+ Car Dialog
+ 1
+ 4316de08-e790-562c-bcf0-b23634050db1
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/install/02-01-0070 PDRNavigationItemType.dat b/ImagoverumFleetManagement/BasePackage/install/02-01-0070 PDRNavigationItemType.dat
new file mode 100644
index 0000000..bd743ec
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/install/02-01-0070 PDRNavigationItemType.dat
@@ -0,0 +1,39 @@
+
+
+ 4346cb3d-6b16-ce14-585e-08de164390f6
+
+
+ 4316de08-f690-44b7-bcf0-b23634050e4a
+ local_car_wash
+ 4346cb3d-6b16-ce14-585e-08de164390f6
+ Car
+ Car
+ Car
+ 10009
+ 4316de08-8d90-ea54-bcf0-b23634050c9e
+ 0
+ 0
+ 0
+ D
+ 560aac3d-1e3c-e511-14a9-00248cfe5192
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ 4316de08-f690-44b7-bcf0-b23634050e4b
+ 4346cb3d-6b16-ce14-585e-08de164390f6
+
+
+ 4316de08-f690-44b7-bcf0-b23634050e49
+ 1
+ 1
+ 4346cb3d-6b16-ce14-585e-08de164390f6
+ 0
+ 0
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/install/02-01-0080 IMGVCarType_behavior_create.type b/ImagoverumFleetManagement/BasePackage/install/02-01-0080 IMGVCarType_behavior_create.type
new file mode 100644
index 0000000..fb80f91
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/install/02-01-0080 IMGVCarType_behavior_create.type
@@ -0,0 +1,13 @@
+
+
+
+ 4216de08-0af5-cdd9-bcf0-b23634050a0c
+ IMGVCarType
+ 0
+ update
+
+ CustomBehavior
+ Imagoverum.FleetManagement.BizLogic.CarBehavior, Imagoverum.FleetManagement.BizLogic.dll|10
+
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/install/02-01-0090 PLSLServiceTypeWebAPI.dat b/ImagoverumFleetManagement/BasePackage/install/02-01-0090 PLSLServiceTypeWebAPI.dat
new file mode 100644
index 0000000..80dd9d8
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/install/02-01-0090 PLSLServiceTypeWebAPI.dat
@@ -0,0 +1,22 @@
+
+
+ 16e0bf04-39f0-c60e-b77e-08de1ba1de26
+
+
+ a11bde08-8de5-52b2-4bad-36de8000826b
+ Car
+ Imagoverum.FleetManagement.Services.CarController
+ 1
+ Imagoverum.FleetManagement.Services
+ 16e0bf04-39f0-c60e-b77e-08de1ba1de26
+ api/car
+
+
+ a11bde08-8de5-52b2-4bad-36de8000826a
+ 0
+ 0
+ 0
+ 16e0bf04-39f0-c60e-b77e-08de1ba1de26
+ 0
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/install/02-01-0100 PLSLWebServiceOperationType.dat b/ImagoverumFleetManagement/BasePackage/install/02-01-0100 PLSLWebServiceOperationType.dat
new file mode 100644
index 0000000..5c09fdf
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/install/02-01-0100 PLSLWebServiceOperationType.dat
@@ -0,0 +1,25 @@
+
+
+ bfa5904a-f817-c768-3ef0-08de1ba1ed15
+ {"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"}}
+ {"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"}}
+ GetLocation(region)
+ geoposition
+
+ 7660e907-769c-e711-a182-f079595b3ec7
+ a11bde08-8de5-52b2-4bad-36de8000826b
+ 0
+ 1
+ 0
+ 0
+ 0
+
+
+ a11bde08-16ed-6150-4bad-36de800082f1
+ 0
+ 1
+ 0
+ bfa5904a-f817-c768-3ef0-08de1ba1ed15
+ 0
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/install/02-01-0110 PLSLWebServiceOperationType.dat b/ImagoverumFleetManagement/BasePackage/install/02-01-0110 PLSLWebServiceOperationType.dat
new file mode 100644
index 0000000..14e1fab
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/install/02-01-0110 PLSLWebServiceOperationType.dat
@@ -0,0 +1,25 @@
+
+
+ f34fbf71-1b34-c3a3-25bc-08de1ba1ed4a
+ {"UsedTypes":{},"ContractDescriptor":{"ReturnCountType":"NotProvided","Documentation":"Return value","Title":null,"Paths":null,"Type":"StringType"}}
+ {"UsedTypes":{},"ContractDescriptor":{"ReferenceTo":null,"ReferenceFilter":null,"Required":false,"Obsolete":false,"MaxLength":0,"ResourceKey":null,"Documentation":null,"Title":null,"Paths":null,"Type":"RequestContract"}}
+ TestCar()
+ test
+
+ 7660e907-769c-e711-a182-f079595b3ec7
+ a11bde08-8de5-52b2-4bad-36de8000826b
+ 16
+ 2
+ 0
+ 0
+ 0
+
+
+ a11bde08-4bed-410b-4bad-36de80008340
+ 0
+ 1
+ 0
+ f34fbf71-1b34-c3a3-25bc-08de1ba1ed4a
+ 0
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/install/02-01-0120 PLSLWebServiceOperationType.dat b/ImagoverumFleetManagement/BasePackage/install/02-01-0120 PLSLWebServiceOperationType.dat
new file mode 100644
index 0000000..dbbf2d5
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/install/02-01-0120 PLSLWebServiceOperationType.dat
@@ -0,0 +1,25 @@
+
+
+ 1cab778c-9182-cfbf-b07f-08de1ba1ed5d
+ {"UsedTypes":{},"ContractDescriptor":{"ReturnCountType":"NotProvided","Documentation":"Return value","Title":null,"Paths":null,"Type":"Matrix42_WebApi_Contracts_IHttpActionResult"}}
+ {"UsedTypes":{},"ContractDescriptor":{"ReferenceTo":null,"ReferenceFilter":null,"Required":false,"Obsolete":false,"MaxLength":0,"ResourceKey":null,"Documentation":null,"Title":null,"Paths":null,"Type":"RequestContract"}}
+ Throw()
+ error
+
+ 7660e907-769c-e711-a182-f079595b3ec7
+ a11bde08-8de5-52b2-4bad-36de8000826b
+ 0
+ 1
+ 0
+ 0
+ 0
+
+
+ a11bde08-5eed-ba4c-4bad-36de8000838f
+ 0
+ 1
+ 0
+ 1cab778c-9182-cfbf-b07f-08de1ba1ed5d
+ 0
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/install/02-01-0130 PDRContentWidgetTemplateType_Car Geolocation Wizard.dat b/ImagoverumFleetManagement/BasePackage/install/02-01-0130 PDRContentWidgetTemplateType_Car Geolocation Wizard.dat
new file mode 100644
index 0000000..bb343b3
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/install/02-01-0130 PDRContentWidgetTemplateType_Car Geolocation Wizard.dat
@@ -0,0 +1,20 @@
+
+
+ e020e358-b683-c2e0-e36f-08de1bb164db
+
+
+ e020e358-b683-c2e0-e36f-08de1bb164db
+ {"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"}
+ {"Name":"layout-container1","ControlName":"mx-layout-container","Type":1,"Items":[],"Id":"591c2b52-18b9-1f81-9dea-801a4b9ab6a3","Properties":[{"Name":"name","Value":"layout-container1"}]}
+ b11bde08-dd64-eb42-4bad-36c2d401b862
+
+
+ dfe49c74-3347-4d27-b8b0-92c18ee0933c
+ {"Adds":[],"TypeChanges":{},"Removals":[],"Shifts":[],"ModifiedControls":[]}
+ 0
+ 1
+ 1
+ e020e358-b683-c2e0-e36f-08de1bb164db
+ {"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}}}}}
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/install/02-01-0130 PDRContentWidgetTemplateViewType_Car Geolocation Wizard.dat b/ImagoverumFleetManagement/BasePackage/install/02-01-0130 PDRContentWidgetTemplateViewType_Car Geolocation Wizard.dat
new file mode 100644
index 0000000..3b049fd
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/install/02-01-0130 PDRContentWidgetTemplateViewType_Car Geolocation Wizard.dat
@@ -0,0 +1,26 @@
+
+
+ view1
+ Check Geolocation
+ 1
+
+
+ 5
+ b11bde08-dd64-eb42-4bad-36c2d401b862
+ a7d73401-b3d5-e711-1187-7824af394f88
+ 1
+ 1
+ 0
+ {"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"}]}
+ 3f48bb91-5d63-ab40-0c15-4a2cef0a14c8
+
+
+ 1
+ 3f48bb91-5d63-ab40-0c15-4a2cef0a14c8
+ 0
+ b21bde08-24f6-5a91-4bad-36c2d401bd6d
+ 0
+ 0
+
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/install/02-01-0130 PDRContentWidgetTypeWizard_Car Geolocation Wizard.dat b/ImagoverumFleetManagement/BasePackage/install/02-01-0130 PDRContentWidgetTypeWizard_Car Geolocation Wizard.dat
new file mode 100644
index 0000000..8c582bf
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/install/02-01-0130 PDRContentWidgetTypeWizard_Car Geolocation Wizard.dat
@@ -0,0 +1,21 @@
+
+
+ 60888afb-e82d-c474-7f41-08de1bb145ee
+
+
+ Finish
+ 60888afb-e82d-c474-7f41-08de1bb145ee
+ b11bde08-a864-e976-4bad-36c2d401b842
+
+
+ 0
+ 1
+ b11bde08-a864-e976-4bad-36c2d401b843
+ 0
+ 60888afb-e82d-c474-7f41-08de1bb145ee
+ 0
+ Car Geolocation Wizard
+ 0
+ b11bde08-dd64-eb42-4bad-36c2d401b862
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/install/02-01-0140 PDRActionType.dat b/ImagoverumFleetManagement/BasePackage/install/02-01-0140 PDRActionType.dat
new file mode 100644
index 0000000..59df64a
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/install/02-01-0140 PDRActionType.dat
@@ -0,0 +1,36 @@
+
+
+ 80d1c2c1-99fd-c32c-aa66-08de1bb124dc
+
+
+ b11bde08-1d6d-a10c-4bad-36c2d401b905
+ b11bde08-a864-e976-4bad-36c2d401b843
+ 80d1c2c1-99fd-c32c-aa66-08de1bb124dc
+ 0
+ 0
+ 1
+ 1
+ IMGVCarType
+ Check Geolocation
+ location_on
+ check_geolocation
+ w
+ 1
+ 0
+ ci
+ 0
+ 0
+
+
+ b11bde08-1d6d-a10c-4bad-36c2d401b907
+ 80d1c2c1-99fd-c32c-aa66-08de1bb124dc
+
+
+ b11bde08-1d6d-a10c-4bad-36c2d401b906
+ 0
+ 0
+ 80d1c2c1-99fd-c32c-aa66-08de1bb124dc
+ 0
+ 0
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/package.json b/ImagoverumFleetManagement/BasePackage/package.json
new file mode 100644
index 0000000..4ae2202
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/package.json
@@ -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"
+}
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/uninstall.xml b/ImagoverumFleetManagement/BasePackage/uninstall.xml
new file mode 100644
index 0000000..86f23e0
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/uninstall.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483567 PLSLWebServiceOperationType_uninstall.del b/ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483567 PLSLWebServiceOperationType_uninstall.del
new file mode 100644
index 0000000..6c3d7af
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483567 PLSLWebServiceOperationType_uninstall.del
@@ -0,0 +1,9 @@
+
+
+
+
+ 1cab778c-9182-cfbf-b07f-08de1ba1ed5d
+ 7660e907-769c-e711-a182-f079595b3ec7
+
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483577 PDRNavigationItemType_uninstall.del b/ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483577 PDRNavigationItemType_uninstall.del
new file mode 100644
index 0000000..ddb2854
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483577 PDRNavigationItemType_uninstall.del
@@ -0,0 +1,9 @@
+
+
+
+
+ 4346cb3d-6b16-ce14-585e-08de164390f6
+ 7480d43f-a42f-e511-14a9-00248cfe5192
+
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483587 PLSLWebServiceOperationType_uninstall.del b/ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483587 PLSLWebServiceOperationType_uninstall.del
new file mode 100644
index 0000000..13dec3b
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483587 PLSLWebServiceOperationType_uninstall.del
@@ -0,0 +1,9 @@
+
+
+
+
+ f34fbf71-1b34-c3a3-25bc-08de1ba1ed4a
+ 7660e907-769c-e711-a182-f079595b3ec7
+
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483607 PLSLWebServiceOperationType_uninstall.del b/ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483607 PLSLWebServiceOperationType_uninstall.del
new file mode 100644
index 0000000..4548015
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483607 PLSLWebServiceOperationType_uninstall.del
@@ -0,0 +1,9 @@
+
+
+
+
+ bfa5904a-f817-c768-3ef0-08de1ba1ed15
+ 7660e907-769c-e711-a182-f079595b3ec7
+
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483617 PDRDataQueryType_uninstall.del b/ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483617 PDRDataQueryType_uninstall.del
new file mode 100644
index 0000000..c513c42
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483617 PDRDataQueryType_uninstall.del
@@ -0,0 +1,9 @@
+
+
+
+
+ 5faaf635-4a13-ca1e-525e-08de1643906c
+ e35932d0-de1f-e511-9282-60d819b5ce8f
+
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483627 PDRActionType_uninstall.del b/ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483627 PDRActionType_uninstall.del
new file mode 100644
index 0000000..b6e1a2e
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483627 PDRActionType_uninstall.del
@@ -0,0 +1,9 @@
+
+
+
+
+ 80d1c2c1-99fd-c32c-aa66-08de1bb124dc
+ 0fa6b97f-c362-e511-7882-bc5ff41a70c0
+
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483627 PLSLServiceTypeWebAPI_uninstall.del b/ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483627 PLSLServiceTypeWebAPI_uninstall.del
new file mode 100644
index 0000000..31f220b
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483627 PLSLServiceTypeWebAPI_uninstall.del
@@ -0,0 +1,9 @@
+
+
+
+
+ 16e0bf04-39f0-c60e-b77e-08de1ba1de26
+ a861b74e-5621-e511-d09e-00248cfe5192
+
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483637 PDRContentWidgetTypeWizard_Car Geolocation Wizard_uninstall.del b/ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483637 PDRContentWidgetTypeWizard_Car Geolocation Wizard_uninstall.del
new file mode 100644
index 0000000..3c1c672
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483637 PDRContentWidgetTypeWizard_Car Geolocation Wizard_uninstall.del
@@ -0,0 +1,17 @@
+
+
+
+
+ 3f48bb91-5d63-ab40-0c15-4a2cef0a14c8
+ a7d73401-b3d5-e711-1187-7824af394f88
+
+
+ 60888afb-e82d-c474-7f41-08de1bb145ee
+ b14a1212-4a68-e511-7882-bc5ff41a70c0
+
+
+ e020e358-b683-c2e0-e36f-08de1bb164db
+ 10d7630f-1b62-e511-6082-f079595b3ec7
+
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483647 UnregisterInstallScripts_Sobu.post b/ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483647 UnregisterInstallScripts_Sobu.post
new file mode 100644
index 0000000..83d9eef
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/uninstall/02-01-2147483647 UnregisterInstallScripts_Sobu.post
@@ -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'
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/uninstall_data.xml b/ImagoverumFleetManagement/BasePackage/uninstall_data.xml
new file mode 100644
index 0000000..3b588f2
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/uninstall_data.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/uninstall_data/02-01-2147483627 IMGVCarType_create_uninstall.type b/ImagoverumFleetManagement/BasePackage/uninstall_data/02-01-2147483627 IMGVCarType_create_uninstall.type
new file mode 100644
index 0000000..ddbcaf0
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/uninstall_data/02-01-2147483627 IMGVCarType_create_uninstall.type
@@ -0,0 +1,8 @@
+
+
+
+ 4216de08-0af5-cdd9-bcf0-b23634050a0c
+ IMGVCarType
+ delete
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/uninstall_data/02-01-2147483637 IMGVCarClass_create_uninstall.class b/ImagoverumFleetManagement/BasePackage/uninstall_data/02-01-2147483637 IMGVCarClass_create_uninstall.class
new file mode 100644
index 0000000..ffe84a9
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/uninstall_data/02-01-2147483637 IMGVCarClass_create_uninstall.class
@@ -0,0 +1,8 @@
+
+
+
+ 4216de08-b1f4-cc7a-bcf0-b236340509e8
+ IMGVCarClass
+ delete
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/uninstall_data/02-01-2147483646 IMGVCarType_behavior_create_uninstall.type b/ImagoverumFleetManagement/BasePackage/uninstall_data/02-01-2147483646 IMGVCarType_behavior_create_uninstall.type
new file mode 100644
index 0000000..d230921
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/uninstall_data/02-01-2147483646 IMGVCarType_behavior_create_uninstall.type
@@ -0,0 +1,13 @@
+
+
+
+ 4216de08-0af5-cdd9-bcf0-b23634050a0c
+ IMGVCarType
+ 0
+ update
+
+ CustomBehavior
+ Imagoverum.FleetManagement.BizLogic.CarBehavior, Imagoverum.FleetManagement.Services.dll|2
+
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/BasePackage/uninstall_data/02-01-2147483647 UnregisterInstallScripts_Data.post b/ImagoverumFleetManagement/BasePackage/uninstall_data/02-01-2147483647 UnregisterInstallScripts_Data.post
new file mode 100644
index 0000000..e8a3daf
--- /dev/null
+++ b/ImagoverumFleetManagement/BasePackage/uninstall_data/02-01-2147483647 UnregisterInstallScripts_Data.post
@@ -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'
diff --git a/ImagoverumFleetManagement/Extension.Assemblies.targets b/ImagoverumFleetManagement/Extension.Assemblies.targets
new file mode 100644
index 0000000..dc2d2ca
--- /dev/null
+++ b/ImagoverumFleetManagement/Extension.Assemblies.targets
@@ -0,0 +1,201 @@
+
+
+
+
+
+ $(MSBuildThisFileDirectory)BasePackage\Assemblies\
+
+
+ $(MSBuildThisFileDirectory)..\Root\InstalledPackages\Assemblies\$(M42ExtensionId)\
+
+
+ $(MSBuildProjectName)*.*
+ win-x64;linux-x64
+
+
+ true
+
+
+
+
+
+
+
+ <_M42RidList Include="$(M42DefaultRids)" />
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ <_M42FlatRootRidless Include="$(TargetDir)$(M42AssemblyPattern)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $([System.IO.Path]::GetFullPath('$(TargetDir)..\'))
+
+
+
+
+
+
+ <_M42FlatRoot Include="$(M42_RidlessTargetDir)$(M42AssemblyPattern)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_M42Rid Include="$(TargetDir)**\$(M42AssemblyPattern)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ImagoverumFleetManagement/README.md b/ImagoverumFleetManagement/README.md
new file mode 100644
index 0000000..7343bd8
--- /dev/null
+++ b/ImagoverumFleetManagement/README.md
@@ -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
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/Solutions/FleetManagement/BuildEvent.cmd b/ImagoverumFleetManagement/Solutions/FleetManagement/BuildEvent.cmd
new file mode 100644
index 0000000..ffb3f94
--- /dev/null
+++ b/ImagoverumFleetManagement/Solutions/FleetManagement/BuildEvent.cmd
@@ -0,0 +1 @@
+call %~dps0..\..\TeamBuildEvent.cmd %1 %2 %3 "/Solutions/FleetManagement"
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.BizLogic/CarBehavior.cs b/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.BizLogic/CarBehavior.cs
new file mode 100644
index 0000000..29d2895
--- /dev/null
+++ b/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.BizLogic/CarBehavior.cs
@@ -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];
+ }
+ }
+ }
+ }
+}
diff --git a/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.BizLogic/CarTester.cs b/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.BizLogic/CarTester.cs
new file mode 100644
index 0000000..73d41ec
--- /dev/null
+++ b/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.BizLogic/CarTester.cs
@@ -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;
+ }
+ }
+}
diff --git a/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.BizLogic/Imagoverum.FleetManagement.BizLogic.csproj b/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.BizLogic/Imagoverum.FleetManagement.BizLogic.csproj
new file mode 100644
index 0000000..c85649a
--- /dev/null
+++ b/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.BizLogic/Imagoverum.FleetManagement.BizLogic.csproj
@@ -0,0 +1,31 @@
+
+
+ SAK
+ SAK
+ SAK
+ SAK
+
+
+ netstandard2.0
+ enable
+ enable
+ latestmajor
+
+
+
+
+ ..\..\..\..\Root\bin\Matrix42.Behaviors.Contracts.dll
+
+
+ ..\..\..\..\Root\bin\update4u.SPS.Security.dll
+
+
+
+
+ 22be0879-4587-cf4b-333c-08de16408acb
+ $(MSBuildProjectName)*.*
+ false
+
+
+
+
diff --git a/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.BizLogic/Imagoverum.FleetManagement.BizLogic.csproj.vspscc b/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.BizLogic/Imagoverum.FleetManagement.BizLogic.csproj.vspscc
new file mode 100644
index 0000000..b6d3289
--- /dev/null
+++ b/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.BizLogic/Imagoverum.FleetManagement.BizLogic.csproj.vspscc
@@ -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"
+}
diff --git a/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.BizLogic/PostBuild.cmd b/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.BizLogic/PostBuild.cmd
new file mode 100644
index 0000000..3a7eef7
--- /dev/null
+++ b/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.BizLogic/PostBuild.cmd
@@ -0,0 +1,3 @@
+REM %robodir%robocopy %targetDir% %basedir%BasePackage\Assemblies\ Imagoverum.FleetManagement*.* /s %roboOptions%
+
+exit /b 0
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.Services/CarController.cs b/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.Services/CarController.cs
new file mode 100644
index 0000000..6548a90
--- /dev/null
+++ b/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.Services/CarController.cs
@@ -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)
+ {
+ ///
+ /// Latitude in decimal degrees. Valid range: -90 to 90.
+ ///
+ public double Latitude { get; set; } = latitude;
+
+ ///
+ /// Longitude in decimal degrees. Valid range: -180 to 180.
+ ///
+ public double Longitude { get; set; } = longitude;
+
+ ///
+ /// Generates a random geographic location.
+ /// If a region is specified, limits the random coordinates within that region.
+ ///
+ /// Optional region: "europe", "asia", "north-america", "south-america", "africa", "australia", or "world" (default).
+ 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}";
+ }
+ }
+}
diff --git a/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.Services/Imagoverum.FleetManagement.Services.csproj b/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.Services/Imagoverum.FleetManagement.Services.csproj
new file mode 100644
index 0000000..c92cee8
--- /dev/null
+++ b/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.Services/Imagoverum.FleetManagement.Services.csproj
@@ -0,0 +1,45 @@
+
+
+ net8.0
+ Library
+
+
+ win-x64;linux-x64
+ true
+
+ enable
+ enable
+ latestmajor
+
+
+
+ $(MSBuildProjectDirectory)\..\..\..\BasePackage\Assemblies\
+
+
+
+
+
+
+
+
+ ..\..\..\..\Root\bin\Matrix42.Blob.Contracts.dll
+
+
+ ..\..\..\..\Root\bin\Matrix42.WebApi.Contracts.dll
+
+
+
+
+
+ PreserveNewest
+
+
+
+
+ 22be0879-4587-cf4b-333c-08de16408acb
+ $(MSBuildProjectName)*.*
+
+
+
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.Services/Imagoverum.FleetManagement.Services.dll.host.config b/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.Services/Imagoverum.FleetManagement.Services.dll.host.config
new file mode 100644
index 0000000..07e4433
--- /dev/null
+++ b/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.Services/Imagoverum.FleetManagement.Services.dll.host.config
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.Services/PostBuild.cmd b/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.Services/PostBuild.cmd
new file mode 100644
index 0000000..3a7eef7
--- /dev/null
+++ b/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.Services/PostBuild.cmd
@@ -0,0 +1,3 @@
+REM %robodir%robocopy %targetDir% %basedir%BasePackage\Assemblies\ Imagoverum.FleetManagement*.* /s %roboOptions%
+
+exit /b 0
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.Services/Properties/launchSettings.json b/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.Services/Properties/launchSettings.json
new file mode 100644
index 0000000..8553e27
--- /dev/null
+++ b/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.Services/Properties/launchSettings.json
@@ -0,0 +1,12 @@
+{
+ "profiles": {
+ "Matrix42.Imagoverum.FleetManagement.Services": {
+ "commandName": "Project",
+ "launchBrowser": true,
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ },
+ "applicationUrl": "https://localhost:63088;http://localhost:63089"
+ }
+ }
+}
\ No newline at end of file
diff --git a/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.sln b/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.sln
new file mode 100644
index 0000000..08f186d
--- /dev/null
+++ b/ImagoverumFleetManagement/Solutions/FleetManagement/Imagoverum.FleetManagement.sln
@@ -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
diff --git a/ImagoverumFleetManagement/Solutions/FleetManagement/Tests/Imagoverum.FleetManagement.Tests/Imagoverum.FleetManagement.Tests.csproj b/ImagoverumFleetManagement/Solutions/FleetManagement/Tests/Imagoverum.FleetManagement.Tests/Imagoverum.FleetManagement.Tests.csproj
new file mode 100644
index 0000000..182219d
--- /dev/null
+++ b/ImagoverumFleetManagement/Solutions/FleetManagement/Tests/Imagoverum.FleetManagement.Tests/Imagoverum.FleetManagement.Tests.csproj
@@ -0,0 +1,19 @@
+
+
+
+ net8.0
+ latest
+ enable
+ enable
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ImagoverumFleetManagement/Solutions/FleetManagement/Tests/Imagoverum.FleetManagement.Tests/MSTestSettings.cs b/ImagoverumFleetManagement/Solutions/FleetManagement/Tests/Imagoverum.FleetManagement.Tests/MSTestSettings.cs
new file mode 100644
index 0000000..aaf278c
--- /dev/null
+++ b/ImagoverumFleetManagement/Solutions/FleetManagement/Tests/Imagoverum.FleetManagement.Tests/MSTestSettings.cs
@@ -0,0 +1 @@
+[assembly: Parallelize(Scope = ExecutionScope.MethodLevel)]
diff --git a/ImagoverumFleetManagement/Solutions/FleetManagement/Tests/Imagoverum.FleetManagement.Tests/Test1.cs b/ImagoverumFleetManagement/Solutions/FleetManagement/Tests/Imagoverum.FleetManagement.Tests/Test1.cs
new file mode 100644
index 0000000..4346faf
--- /dev/null
+++ b/ImagoverumFleetManagement/Solutions/FleetManagement/Tests/Imagoverum.FleetManagement.Tests/Test1.cs
@@ -0,0 +1,11 @@
+namespace Imagoverum.FleetManagement.Tests
+{
+ [TestClass]
+ public sealed class Test1
+ {
+ [TestMethod]
+ public void TestMethod1()
+ {
+ }
+ }
+}
diff --git a/ImagoverumFleetManagement/TeamBuildEvent.cmd b/ImagoverumFleetManagement/TeamBuildEvent.cmd
new file mode 100644
index 0000000..c28c2a7
--- /dev/null
+++ b/ImagoverumFleetManagement/TeamBuildEvent.cmd
@@ -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
diff --git a/ImagoverumFleetManagement/azure-pipelines-ci.yaml b/ImagoverumFleetManagement/azure-pipelines-ci.yaml
new file mode 100644
index 0000000..51e092b
--- /dev/null
+++ b/ImagoverumFleetManagement/azure-pipelines-ci.yaml
@@ -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 }}'
diff --git a/ImagoverumFleetManagement/robocopy.exe b/ImagoverumFleetManagement/robocopy.exe
new file mode 100644
index 0000000..02d9ec0
Binary files /dev/null and b/ImagoverumFleetManagement/robocopy.exe differ
diff --git a/ImagoverumFleetManagement/service-info.yml b/ImagoverumFleetManagement/service-info.yml
new file mode 100644
index 0000000..d7329b9
--- /dev/null
+++ b/ImagoverumFleetManagement/service-info.yml
@@ -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"