Compare commits
1 Commits
main
...
6c6ac272cd
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6c6ac272cd |
94
.gitignore
vendored
94
.gitignore
vendored
@@ -1,81 +1,13 @@
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
# Core Visual Studio / .NET build outputs
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
bin/
|
||||
obj/
|
||||
[Bb]uild/
|
||||
[Dd]ebug*/
|
||||
[Rr]elease*/
|
||||
x64/
|
||||
x86/
|
||||
[Aa][Rr][Mm]/
|
||||
[Aa][Rr][Mm]64/
|
||||
_ReSharper.*/
|
||||
*.user
|
||||
*.userosscache
|
||||
*.suo
|
||||
*.cache
|
||||
*.pdb
|
||||
*.mpdb
|
||||
*.opendb
|
||||
*.VC.db
|
||||
*.vscode/
|
||||
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
# Package artefacts (NuGet, npm, etc.)
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
/packages/
|
||||
*.nupkg
|
||||
*.snupkg
|
||||
*.nuspec
|
||||
package-lock.json
|
||||
packages.config
|
||||
npm-debug.log*
|
||||
yarn-error.log
|
||||
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
# TFS / TFVC specific files and folders
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
$tf/
|
||||
*$tf/
|
||||
*.tf
|
||||
*.tfs
|
||||
.tfignore
|
||||
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
# IDE tooling and workspace settings
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
.vs/
|
||||
.vscode/
|
||||
*.swp
|
||||
*.sln.docstates
|
||||
*.VC.VC.opendb
|
||||
.idea/
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
# Test results and profiling data
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
[Tt]est[Rr]esult*/
|
||||
[Bb]uild[Ll]og.*
|
||||
*.trx
|
||||
*.coverage
|
||||
*.coveragexml
|
||||
*.opencover.xml
|
||||
*.dotCover
|
||||
BenchmarkDotNet.Artifacts/
|
||||
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
# Miscellaneous recommended ignores
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
_UpgradeReport_Files/
|
||||
Backup*/
|
||||
UpgradeLog*.XML
|
||||
*.tmp
|
||||
*.temp
|
||||
*.log
|
||||
*.bak
|
||||
*.orig
|
||||
*.scc
|
||||
|
||||
bin/
|
||||
obj/
|
||||
.vs/
|
||||
*.user
|
||||
packages/
|
||||
F4SDHelper/packages.config
|
||||
F4SDM42WebApi/packages.config
|
||||
F4SDM42WebApi/BasePackage/Assemblies/
|
||||
F4SDM42WebApi/Root/InstalledPackages/
|
||||
F4SDHelper/bin/
|
||||
F4SDHelper/obj/
|
||||
F4SDM42WebApi/bin/
|
||||
F4SDM42WebApi/obj/
|
||||
|
||||
@@ -1,63 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{EB95E1FB-7A9E-4894-BD28-2D0BE2715EBE}</ProjectGuid>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>C4IT.F4SDM</RootNamespace>
|
||||
<AssemblyName>C4ITF4SDM42WebApiHelper</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<Deterministic>true</Deterministic>
|
||||
<TargetFrameworkProfile />
|
||||
<SccProjectName>SAK</SccProjectName>
|
||||
<SccLocalPath>SAK</SccLocalPath>
|
||||
<SccAuxPath>SAK</SccAuxPath>
|
||||
<SccProvider>SAK</SccProvider>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release_and_copy|AnyCPU'">
|
||||
<OutputPath>bin\Release_and_copy\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Nullable>disable</Nullable>
|
||||
<ImplicitUsings>disable</ImplicitUsings>
|
||||
<LangVersion>latestmajor</LangVersion>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<EnableDefaultCompileItems>false</EnableDefaultCompileItems>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
<Reference Include="Newtonsoft.Json">
|
||||
<HintPath>..\F4SDM42WebApi\M42Libraries\26.1\Newtonsoft.Json.dll</HintPath>
|
||||
<Private>false</Private>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="..\..\..\Common Code\Logging\C4IT.Logging.LogManager.cs">
|
||||
<Link>Common\C4IT.Logging.LogManager.cs</Link>
|
||||
</Compile>
|
||||
@@ -67,11 +29,6 @@
|
||||
<Compile Include="..\SharedAssemblyInfo.cs">
|
||||
<Link>Properties\SharedAssemblyInfo.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
|
||||
</Project>
|
||||
|
||||
5
F4SDM42WebApi/C4ITF4SDM42WebApi.dll.host
Normal file
5
F4SDM42WebApi/C4ITF4SDM42WebApi.dll.host
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<host xmlns="urn:m42/host.config">
|
||||
<modules></modules>
|
||||
<sections></sections>
|
||||
</host>
|
||||
@@ -1,139 +1,93 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{D8CBFFCA-0B43-4ACC-80EA-C944E7420CEE}</ProjectGuid>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>C4IT.F4SDM</RootNamespace>
|
||||
<AssemblyName>C4ITF4SDM42WebApi</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<Deterministic>true</Deterministic>
|
||||
<TargetFrameworkProfile />
|
||||
<SccProjectName>SAK</SccProjectName>
|
||||
<SccLocalPath>SAK</SccLocalPath>
|
||||
<SccAuxPath>SAK</SccAuxPath>
|
||||
<SccProvider>SAK</SccProvider>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<DocumentationFile>
|
||||
</DocumentationFile>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug_and_copy|AnyCPU'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\Debug_and_copy\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release_and_copy|AnyCPU'">
|
||||
<OutputPath>bin\Release_and_copy\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<RuntimeIdentifiers>win-x64;linux-x64</RuntimeIdentifiers>
|
||||
<AppendRuntimeIdentifierToOutputPath>true</AppendRuntimeIdentifierToOutputPath>
|
||||
<Nullable>disable</Nullable>
|
||||
<ImplicitUsings>disable</ImplicitUsings>
|
||||
<LangVersion>latestmajor</LangVersion>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<EnableDefaultCompileItems>false</EnableDefaultCompileItems>
|
||||
<M42ExtensionId>d8cbffca-0b43-4acc-80ea-c944e7420cee</M42ExtensionId>
|
||||
<M42AssemblyPattern>C4ITF4SD*.*</M42AssemblyPattern>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="Matrix42.Common, Version=12.0.3.3096, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>M42Libraries\Matrix42.Common.dll</HintPath>
|
||||
<Reference Include="Matrix42.Common">
|
||||
<HintPath>M42Libraries\26.1\Matrix42.Common.dll</HintPath>
|
||||
<Private>false</Private>
|
||||
</Reference>
|
||||
<Reference Include="Matrix42.Contracts.Common, Version=12.0.3.3096, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>M42Libraries\Matrix42.Contracts.Common.dll</HintPath>
|
||||
<Reference Include="Matrix42.Contracts.Common">
|
||||
<HintPath>M42Libraries\26.1\Matrix42.Contracts.Common.dll</HintPath>
|
||||
<Private>false</Private>
|
||||
</Reference>
|
||||
<Reference Include="Matrix42.Contracts.Platform, Version=12.0.3.3096, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>M42Libraries\Matrix42.Contracts.Platform.dll</HintPath>
|
||||
<Reference Include="Matrix42.Contracts.Platform">
|
||||
<HintPath>M42Libraries\26.1\Matrix42.Contracts.Platform.dll</HintPath>
|
||||
<Private>false</Private>
|
||||
</Reference>
|
||||
<Reference Include="Matrix42.Contracts.ServiceManagement, Version=12.0.3.3096, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>M42Libraries\Matrix42.Contracts.ServiceManagement.dll</HintPath>
|
||||
<Reference Include="Matrix42.Contracts.ServiceManagement">
|
||||
<HintPath>M42Libraries\26.1\Matrix42.Contracts.ServiceManagement.dll</HintPath>
|
||||
<Private>false</Private>
|
||||
</Reference>
|
||||
<Reference Include="Matrix42.Pandora.Contracts, Version=12.0.3.3096, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>M42Libraries\Matrix42.Pandora.Contracts.dll</HintPath>
|
||||
<Reference Include="Matrix42.Hosting.Contracts">
|
||||
<HintPath>M42Libraries\26.1\Matrix42.Hosting.Contracts.dll</HintPath>
|
||||
<Private>false</Private>
|
||||
</Reference>
|
||||
<Reference Include="Matrix42.Services.Description.Contracts, Version=12.0.3.3096, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>M42Libraries\Matrix42.Services.Description.Contracts.dll</HintPath>
|
||||
<Reference Include="Matrix42.Configuration.Global">
|
||||
<HintPath>M42Libraries\26.1\Matrix42.Configuration.Global.dll</HintPath>
|
||||
<Private>false</Private>
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
<Reference Include="Matrix42.Pandora.Contracts">
|
||||
<HintPath>M42Libraries\26.1\Matrix42.Pandora.Contracts.dll</HintPath>
|
||||
<Private>false</Private>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.IO.Compression" />
|
||||
<Reference Include="System.Web" />
|
||||
<Reference Include="System.Web.Http, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>M42Libraries\System.Web.Http.dll</HintPath>
|
||||
<Reference Include="Matrix42.Services.Description.Contracts">
|
||||
<HintPath>M42Libraries\26.1\Matrix42.Services.Description.Contracts.dll</HintPath>
|
||||
<Private>false</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.OData, Version=5.9.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>M42Libraries\System.Web.OData.dll</HintPath>
|
||||
<Reference Include="Matrix42.WebApi.Contracts">
|
||||
<HintPath>M42Libraries\26.1\Matrix42.WebApi.Contracts.dll</HintPath>
|
||||
<Private>false</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="update4u.SPS.DataLayer, Version=12.0.3.3096, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>M42Libraries\update4u.SPS.DataLayer.dll</HintPath>
|
||||
<Reference Include="Newtonsoft.Json">
|
||||
<HintPath>M42Libraries\26.1\Newtonsoft.Json.dll</HintPath>
|
||||
<Private>false</Private>
|
||||
</Reference>
|
||||
<Reference Include="update4u.SPS.Utility, Version=12.0.3.3096, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>M42Libraries\update4u.SPS.Utility.dll</HintPath>
|
||||
<Reference Include="System.Net.Http.Formatting">
|
||||
<HintPath>M42Libraries\26.1\System.Net.Http.Formatting.dll</HintPath>
|
||||
<Private>false</Private>
|
||||
</Reference>
|
||||
<Reference Include="update4u.SPS.DataLayer">
|
||||
<HintPath>M42Libraries\26.1\update4u.SPS.DataLayer.dll</HintPath>
|
||||
<Private>false</Private>
|
||||
</Reference>
|
||||
<Reference Include="update4u.SPS.Utility">
|
||||
<HintPath>M42Libraries\26.1\update4u.SPS.Utility.dll</HintPath>
|
||||
<Private>false</Private>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\F4SDHelper\F4SD - Helper.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="..\SharedAssemblyInfo.cs">
|
||||
<Link>Properties\SharedAssemblyInfo.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="cM42LogEntry.cs" />
|
||||
<Compile Include="F4SDHelperService.cs" />
|
||||
<Compile Include="F4SDM42WebApiController.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="..\SharedAssemblyInfo.cs">
|
||||
<Link>Properties\SharedAssemblyInfo.cs</Link>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\F4SDHelper\F4SD - Helper.csproj">
|
||||
<Project>{eb95e1fb-7a9e-4894-bd28-2d0be2715ebe}</Project>
|
||||
<Name>F4SD - Helper</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
<None Include="deploy.ps1" />
|
||||
<None Include="SignSourceFiles.cmd" />
|
||||
<None Update="C4ITF4SDM42WebApi.dll.host" CopyToOutputDirectory="PreserveNewest" />
|
||||
</ItemGroup>
|
||||
|
||||
<Import Project="..\M42F4SDUUXWorkspace\M42F4SDUUXWorkspace.projitems" Label="Shared" />
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>@echo powershell -ExecutionPolicy Unrestricted $(ProjectDir)deploy.ps1 -ProjectDir $(ProjectDir) -SolutionDir $(SolutionDir) -OutDir $(OutDir) -ConfigurationName $(ConfigurationName)</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
<Import Project="M42SandboxedExtension.targets" Condition="Exists('M42SandboxedExtension.targets')" />
|
||||
</Project>
|
||||
|
||||
@@ -13,9 +13,9 @@ using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web;
|
||||
|
||||
using Matrix42.Common;
|
||||
using Matrix42.WebApi.Contracts;
|
||||
using update4u.SPS.DataLayer;
|
||||
using update4u.SPS.DataLayer.Transaction;
|
||||
|
||||
@@ -80,7 +80,7 @@ namespace C4IT.F4SD
|
||||
{
|
||||
LogEntry($"Generating F4SD URI for type: '{type}', GUID: '{EOID}'", LogLevels.Debug);
|
||||
var builder = new UriBuilder(c4itf4sdmonLinkBase);
|
||||
var queryString = HttpUtility.ParseQueryString(builder.Query);
|
||||
var queryString = UrlQueryBuilder.Parse(builder.Query);
|
||||
|
||||
switch (type.ToLowerInvariant().Split('.').Last())
|
||||
{
|
||||
@@ -1663,7 +1663,7 @@ namespace C4IT.F4SD
|
||||
presetParamsDyn.SPSActivityClassIncident.Asset = asset.Id;
|
||||
}
|
||||
var type = TicketAndServiceRequestEnabled ? "SPSActivityTypeTicket" : "SPSActivityTypeIncident";
|
||||
var presetParams = HttpUtility.UrlEncode(JsonConvert.SerializeObject(presetParamsDyn));
|
||||
var presetParams = WebUtility.UrlEncode(JsonConvert.SerializeObject(presetParamsDyn));
|
||||
var directLink = string.Format(TicketDirectLinkCreateTemplate, F4SDM42WebApiController.defaultInstance.BaseUrl, type, presetParams);
|
||||
return new DirectLink()
|
||||
{
|
||||
@@ -1848,7 +1848,7 @@ namespace C4IT.F4SD
|
||||
viewOptionsDyn.type = CIName;
|
||||
viewOptionsDyn.viewType = "action";
|
||||
viewOptionsDyn.actionId = TicketCloseActionId;
|
||||
var viewOptions = HttpUtility.UrlEncode(JsonConvert.SerializeObject(viewOptionsDyn));
|
||||
var viewOptions = WebUtility.UrlEncode(JsonConvert.SerializeObject(viewOptionsDyn));
|
||||
|
||||
var ticketDirectLinkPreview = string.Format(TicketDirectLinkPreviewTemplate, F4SDM42WebApiController.defaultInstance.BaseUrl, CIName, ActivityEOID);
|
||||
var ticketDirectLinkEdit = string.Format(TicketDirectLinkEditTemplate, F4SDM42WebApiController.defaultInstance.BaseUrl, CIName, ActivityEOID);
|
||||
@@ -2305,7 +2305,7 @@ namespace C4IT.F4SD
|
||||
}
|
||||
zipArchive.Dispose();
|
||||
memoryStream.Position = 0L;
|
||||
HttpResponseMessage httpResponseMessage = request.CreateResponse(HttpStatusCode.OK);
|
||||
HttpResponseMessage httpResponseMessage = HttpResponseExtensions.CreateResponse(request, HttpStatusCode.OK);
|
||||
httpResponseMessage.Content = new StreamContent(memoryStream);
|
||||
httpResponseMessage.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
|
||||
{
|
||||
@@ -2727,4 +2727,41 @@ namespace C4IT.F4SD
|
||||
Roles = new List<M42Role>();
|
||||
}
|
||||
}
|
||||
|
||||
internal sealed class UrlQueryBuilder
|
||||
{
|
||||
private readonly List<KeyValuePair<string, string>> _values = new List<KeyValuePair<string, string>>();
|
||||
|
||||
private UrlQueryBuilder()
|
||||
{
|
||||
}
|
||||
|
||||
public static UrlQueryBuilder Parse(string query)
|
||||
{
|
||||
var builder = new UrlQueryBuilder();
|
||||
var normalizedQuery = (query ?? string.Empty).TrimStart('?');
|
||||
|
||||
foreach (var pair in normalizedQuery.Split(new[] { '&' }, StringSplitOptions.RemoveEmptyEntries))
|
||||
{
|
||||
var separatorIndex = pair.IndexOf('=');
|
||||
var key = separatorIndex >= 0 ? pair.Substring(0, separatorIndex) : pair;
|
||||
var value = separatorIndex >= 0 ? pair.Substring(separatorIndex + 1) : string.Empty;
|
||||
|
||||
builder.Add(WebUtility.UrlDecode(key), WebUtility.UrlDecode(value));
|
||||
}
|
||||
|
||||
return builder;
|
||||
}
|
||||
|
||||
public void Add(string key, string value)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(key))
|
||||
_values.Add(new KeyValuePair<string, string>(key, value ?? string.Empty));
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return string.Join("&", _values.Select(pair => $"{WebUtility.UrlEncode(pair.Key)}={WebUtility.UrlEncode(pair.Value)}"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,16 +6,14 @@ using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Reflection;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web;
|
||||
using System.Web.Http;
|
||||
using System.Web.Http.Controllers;
|
||||
using System.Web.OData;
|
||||
using System.Web.OData.Query;
|
||||
|
||||
using Matrix42.Common;
|
||||
using Matrix42.Contracts.ServiceManagement.ServiceContracts;
|
||||
using Matrix42.Hosting.Contracts;
|
||||
using Matrix42.Pandora.Contracts;
|
||||
using Matrix42.Services.Description.Contracts;
|
||||
using Matrix42.WebApi.Contracts;
|
||||
using Matrix42.WebApi.Contracts.OData;
|
||||
using update4u.SPS.Utility.GlobalConfiguration;
|
||||
|
||||
using C4IT.F4SDM;
|
||||
@@ -42,36 +40,25 @@ namespace C4IT.F4SD
|
||||
|
||||
|
||||
private readonly F4SDHelperService _f4stHelperService;
|
||||
public string BaseUrl => $"{Request.RequestUri.Scheme}://{Request.RequestUri.Host}";
|
||||
public string BaseUrl => Request?.RequestUri == null ? string.Empty : $"{Request.RequestUri.Scheme}://{Request.RequestUri.Host}";
|
||||
public string EndpointBaseUrl => $"{BaseUrl}/m42Services/api/c4itf4sdwebapi";
|
||||
public F4SDM42WebApiController(
|
||||
//IObjectService objectService,
|
||||
//IIncidentService incidentService,
|
||||
IJournalService journalService
|
||||
//IFragmentService fragmentService,
|
||||
, IEntityDataService entityDataService
|
||||
, IPandoraUserProfile userProfile
|
||||
)
|
||||
|
||||
public F4SDM42WebApiController(IDependencyResolver resolver)
|
||||
{
|
||||
defaultInstance = this;
|
||||
//_objectService = objectService;
|
||||
//_fragmentService = fragmentService;
|
||||
//_incidentService = Guard.NullArgument(incidentService, "incidentService");
|
||||
|
||||
_entityDataService = entityDataService;
|
||||
_journalService = journalService;
|
||||
_entityDataService = resolver?.TryGet<IEntityDataService>();
|
||||
_journalService = resolver?.TryGet<IJournalService>();
|
||||
_globalConfigurationProvider = GlobalConfigurationProvider.Instance;
|
||||
_f4stHelperService = new F4SDHelperService();
|
||||
_userProfile = userProfile;
|
||||
_userProfile = resolver?.TryGet<IPandoraUserProfile>();
|
||||
EnsureInitialized();
|
||||
}
|
||||
|
||||
private static object initLock = new object();
|
||||
protected override void Initialize(HttpControllerContext controllerContext)
|
||||
private static readonly object initLock = new object();
|
||||
private static void EnsureInitialized()
|
||||
{
|
||||
base.Initialize(controllerContext);
|
||||
try
|
||||
{
|
||||
//System.Diagnostics.Debugger.Launch();
|
||||
lock (initLock)
|
||||
{
|
||||
if (IsInitialized || F4SDM42LogsWebApiController.IsInitialized)
|
||||
@@ -311,18 +298,18 @@ namespace C4IT.F4SD
|
||||
Values = vals.ToArray()
|
||||
};
|
||||
//CacheOutputAttribute.RegisterResponseEtag($"enum_{enumeration.Name}_{(int)mode}", $"{enumeration.Name}_{(int)mode}", cultureInvariant: false, userInvariant: true, val);
|
||||
return Request.CreateResponse(HttpStatusCode.OK, enumeration);
|
||||
return HttpResponseExtensions.CreateResponse(Request, HttpStatusCode.OK, enumeration);
|
||||
}
|
||||
|
||||
[Route("getMyRoleMemberships", Order = 2), HttpGet]
|
||||
[Route("getMyRoleMemberships"), HttpGet]
|
||||
public async Task<HttpResponseMessage> getMyRoleMemberships()
|
||||
{
|
||||
var User = _userProfile.GetInteractiveUserInfo();
|
||||
var filter = AsqlHelper.BuildInCondition("ID", new Guid[] { User.Id });
|
||||
return Request.CreateResponse(HttpStatusCode.OK, await _f4stHelperService.UserPermissionsInfo(filter));
|
||||
return HttpResponseExtensions.CreateResponse(Request, HttpStatusCode.OK, await _f4stHelperService.UserPermissionsInfo(filter));
|
||||
}
|
||||
|
||||
[Route("getRoleMemberships", Order = 1), HttpGet]
|
||||
[Route("getRoleMemberships"), HttpGet]
|
||||
public async Task<HttpResponseMessage> getRoleMemberships([FromUri] GetRoleMembershipsRequest req)
|
||||
{
|
||||
var filter = "";
|
||||
@@ -342,7 +329,7 @@ namespace C4IT.F4SD
|
||||
|
||||
if (!string.IsNullOrEmpty(filter))
|
||||
{
|
||||
return Request.CreateResponse(HttpStatusCode.OK, await _f4stHelperService.UserPermissionsInfo(filter));
|
||||
return HttpResponseExtensions.CreateResponse(Request, HttpStatusCode.OK, await _f4stHelperService.UserPermissionsInfo(filter));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -350,11 +337,11 @@ namespace C4IT.F4SD
|
||||
}
|
||||
}
|
||||
|
||||
[Route("getRoleMemberships/{userId}", Order = 1), HttpGet]
|
||||
[Route("getRoleMemberships/{userId}"), HttpGet]
|
||||
public async Task<HttpResponseMessage> getRoleMembershipForUser(Guid userId)
|
||||
{
|
||||
var filter = AsqlHelper.BuildInCondition("ID", new Guid[] { userId });
|
||||
return Request.CreateResponse(HttpStatusCode.OK, await _f4stHelperService.UserPermissionsInfo(filter));
|
||||
return HttpResponseExtensions.CreateResponse(Request, HttpStatusCode.OK, await _f4stHelperService.UserPermissionsInfo(filter));
|
||||
}
|
||||
|
||||
[Obsolete]
|
||||
@@ -391,7 +378,7 @@ namespace C4IT.F4SD
|
||||
.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries)
|
||||
.Select(part =>
|
||||
{
|
||||
var decodedPart = HttpUtility.UrlDecode(part)?.Trim();
|
||||
var decodedPart = WebUtility.UrlDecode(part)?.Trim();
|
||||
if (string.IsNullOrWhiteSpace(decodedPart))
|
||||
return null;
|
||||
|
||||
@@ -477,10 +464,9 @@ namespace C4IT.F4SD
|
||||
|
||||
public static bool IsInitialized { get; private set; } = false;
|
||||
|
||||
private static object initLock = new object();
|
||||
protected override void Initialize(HttpControllerContext controllerContext)
|
||||
private static readonly object initLock = new object();
|
||||
private static void EnsureInitialized()
|
||||
{
|
||||
base.Initialize(controllerContext);
|
||||
try
|
||||
{
|
||||
lock (initLock)
|
||||
@@ -502,20 +488,15 @@ namespace C4IT.F4SD
|
||||
public F4SDM42LogsWebApiController()
|
||||
{
|
||||
_f4stHelperService = new F4SDHelperService();
|
||||
EnsureInitialized();
|
||||
}
|
||||
|
||||
[Route(""), HttpGet]
|
||||
[EnableQuery]
|
||||
public IEnumerable<cM42LogEntry> getLog2(ODataQueryOptions<cM42LogEntry> queryOptions)
|
||||
{
|
||||
try
|
||||
{
|
||||
IQueryable<cM42LogEntry> queryable = _f4stHelperService.privGetLog2().AsQueryable();
|
||||
if (queryOptions.Filter != null)
|
||||
{
|
||||
queryable = queryOptions.Filter.ApplyTo(queryable, new ODataQuerySettings()).Cast<cM42LogEntry>();
|
||||
}
|
||||
return queryable;
|
||||
return ApplyLogFilter(_f4stHelperService.privGetLog2(), queryOptions);
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
@@ -528,12 +509,7 @@ namespace C4IT.F4SD
|
||||
[HttpGet]
|
||||
public int Log2Count(ODataQueryOptions<cM42LogEntry> queryOptions)
|
||||
{
|
||||
IQueryable<cM42LogEntry> queryable = _f4stHelperService.privGetLog2().AsQueryable();
|
||||
if (queryOptions.Filter != null)
|
||||
{
|
||||
queryable = queryOptions.Filter.ApplyTo(queryable, new ODataQuerySettings()).Cast<cM42LogEntry>();
|
||||
}
|
||||
return queryable.Count();
|
||||
return ApplyLogFilter(_f4stHelperService.privGetLog2(), queryOptions).Count();
|
||||
}
|
||||
|
||||
[Route("{id}")]
|
||||
@@ -542,6 +518,28 @@ namespace C4IT.F4SD
|
||||
{
|
||||
return _f4stHelperService.privGetLog2(id);
|
||||
}
|
||||
|
||||
private static IEnumerable<cM42LogEntry> ApplyLogFilter(IEnumerable<cM42LogEntry> entries, ODataQueryOptions<cM42LogEntry> queryOptions)
|
||||
{
|
||||
var result = entries ?? Enumerable.Empty<cM42LogEntry>();
|
||||
var filter = queryOptions?.Filter;
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(filter))
|
||||
{
|
||||
result = result.Where(entry =>
|
||||
(entry.Message?.IndexOf(filter, StringComparison.OrdinalIgnoreCase) ?? -1) >= 0 ||
|
||||
(entry.logLvl?.IndexOf(filter, StringComparison.OrdinalIgnoreCase) ?? -1) >= 0 ||
|
||||
(entry.Theme?.IndexOf(filter, StringComparison.OrdinalIgnoreCase) ?? -1) >= 0);
|
||||
}
|
||||
|
||||
if (queryOptions?.Skip != null)
|
||||
result = result.Skip(queryOptions.Skip.Value);
|
||||
|
||||
if (queryOptions?.Top != null)
|
||||
result = result.Take(queryOptions.Top.Value);
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
public class cGetPropertyBody
|
||||
|
||||
63
F4SDM42WebApi/M42SandboxedExtension.targets
Normal file
63
F4SDM42WebApi/M42SandboxedExtension.targets
Normal file
@@ -0,0 +1,63 @@
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<M42BasePackageAssembliesDir Condition="'$(M42BasePackageAssembliesDir)' == ''">$(MSBuildProjectDirectory)\BasePackage\Assemblies\</M42BasePackageAssembliesDir>
|
||||
<M42RootAssembliesDir Condition="'$(M42RootAssembliesDir)' == '' AND '$(M42ExtensionId)' != ''">$(MSBuildProjectDirectory)\Root\InstalledPackages\Assemblies\$(M42ExtensionId)\</M42RootAssembliesDir>
|
||||
<M42AssemblyPattern Condition="'$(M42AssemblyPattern)' == ''">$(MSBuildProjectName)*.*</M42AssemblyPattern>
|
||||
<M42DefaultRids Condition="'$(M42DefaultRids)' == ''">win-x64;linux-x64</M42DefaultRids>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target Name="M42_BuildAllRids"
|
||||
BeforeTargets="Build"
|
||||
Condition="'$(RuntimeIdentifier)' == '' AND '$(M42SkipBuildAllRids)' != 'true'">
|
||||
<ItemGroup>
|
||||
<_M42RidList Include="$(M42DefaultRids)" />
|
||||
</ItemGroup>
|
||||
|
||||
<MSBuild Projects="$(MSBuildProjectFullPath)"
|
||||
Targets="Restore;Build"
|
||||
Properties="RuntimeIdentifier=%(_M42RidList.Identity);Configuration=$(Configuration);AppendRuntimeIdentifierToOutputPath=true;M42SkipBuildAllRids=true"
|
||||
BuildInParallel="true" />
|
||||
|
||||
<PropertyGroup>
|
||||
<SkipBuild>true</SkipBuild>
|
||||
</PropertyGroup>
|
||||
</Target>
|
||||
|
||||
<Target Name="M42_PostBuild_CopyRidless"
|
||||
AfterTargets="Build"
|
||||
Condition="'$(RuntimeIdentifier)' == ''">
|
||||
<ItemGroup>
|
||||
<_M42FlatRoot Include="$(TargetDir)$(M42AssemblyPattern)" />
|
||||
</ItemGroup>
|
||||
|
||||
<MakeDir Directories="$(M42BasePackageAssembliesDir)" />
|
||||
<MakeDir Directories="$(M42RootAssembliesDir)" Condition="'$(M42RootAssembliesDir)' != ''" />
|
||||
|
||||
<Copy SourceFiles="@(_M42FlatRoot)"
|
||||
DestinationFolder="$(M42BasePackageAssembliesDir)"
|
||||
SkipUnchangedFiles="true" />
|
||||
<Copy SourceFiles="@(_M42FlatRoot)"
|
||||
DestinationFolder="$(M42RootAssembliesDir)"
|
||||
SkipUnchangedFiles="true"
|
||||
Condition="'$(M42RootAssembliesDir)' != ''" />
|
||||
</Target>
|
||||
|
||||
<Target Name="M42_PostBuild_CopyRid"
|
||||
AfterTargets="Build"
|
||||
Condition="'$(RuntimeIdentifier)' != ''">
|
||||
<ItemGroup>
|
||||
<_M42Rid Include="$(TargetDir)**\$(M42AssemblyPattern)" />
|
||||
</ItemGroup>
|
||||
|
||||
<MakeDir Directories="$(M42BasePackageAssembliesDir)$(RuntimeIdentifier)" />
|
||||
<MakeDir Directories="$(M42RootAssembliesDir)$(RuntimeIdentifier)" Condition="'$(M42RootAssembliesDir)' != ''" />
|
||||
|
||||
<Copy SourceFiles="@(_M42Rid)"
|
||||
DestinationFolder="$(M42BasePackageAssembliesDir)$(RuntimeIdentifier)\%(RecursiveDir)"
|
||||
SkipUnchangedFiles="true" />
|
||||
<Copy SourceFiles="@(_M42Rid)"
|
||||
DestinationFolder="$(M42RootAssembliesDir)$(RuntimeIdentifier)\%(RecursiveDir)"
|
||||
SkipUnchangedFiles="true"
|
||||
Condition="'$(M42RootAssembliesDir)' != ''" />
|
||||
</Target>
|
||||
</Project>
|
||||
16
F4SDM42WebApi/package.json
Normal file
16
F4SDM42WebApi/package.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"Id": "d8cbffca-0b43-4acc-80ea-c944e7420cee",
|
||||
"Vendor": "Consulting4IT GmbH",
|
||||
"Name": "C4IT.F4SD.M42WebApi",
|
||||
"Version": "1.3.0.0",
|
||||
"Prerequisites": {
|
||||
"MinimalRequiredProductVersion": "26.1.0",
|
||||
"DependentPackages": []
|
||||
},
|
||||
"SetupDirectives": {
|
||||
"MaintenanceMode": false,
|
||||
"RecycleWebApplication": false,
|
||||
"RestartM42WindowsServices": false
|
||||
},
|
||||
"Sandboxed": true
|
||||
}
|
||||
Reference in New Issue
Block a user