@@ -0,0 +1,36 @@ | |||
using System.Reflection; | |||
using System.Runtime.CompilerServices; | |||
using System.Runtime.InteropServices; | |||
// Les informations générales relatives à un assembly dépendent de | |||
// l'ensemble d'attributs suivant. Changez les valeurs de ces attributs pour modifier les informations | |||
// associées à un assembly. | |||
[assembly: AssemblyTitle("SIE.IVSDK")] | |||
[assembly: AssemblyDescription("")] | |||
[assembly: AssemblyConfiguration("")] | |||
[assembly: AssemblyCompany("")] | |||
[assembly: AssemblyProduct("SIE.IVSDK")] | |||
[assembly: AssemblyCopyright("Copyright © 2022")] | |||
[assembly: AssemblyTrademark("")] | |||
[assembly: AssemblyCulture("")] | |||
// L'affectation de la valeur false à ComVisible rend les types invisibles dans cet assembly | |||
// aux composants COM. Si vous devez accéder à un type dans cet assembly à partir de | |||
// COM, affectez la valeur true à l'attribut ComVisible sur ce type. | |||
[assembly: ComVisible(false)] | |||
// Le GUID suivant est pour l'ID de la typelib si ce projet est exposé à COM | |||
[assembly: Guid("28110bdb-998e-42d3-9732-f5cb7740f6b9")] | |||
// Les informations de version pour un assembly se composent des quatre valeurs suivantes : | |||
// | |||
// Version principale | |||
// Version secondaire | |||
// Numéro de build | |||
// Révision | |||
// | |||
// Vous pouvez spécifier toutes les valeurs ou indiquer les numéros de build et de révision par défaut | |||
// en utilisant '*', comme indiqué ci-dessous : | |||
// [assembly: AssemblyVersion("1.0.*")] | |||
[assembly: AssemblyVersion("1.0.0.0")] | |||
[assembly: AssemblyFileVersion("1.0.0.0")] |
@@ -0,0 +1,49 @@ | |||
<?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')" /> | |||
<PropertyGroup> | |||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | |||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | |||
<ProjectGuid>{28110BDB-998E-42D3-9732-F5CB7740F6B9}</ProjectGuid> | |||
<OutputType>Library</OutputType> | |||
<AppDesignerFolder>Properties</AppDesignerFolder> | |||
<RootNamespace>SIE.IVSDK</RootNamespace> | |||
<AssemblyName>SIE.IVSDK</AssemblyName> | |||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion> | |||
<FileAlignment>512</FileAlignment> | |||
<Deterministic>true</Deterministic> | |||
</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> | |||
<ItemGroup> | |||
<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="Services\IPathService.cs" /> | |||
<Compile Include="Services\ISolutionService.cs" /> | |||
<Compile Include="Properties\AssemblyInfo.cs" /> | |||
</ItemGroup> | |||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> | |||
</Project> |
@@ -0,0 +1,14 @@ | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Linq; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
namespace SIE.IVSDK.Services | |||
{ | |||
public interface IPathService | |||
{ | |||
bool IsValidPath(string path, bool allowRelativePaths = false); | |||
} | |||
} |
@@ -0,0 +1,13 @@ | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Linq; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
namespace SIE.IVSDK.Services | |||
{ | |||
public interface ISolutionService | |||
{ | |||
void CreateProjectTemplatesFromSolution(string solutionPath, string directoryDestinationPath, string newSolutionName); | |||
} | |||
} |
@@ -0,0 +1,37 @@ | |||
| |||
Microsoft Visual Studio Solution File, Format Version 12.00 | |||
# Visual Studio Version 16 | |||
VisualStudioVersion = 16.0.32901.82 | |||
MinimumVisualStudioVersion = 10.0.40219.1 | |||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SIE.VSDK", "SIE.VSDK\SIE.VSDK.csproj", "{4BF7E556-D8FA-46EF-9655-13077E8D1BA6}" | |||
EndProject | |||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SIE.IVSDK", "SIE.IVSDK\SIE.IVSDK.csproj", "{28110BDB-998E-42D3-9732-F5CB7740F6B9}" | |||
EndProject | |||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SIE.VSDK.Test", "SIE.VSDK.Test\SIE.VSDK.Test.csproj", "{67ABA05D-465B-4F20-8112-A9D282541C80}" | |||
EndProject | |||
Global | |||
GlobalSection(SolutionConfigurationPlatforms) = preSolution | |||
Debug|Any CPU = Debug|Any CPU | |||
Release|Any CPU = Release|Any CPU | |||
EndGlobalSection | |||
GlobalSection(ProjectConfigurationPlatforms) = postSolution | |||
{4BF7E556-D8FA-46EF-9655-13077E8D1BA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||
{4BF7E556-D8FA-46EF-9655-13077E8D1BA6}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||
{4BF7E556-D8FA-46EF-9655-13077E8D1BA6}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||
{4BF7E556-D8FA-46EF-9655-13077E8D1BA6}.Release|Any CPU.Build.0 = Release|Any CPU | |||
{28110BDB-998E-42D3-9732-F5CB7740F6B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||
{28110BDB-998E-42D3-9732-F5CB7740F6B9}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||
{28110BDB-998E-42D3-9732-F5CB7740F6B9}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||
{28110BDB-998E-42D3-9732-F5CB7740F6B9}.Release|Any CPU.Build.0 = Release|Any CPU | |||
{67ABA05D-465B-4F20-8112-A9D282541C80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||
{67ABA05D-465B-4F20-8112-A9D282541C80}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||
{67ABA05D-465B-4F20-8112-A9D282541C80}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||
{67ABA05D-465B-4F20-8112-A9D282541C80}.Release|Any CPU.Build.0 = Release|Any CPU | |||
EndGlobalSection | |||
GlobalSection(SolutionProperties) = preSolution | |||
HideSolutionNode = FALSE | |||
EndGlobalSection | |||
GlobalSection(ExtensibilityGlobals) = postSolution | |||
SolutionGuid = {3437A0E5-7E74-48B6-9764-DF74597AA8F4} | |||
EndGlobalSection | |||
EndGlobal |
@@ -0,0 +1,20 @@ | |||
using System.Reflection; | |||
using System.Runtime.CompilerServices; | |||
using System.Runtime.InteropServices; | |||
[assembly: AssemblyTitle("SIE.VSDK.Test")] | |||
[assembly: AssemblyDescription("")] | |||
[assembly: AssemblyConfiguration("")] | |||
[assembly: AssemblyCompany("")] | |||
[assembly: AssemblyProduct("SIE.VSDK.Test")] | |||
[assembly: AssemblyCopyright("Copyright © 2022")] | |||
[assembly: AssemblyTrademark("")] | |||
[assembly: AssemblyCulture("")] | |||
[assembly: ComVisible(false)] | |||
[assembly: Guid("67aba05d-465b-4f20-8112-a9d282541c80")] | |||
// [assembly: AssemblyVersion("1.0.*")] | |||
[assembly: AssemblyVersion("1.0.0.0")] | |||
[assembly: AssemblyFileVersion("1.0.0.0")] |
@@ -0,0 +1,79 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |||
<Import Project="..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.props" Condition="Exists('..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.props')" /> | |||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> | |||
<PropertyGroup> | |||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | |||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | |||
<ProjectGuid>{67ABA05D-465B-4F20-8112-A9D282541C80}</ProjectGuid> | |||
<OutputType>Library</OutputType> | |||
<AppDesignerFolder>Properties</AppDesignerFolder> | |||
<RootNamespace>SIE.VSDK.Test</RootNamespace> | |||
<AssemblyName>SIE.VSDK.Test</AssemblyName> | |||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion> | |||
<FileAlignment>512</FileAlignment> | |||
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> | |||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">15.0</VisualStudioVersion> | |||
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> | |||
<ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath> | |||
<IsCodedUITest>False</IsCodedUITest> | |||
<TestProjectType>UnitTest</TestProjectType> | |||
<NuGetPackageImportStamp> | |||
</NuGetPackageImportStamp> | |||
</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> | |||
<ItemGroup> | |||
<Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\MSTest.TestFramework.2.1.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\MSTest.TestFramework.2.1.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll</HintPath> | |||
</Reference> | |||
<Reference Include="System" /> | |||
<Reference Include="System.Core" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<Compile Include="SolutionServiceTest.cs" /> | |||
<Compile Include="Properties\AssemblyInfo.cs" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<None Include="app.config" /> | |||
<None Include="packages.config" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ProjectReference Include="..\SIE.IVSDK\SIE.IVSDK.csproj"> | |||
<Project>{28110BDB-998E-42D3-9732-F5CB7740F6B9}</Project> | |||
<Name>SIE.IVSDK</Name> | |||
</ProjectReference> | |||
<ProjectReference Include="..\SIE.VSDK\SIE.VSDK.csproj"> | |||
<Project>{4bf7e556-d8fa-46ef-9655-13077e8d1ba6}</Project> | |||
<Name>SIE.VSDK</Name> | |||
</ProjectReference> | |||
</ItemGroup> | |||
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" /> | |||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> | |||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> | |||
<PropertyGroup> | |||
<ErrorText>Ce projet fait référence à des packages NuGet qui sont manquants sur cet ordinateur. Utilisez l'option de restauration des packages NuGet pour les télécharger. Pour plus d'informations, consultez http://go.microsoft.com/fwlink/?LinkID=322105. Le fichier manquant est : {0}.</ErrorText> | |||
</PropertyGroup> | |||
<Error Condition="!Exists('..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.props'))" /> | |||
<Error Condition="!Exists('..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.targets'))" /> | |||
</Target> | |||
<Import Project="..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.targets" Condition="Exists('..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.targets')" /> | |||
</Project> |
@@ -0,0 +1,120 @@ | |||
using Microsoft.VisualStudio.TestTools.UnitTesting; | |||
using SIE.IVSDK.Services; | |||
using SIE.VSDK.Exceptions.DirectoryDestination; | |||
using SIE.VSDK.Exceptions.Solution; | |||
using SIE.VSDK.Services; | |||
using System; | |||
using System.IO; | |||
namespace SIE.VSDK.Test | |||
{ | |||
[TestClass] | |||
public class SolutionServiceTest | |||
{ | |||
private readonly ISolutionService _solutionService; | |||
private string dirTest = Directory.GetParent(Directory.GetParent(Directory.GetParent(Directory.GetParent(Directory.GetCurrentDirectory()).FullName).FullName).FullName).FullName; | |||
public SolutionServiceTest() | |||
{ | |||
IPathService pathService = new PathService(); | |||
_solutionService = new SolutionService(pathService); | |||
} | |||
[TestMethod] | |||
[ExpectedException(typeof(SolutionPathIsNullException), "Le chemin de la solution passé en premier paramètre est null !")] | |||
public void TestSolutionPathIsNullError01() | |||
{ | |||
_solutionService.CreateProjectTemplatesFromSolution(null, "",""); | |||
} | |||
[TestMethod] | |||
[ExpectedException(typeof(SolutionPathIsEmptyException), "Le chemin de la solution passé en premier paramètre eqt vide !")] | |||
public void TestSolutionPathIsNotAFileError02() | |||
{ | |||
_solutionService.CreateProjectTemplatesFromSolution(" ", "",""); | |||
} | |||
[TestMethod] | |||
[ExpectedException(typeof(InvalidSolutionPathException), "Le chemin de la solution passé en premier paramètre n'est pas valide !")] | |||
public void TestInvalidSolutionPathError03() | |||
{ | |||
_solutionService.CreateProjectTemplatesFromSolution(@"C:/abc*d.txt", "",""); | |||
} | |||
[TestMethod] | |||
[ExpectedException(typeof(ExtensionSolutionPathException), "Le chemin de la solution passé en premier paramètre n'existe pas !")] | |||
public void ExtensionSolutionPathError04() | |||
{ | |||
_solutionService.CreateProjectTemplatesFromSolution(@"C:/toto.txt", "",""); | |||
} | |||
[TestMethod] | |||
[ExpectedException(typeof(SolutionPathIsNotAFileException), "Le chemin de la solution passé en premier paramètre n'existe pas !")] | |||
public void SolutionPathIsNotAFileError05() | |||
{ | |||
_solutionService.CreateProjectTemplatesFromSolution(@"C:/toto.sln", "",""); | |||
} | |||
[TestMethod] | |||
[ExpectedException(typeof(DirectoryDestinationIsNullException), "Le chemin de destination passé en second paramètre ne doit pas être null !")] | |||
public void DirectoryDestinationIsNullError06() | |||
{ | |||
_solutionService.CreateProjectTemplatesFromSolution(Path.Combine(dirTest, "WebApplication1", "WebApplication1.sln"), null,""); | |||
} | |||
[TestMethod] | |||
[ExpectedException(typeof(DirectoryDestinationIsEmptyException), "Le chemin de destination passé en second paramètre ne doit pas être vide !")] | |||
public void DirectoryDestinationIsEmptyError07() | |||
{ | |||
_solutionService.CreateProjectTemplatesFromSolution(Path.Combine(dirTest, "WebApplication1", "WebApplication1.sln"), " ",""); | |||
} | |||
[TestMethod] | |||
[ExpectedException(typeof(InvalideDirectoryDestinationException), "Le chemin de destination passé en second paramètre ne doit pas être vide !")] | |||
public void InvalideDirectoryDestinationError08() | |||
{ | |||
_solutionService.CreateProjectTemplatesFromSolution(Path.Combine(dirTest, "WebApplication1", "WebApplication1.sln"), @"C:/abc*d",""); | |||
} | |||
[TestMethod] | |||
[ExpectedException(typeof(DirectoryDestinationNotFoundException), "Le chemin de destination passé en second paramètre est un chemin inexistant !")] | |||
public void DirectoryDestinationNotFoundError09() | |||
{ | |||
_solutionService.CreateProjectTemplatesFromSolution(Path.Combine(dirTest, "WebApplication1", "WebApplication1.sln"), @"C:/abcd",""); | |||
} | |||
[TestMethod] | |||
[ExpectedException(typeof(NewSolutionIsNullException), "La nouvelle solution passée en second paramètre est null !")] | |||
public void NewSolutionIsNullError10() | |||
{ | |||
_solutionService.CreateProjectTemplatesFromSolution(Path.Combine(dirTest, "WebApplication1", "WebApplication1.sln"), Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments),null); | |||
} | |||
[TestMethod] | |||
[ExpectedException(typeof(NewSolutionIsEmptyException), "La nouvelle solution passée en second paramètre est vide !")] | |||
public void NewSolutionIsEmptyError11() | |||
{ | |||
_solutionService.CreateProjectTemplatesFromSolution(Path.Combine(dirTest, "WebApplication1", "WebApplication1.sln"), Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), " "); | |||
} | |||
[TestMethod] | |||
[ExpectedException(typeof(ExtensionNewSolutionException), "La nouvelle solution passée en second paramètre n'as pas l'extension sln!")] | |||
public void ExtensionNewSolutioError12() | |||
{ | |||
_solutionService.CreateProjectTemplatesFromSolution(Path.Combine(dirTest, "WebApplication1", "WebApplication1.sln"), Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "toto.sn"); | |||
} | |||
[TestMethod] | |||
public void TestSolutionNominal01() | |||
{ | |||
_solutionService.CreateProjectTemplatesFromSolution(Path.Combine(dirTest, "WebApplication1", "WebApplication1.sln"), Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "Test.sln"); | |||
} | |||
} | |||
} |
@@ -0,0 +1,23 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<configuration> | |||
<runtime> | |||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> | |||
<dependentAssembly> | |||
<assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> | |||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" /> | |||
</dependentAssembly> | |||
<dependentAssembly> | |||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> | |||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" /> | |||
</dependentAssembly> | |||
<dependentAssembly> | |||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> | |||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" /> | |||
</dependentAssembly> | |||
<dependentAssembly> | |||
<assemblyIdentity name="System.Threading.Tasks.Dataflow" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> | |||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" /> | |||
</dependentAssembly> | |||
</assemblyBinding> | |||
</runtime> | |||
</configuration> |
@@ -0,0 +1,5 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<packages> | |||
<package id="MSTest.TestAdapter" version="2.1.2" targetFramework="net48" /> | |||
<package id="MSTest.TestFramework" version="2.1.2" targetFramework="net48" /> | |||
</packages> |
@@ -0,0 +1,21 @@ | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Linq; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
namespace SIE.VSDK.Exceptions.DirectoryDestination | |||
{ | |||
public class DirectoryDestinationIsEmptyException:Exception | |||
{ | |||
public DirectoryDestinationIsEmptyException(string message) | |||
: base(message) | |||
{ | |||
} | |||
public DirectoryDestinationIsEmptyException(string message, Exception inner) | |||
: base(message, inner) | |||
{ | |||
} | |||
} | |||
} |
@@ -0,0 +1,21 @@ | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Linq; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
namespace SIE.VSDK.Exceptions.DirectoryDestination | |||
{ | |||
public class DirectoryDestinationIsNullException:Exception | |||
{ | |||
public DirectoryDestinationIsNullException(string message) | |||
: base(message) | |||
{ | |||
} | |||
public DirectoryDestinationIsNullException(string message, Exception inner) | |||
: base(message, inner) | |||
{ | |||
} | |||
} | |||
} |
@@ -0,0 +1,22 @@ | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Linq; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
namespace SIE.VSDK.Exceptions.DirectoryDestination | |||
{ | |||
public class DirectoryDestinationNotFoundException : Exception | |||
{ | |||
public DirectoryDestinationNotFoundException(string message) | |||
: base(message) | |||
{ | |||
} | |||
public DirectoryDestinationNotFoundException(string message, Exception inner) | |||
: base(message, inner) | |||
{ | |||
} | |||
} | |||
} |
@@ -0,0 +1,18 @@ | |||
using System; | |||
namespace SIE.VSDK.Exceptions.DirectoryDestination | |||
{ | |||
public class InvalideDirectoryDestinationException:Exception | |||
{ | |||
public InvalideDirectoryDestinationException(string message) | |||
: base(message) | |||
{ | |||
} | |||
public InvalideDirectoryDestinationException(string message, Exception inner) | |||
: base(message, inner) | |||
{ | |||
} | |||
} | |||
} |
@@ -0,0 +1,22 @@ | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Linq; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
namespace SIE.VSDK.Exceptions.Solution | |||
{ | |||
public class ExtensionNewSolutionException:Exception | |||
{ | |||
public ExtensionNewSolutionException(string message) | |||
: base(message) | |||
{ | |||
} | |||
public ExtensionNewSolutionException(string message, Exception inner) | |||
: base(message, inner) | |||
{ | |||
} | |||
} | |||
} |
@@ -0,0 +1,18 @@ | |||
using System; | |||
namespace SIE.VSDK.Exceptions.Solution | |||
{ | |||
public class ExtensionSolutionPathException:Exception | |||
{ | |||
public ExtensionSolutionPathException(string message) | |||
: base(message) | |||
{ | |||
} | |||
public ExtensionSolutionPathException(string message, Exception inner) | |||
: base(message, inner) | |||
{ | |||
} | |||
} | |||
} |
@@ -0,0 +1,21 @@ | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Linq; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
namespace SIE.VSDK.Exceptions.Solution | |||
{ | |||
public class InvalidSolutionPathException:Exception | |||
{ | |||
public InvalidSolutionPathException(string message) | |||
: base(message) | |||
{ | |||
} | |||
public InvalidSolutionPathException(string message, Exception inner) | |||
: base(message, inner) | |||
{ | |||
} | |||
} | |||
} |
@@ -0,0 +1,21 @@ | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Linq; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
namespace SIE.VSDK.Exceptions.Solution | |||
{ | |||
public class NewSolutionIsEmptyException: Exception | |||
{ | |||
public NewSolutionIsEmptyException(string message) | |||
: base(message) | |||
{ | |||
} | |||
public NewSolutionIsEmptyException(string message, Exception inner) | |||
: base(message, inner) | |||
{ | |||
} | |||
} | |||
} |
@@ -0,0 +1,18 @@ | |||
using System; | |||
namespace SIE.VSDK.Exceptions.Solution | |||
{ | |||
public class NewSolutionIsNullException:Exception | |||
{ | |||
public NewSolutionIsNullException(string message) | |||
: base(message) | |||
{ | |||
} | |||
public NewSolutionIsNullException(string message, Exception inner) | |||
: base(message, inner) | |||
{ | |||
} | |||
} | |||
} |
@@ -0,0 +1,21 @@ | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Linq; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
namespace SIE.VSDK.Exceptions.Solution | |||
{ | |||
public class SolutionPathIsEmptyException: Exception | |||
{ | |||
public SolutionPathIsEmptyException(string message) | |||
: base(message) | |||
{ | |||
} | |||
public SolutionPathIsEmptyException(string message, Exception inner) | |||
: base(message, inner) | |||
{ | |||
} | |||
} | |||
} |
@@ -0,0 +1,21 @@ | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Linq; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
namespace SIE.VSDK.Exceptions.Solution | |||
{ | |||
public class SolutionPathIsNotAFileException :Exception | |||
{ | |||
public SolutionPathIsNotAFileException(string message) | |||
: base(message) | |||
{ | |||
} | |||
public SolutionPathIsNotAFileException(string message, Exception inner) | |||
: base(message, inner) | |||
{ | |||
} | |||
} | |||
} |
@@ -0,0 +1,21 @@ | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Linq; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
namespace SIE.VSDK.Exceptions.Solution | |||
{ | |||
public class SolutionPathIsNullException:Exception | |||
{ | |||
public SolutionPathIsNullException(string message) | |||
: base(message) | |||
{ | |||
} | |||
public SolutionPathIsNullException(string message, Exception inner) | |||
: base(message, inner) | |||
{ | |||
} | |||
} | |||
} |
@@ -0,0 +1,23 @@ | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Linq; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
namespace SIE.VSDK.Exceptions.Solution | |||
{ | |||
public class SolutionPathNotFoundException : Exception | |||
{ | |||
public SolutionPathNotFoundException(string message) | |||
: base(message) | |||
{ | |||
} | |||
public SolutionPathNotFoundException(string message, Exception inner) | |||
: base(message, inner) | |||
{ | |||
} | |||
} | |||
} |
@@ -0,0 +1,44 @@ | |||
using Microsoft.Build.Evaluation; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.IO; | |||
using System.Linq; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
namespace SIE.VSDK.Extensions | |||
{ | |||
public static class DirectoryInfoExtensions | |||
{ | |||
public static void DeepCopy(this DirectoryInfo directory, string destinationDir) | |||
{ | |||
foreach (string dir in Directory.GetDirectories(directory.FullName, "*", SearchOption.AllDirectories)) | |||
{ | |||
string dirToCreate = dir.Replace(directory.FullName, destinationDir); | |||
Directory.CreateDirectory(dirToCreate); | |||
} | |||
foreach (string newPath in Directory.GetFiles(directory.FullName, "*.*", SearchOption.AllDirectories)) | |||
{ | |||
File.Copy(newPath, newPath.Replace(directory.FullName, destinationDir), true); | |||
} | |||
} | |||
public static List<string> GetCsProjFiles(this DirectoryInfo directory) | |||
{ | |||
List<string> listCsProj = new List<string>(); | |||
foreach (string newPath in Directory.GetFiles(directory.FullName, "*.csproj", SearchOption.AllDirectories)) | |||
{ | |||
ProjectCollection pc = new ProjectCollection(); | |||
Project project = pc.LoadProject(newPath, null); | |||
var properties = project.Properties; | |||
foreach (var property in properties) | |||
{ | |||
string result = $"Property: \"{property.Name}\" Value: {property.UnevaluatedValue}"; | |||
} | |||
listCsProj.Add(newPath); | |||
} | |||
return listCsProj; | |||
} | |||
} | |||
} |
@@ -0,0 +1,36 @@ | |||
using System.Reflection; | |||
using System.Runtime.CompilerServices; | |||
using System.Runtime.InteropServices; | |||
// Les informations générales relatives à un assembly dépendent de | |||
// l'ensemble d'attributs suivant. Changez les valeurs de ces attributs pour modifier les informations | |||
// associées à un assembly. | |||
[assembly: AssemblyTitle("SIE.VSDK")] | |||
[assembly: AssemblyDescription("")] | |||
[assembly: AssemblyConfiguration("")] | |||
[assembly: AssemblyCompany("")] | |||
[assembly: AssemblyProduct("SIE.VSDK")] | |||
[assembly: AssemblyCopyright("Copyright © 2022")] | |||
[assembly: AssemblyTrademark("")] | |||
[assembly: AssemblyCulture("")] | |||
// L'affectation de la valeur false à ComVisible rend les types invisibles dans cet assembly | |||
// aux composants COM. Si vous devez accéder à un type dans cet assembly à partir de | |||
// COM, affectez la valeur true à l'attribut ComVisible sur ce type. | |||
[assembly: ComVisible(false)] | |||
// Le GUID suivant est pour l'ID de la typelib si ce projet est exposé à COM | |||
[assembly: Guid("4bf7e556-d8fa-46ef-9655-13077e8d1ba6")] | |||
// Les informations de version pour un assembly se composent des quatre valeurs suivantes : | |||
// | |||
// Version principale | |||
// Version secondaire | |||
// Numéro de build | |||
// Révision | |||
// | |||
// Vous pouvez spécifier toutes les valeurs ou indiquer les numéros de build et de révision par défaut | |||
// en utilisant '*', comme indiqué ci-dessous : | |||
// [assembly: AssemblyVersion("1.0.*")] | |||
[assembly: AssemblyVersion("1.0.0.0")] | |||
[assembly: AssemblyFileVersion("1.0.0.0")] |
@@ -0,0 +1,174 @@ | |||
<?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')" /> | |||
<PropertyGroup> | |||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | |||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | |||
<ProjectGuid>{4BF7E556-D8FA-46EF-9655-13077E8D1BA6}</ProjectGuid> | |||
<OutputType>Library</OutputType> | |||
<AppDesignerFolder>Properties</AppDesignerFolder> | |||
<RootNamespace>SIE.VSDK</RootNamespace> | |||
<AssemblyName>SIE.VSDK</AssemblyName> | |||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion> | |||
<FileAlignment>512</FileAlignment> | |||
<Deterministic>true</Deterministic> | |||
<NuGetPackageImportStamp> | |||
</NuGetPackageImportStamp> | |||
</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> | |||
<ItemGroup> | |||
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Microsoft.Build, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\Microsoft.Build.15.1.1012\lib\net46\Microsoft.Build.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Microsoft.Build.Framework, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\Microsoft.Build.Framework.15.1.1012\lib\net46\Microsoft.Build.Framework.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Microsoft.Build.Utilities.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\Microsoft.Build.Utilities.Core.15.1.1012\lib\net46\Microsoft.Build.Utilities.Core.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Microsoft.IO.Redist, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\Microsoft.IO.Redist.6.0.0\lib\net472\Microsoft.IO.Redist.dll</HintPath> | |||
</Reference> | |||
<Reference Include="Microsoft.NET.StringTools, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\Microsoft.NET.StringTools.17.3.1\lib\net472\Microsoft.NET.StringTools.dll</HintPath> | |||
</Reference> | |||
<Reference Include="System" /> | |||
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath> | |||
</Reference> | |||
<Reference Include="System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\System.Collections.Immutable.6.0.0\lib\net461\System.Collections.Immutable.dll</HintPath> | |||
</Reference> | |||
<Reference Include="System.ComponentModel.Composition" /> | |||
<Reference Include="System.Configuration" /> | |||
<Reference Include="System.Configuration.ConfigurationManager, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\System.Configuration.ConfigurationManager.6.0.0\lib\net461\System.Configuration.ConfigurationManager.dll</HintPath> | |||
</Reference> | |||
<Reference Include="System.Core" /> | |||
<Reference Include="System.Data.OracleClient" /> | |||
<Reference Include="System.IO.Compression" /> | |||
<Reference Include="System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll</HintPath> | |||
</Reference> | |||
<Reference Include="System.Net" /> | |||
<Reference Include="System.Numerics" /> | |||
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath> | |||
</Reference> | |||
<Reference Include="System.Reflection.Metadata, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\System.Reflection.Metadata.6.0.0\lib\net461\System.Reflection.Metadata.dll</HintPath> | |||
</Reference> | |||
<Reference Include="System.Reflection.MetadataLoadContext, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\System.Reflection.MetadataLoadContext.6.0.0\lib\net461\System.Reflection.MetadataLoadContext.dll</HintPath> | |||
</Reference> | |||
<Reference Include="System.Runtime, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\System.Runtime.4.1.0\lib\net462\System.Runtime.dll</HintPath> | |||
<Private>True</Private> | |||
<Private>True</Private> | |||
</Reference> | |||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath> | |||
</Reference> | |||
<Reference Include="System.Runtime.InteropServices, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\System.Runtime.InteropServices.4.1.0\lib\net462\System.Runtime.InteropServices.dll</HintPath> | |||
<Private>True</Private> | |||
<Private>True</Private> | |||
</Reference> | |||
<Reference Include="System.Security" /> | |||
<Reference Include="System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\System.Security.AccessControl.6.0.0\lib\net461\System.Security.AccessControl.dll</HintPath> | |||
</Reference> | |||
<Reference Include="System.Security.Permissions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\System.Security.Permissions.6.0.0\lib\net461\System.Security.Permissions.dll</HintPath> | |||
</Reference> | |||
<Reference Include="System.Security.Principal.Windows, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\System.Security.Principal.Windows.5.0.0\lib\net461\System.Security.Principal.Windows.dll</HintPath> | |||
</Reference> | |||
<Reference Include="System.ServiceProcess" /> | |||
<Reference Include="System.Text.Encodings.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\System.Text.Encodings.Web.6.0.0\lib\net461\System.Text.Encodings.Web.dll</HintPath> | |||
</Reference> | |||
<Reference Include="System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\System.Text.Json.6.0.0\lib\net461\System.Text.Json.dll</HintPath> | |||
</Reference> | |||
<Reference Include="System.Threading.Tasks.Dataflow, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\System.Threading.Tasks.Dataflow.6.0.0\lib\net461\System.Threading.Tasks.Dataflow.dll</HintPath> | |||
</Reference> | |||
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath> | |||
</Reference> | |||
<Reference Include="System.Threading.Thread, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\System.Threading.Thread.4.0.0\lib\net46\System.Threading.Thread.dll</HintPath> | |||
<Private>True</Private> | |||
<Private>True</Private> | |||
</Reference> | |||
<Reference Include="System.Transactions" /> | |||
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll</HintPath> | |||
</Reference> | |||
<Reference Include="System.Xaml" /> | |||
<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="WindowsBase" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<Compile Include="Exceptions\DirectoryDestination\DirectoryDestinationIsEmptyException.cs" /> | |||
<Compile Include="Exceptions\DirectoryDestination\InvalideDirectoryDestinationException.cs" /> | |||
<Compile Include="Exceptions\DirectoryDestination\DirectoryDestinationIsNullException.cs" /> | |||
<Compile Include="Exceptions\DirectoryDestination\DirectoryDestinationNotFoundException.cs" /> | |||
<Compile Include="Exceptions\Solution\ExtensionSolutionPathException.cs" /> | |||
<Compile Include="Exceptions\Solution\ExtensionNewSolutionException.cs" /> | |||
<Compile Include="Exceptions\Solution\InvalidSolutionPathException.cs" /> | |||
<Compile Include="Exceptions\Solution\NewSolutionIsEmptyException.cs" /> | |||
<Compile Include="Exceptions\Solution\NewSolutionIsNullException.cs" /> | |||
<Compile Include="Exceptions\Solution\SolutionPathIsNotAFileException.cs" /> | |||
<Compile Include="Exceptions\Solution\SolutionPathIsNullException.cs" /> | |||
<Compile Include="Exceptions\Solution\SolutionPathNotFoundException.cs" /> | |||
<Compile Include="Exceptions\Solution\SolutionPathIsEmptyException.cs" /> | |||
<Compile Include="Extensions\DirectoryInfoExtensions.cs" /> | |||
<Compile Include="Properties\AssemblyInfo.cs" /> | |||
<Compile Include="Services\PathService.cs" /> | |||
<Compile Include="Services\SolutionService.cs" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ProjectReference Include="..\SIE.IVSDK\SIE.IVSDK.csproj"> | |||
<Project>{28110bdb-998e-42d3-9732-f5cb7740f6b9}</Project> | |||
<Name>SIE.IVSDK</Name> | |||
</ProjectReference> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<None Include="app.config" /> | |||
<None Include="packages.config" /> | |||
</ItemGroup> | |||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> | |||
<Import Project="..\packages\System.Text.Json.6.0.0\build\System.Text.Json.targets" Condition="Exists('..\packages\System.Text.Json.6.0.0\build\System.Text.Json.targets')" /> | |||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> | |||
<PropertyGroup> | |||
<ErrorText>Ce projet fait référence à des packages NuGet qui sont manquants sur cet ordinateur. Utilisez l'option de restauration des packages NuGet pour les télécharger. Pour plus d'informations, consultez http://go.microsoft.com/fwlink/?LinkID=322105. Le fichier manquant est : {0}.</ErrorText> | |||
</PropertyGroup> | |||
<Error Condition="!Exists('..\packages\System.Text.Json.6.0.0\build\System.Text.Json.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\System.Text.Json.6.0.0\build\System.Text.Json.targets'))" /> | |||
</Target> | |||
</Project> |
@@ -0,0 +1,36 @@ | |||
using SIE.IVSDK.Services; | |||
using System; | |||
using System.IO; | |||
using System.Text.RegularExpressions; | |||
namespace SIE.VSDK.Services | |||
{ | |||
public class PathService : IPathService | |||
{ | |||
public bool IsValidPath(string path, bool allowRelativePaths = false) | |||
{ | |||
bool isValid = true; | |||
try | |||
{ | |||
string fullPath = Path.GetFullPath(path); | |||
if (allowRelativePaths) | |||
{ | |||
isValid = Path.IsPathRooted(path); | |||
} | |||
else | |||
{ | |||
string root = Path.GetPathRoot(path); | |||
isValid = string.IsNullOrEmpty(root.Trim(new char[] { '\\', '/' })) == false; | |||
} | |||
} | |||
catch (Exception ex) | |||
{ | |||
isValid = false; | |||
} | |||
return isValid; | |||
} | |||
} | |||
} |
@@ -0,0 +1,104 @@ | |||
using SIE.IVSDK.Services; | |||
using SIE.VSDK.Exceptions.DirectoryDestination; | |||
using SIE.VSDK.Exceptions.Solution; | |||
using SIE.VSDK.Extensions; | |||
using System.Collections.Generic; | |||
using System.IO; | |||
namespace SIE.VSDK.Services | |||
{ | |||
public class SolutionService : ISolutionService | |||
{ | |||
private readonly IPathService _pathService; | |||
public SolutionService(IPathService pathService) | |||
{ | |||
_pathService = pathService; | |||
} | |||
public void CreateProjectTemplatesFromSolution(string solutionPath, string directoryDestinationPath, string newSolutionName) | |||
{ | |||
if(solutionPath==null) | |||
{ | |||
throw new SolutionPathIsNullException($"Le chemin de la solution {Path.GetFileName(solutionPath)} ne doit pas être null !"); | |||
} | |||
if(solutionPath.Trim() == string.Empty) | |||
{ | |||
throw new SolutionPathIsEmptyException($"Le chemin de la solution {Path.GetFileName(solutionPath)} ne doit pas être vide !"); | |||
} | |||
if (!_pathService.IsValidPath(solutionPath)) | |||
{ | |||
throw new InvalidSolutionPathException($"Le chemin de la solution {Path.GetFileName(solutionPath)} n'est pas valide !"); | |||
} | |||
if (Path.GetExtension(solutionPath) != ".sln") | |||
{ | |||
throw new ExtensionSolutionPathException($"Le chemin de la solution {Path.GetFileName(solutionPath)} doit être d'extension .sln !"); | |||
} | |||
if (!File.Exists(solutionPath)) | |||
{ | |||
throw new SolutionPathIsNotAFileException($"Le chemin de la solution {Path.GetFileName(solutionPath)} doit être un fichier existant!"); | |||
} | |||
if(directoryDestinationPath ==null) | |||
{ | |||
throw new DirectoryDestinationIsNullException($"Le chemin de destination {directoryDestinationPath} ne doit pas être null !"); | |||
} | |||
if(directoryDestinationPath.Trim()==string.Empty) | |||
{ | |||
throw new DirectoryDestinationIsEmptyException($"Le chemin de destination {directoryDestinationPath} ne doit pas être vide !"); | |||
} | |||
if(!_pathService.IsValidPath(directoryDestinationPath)) | |||
{ | |||
throw new InvalideDirectoryDestinationException($"Le chemin de destination {directoryDestinationPath} n'est pas valide !"); | |||
} | |||
if(!Directory.Exists(directoryDestinationPath)) | |||
{ | |||
throw new DirectoryDestinationNotFoundException($"Le dossier de destination {directoryDestinationPath} n'existe pas!"); | |||
} | |||
if (newSolutionName == null) | |||
{ | |||
throw new NewSolutionIsNullException("Le nom de la nouvelle solution est null"); | |||
} | |||
if (newSolutionName.Trim() == string.Empty) | |||
{ | |||
throw new NewSolutionIsEmptyException("Le nom de la nouvelle solution est vide"); | |||
} | |||
if (Path.GetExtension(newSolutionName) != ".sln") | |||
{ | |||
throw new ExtensionNewSolutionException($"Le nom de la nouvelle solution {newSolutionName} doit être de type .sln !"); | |||
} | |||
string VSDK_ECOLOCALE_directory = Path.Combine(directoryDestinationPath, "VSDK_ECOLOCALE"); | |||
if (!Directory.Exists(VSDK_ECOLOCALE_directory)) | |||
{ | |||
Directory.CreateDirectory(VSDK_ECOLOCALE_directory); | |||
} | |||
string TMP_TEMPLATE_directory = Path.Combine(VSDK_ECOLOCALE_directory, "TMP_TEMPLATE"); | |||
if (!Directory.Exists(TMP_TEMPLATE_directory)) | |||
{ | |||
Directory.CreateDirectory(TMP_TEMPLATE_directory); | |||
} | |||
string TMP_SLN_directory = Path.Combine(TMP_TEMPLATE_directory, Path.GetFileNameWithoutExtension(newSolutionName)); | |||
if (!Directory.Exists(TMP_SLN_directory)) | |||
{ | |||
Directory.CreateDirectory(TMP_SLN_directory); | |||
} | |||
DirectoryInfo sourceDir = new DirectoryInfo(Path.GetDirectoryName(solutionPath)); | |||
sourceDir.DeepCopy(TMP_SLN_directory); | |||
string oldName = Path.Combine(TMP_SLN_directory, Path.GetFileName(solutionPath)); | |||
File.Delete(oldName); | |||
sourceDir = new DirectoryInfo(Path.GetDirectoryName(TMP_SLN_directory)); | |||
List<string> csProjFiles = sourceDir.GetCsProjFiles(); | |||
} | |||
} | |||
} |
@@ -0,0 +1,23 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<configuration> | |||
<runtime> | |||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> | |||
<dependentAssembly> | |||
<assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> | |||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" /> | |||
</dependentAssembly> | |||
<dependentAssembly> | |||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> | |||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" /> | |||
</dependentAssembly> | |||
<dependentAssembly> | |||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> | |||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" /> | |||
</dependentAssembly> | |||
<dependentAssembly> | |||
<assemblyIdentity name="System.Threading.Tasks.Dataflow" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> | |||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" /> | |||
</dependentAssembly> | |||
</assemblyBinding> | |||
</runtime> | |||
</configuration> |
@@ -0,0 +1,32 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<packages> | |||
<package id="Microsoft.Bcl.AsyncInterfaces" version="6.0.0" targetFramework="net48" /> | |||
<package id="Microsoft.Build" version="15.1.1012" targetFramework="net48" /> | |||
<package id="Microsoft.Build.Framework" version="15.1.1012" targetFramework="net48" /> | |||
<package id="Microsoft.Build.Utilities.Core" version="15.1.1012" targetFramework="net48" /> | |||
<package id="Microsoft.IO.Redist" version="6.0.0" targetFramework="net48" /> | |||
<package id="Microsoft.NET.StringTools" version="17.3.1" targetFramework="net48" /> | |||
<package id="System.Buffers" version="4.5.1" targetFramework="net48" /> | |||
<package id="System.Collections" version="4.0.11" targetFramework="net48" /> | |||
<package id="System.Collections.Immutable" version="6.0.0" targetFramework="net48" /> | |||
<package id="System.Configuration.ConfigurationManager" version="6.0.0" targetFramework="net48" /> | |||
<package id="System.Diagnostics.Debug" version="4.0.11" targetFramework="net48" /> | |||
<package id="System.Globalization" version="4.0.11" targetFramework="net48" /> | |||
<package id="System.Memory" version="4.5.5" targetFramework="net48" /> | |||
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net48" /> | |||
<package id="System.Reflection.Metadata" version="6.0.0" targetFramework="net48" /> | |||
<package id="System.Reflection.MetadataLoadContext" version="6.0.0" targetFramework="net48" /> | |||
<package id="System.Runtime" version="4.1.0" targetFramework="net48" /> | |||
<package id="System.Runtime.CompilerServices.Unsafe" version="6.0.0" targetFramework="net48" /> | |||
<package id="System.Runtime.InteropServices" version="4.1.0" targetFramework="net48" /> | |||
<package id="System.Security.AccessControl" version="6.0.0" targetFramework="net48" /> | |||
<package id="System.Security.Permissions" version="6.0.0" targetFramework="net48" /> | |||
<package id="System.Security.Principal.Windows" version="5.0.0" targetFramework="net48" /> | |||
<package id="System.Text.Encodings.Web" version="6.0.0" targetFramework="net48" /> | |||
<package id="System.Text.Json" version="6.0.0" targetFramework="net48" /> | |||
<package id="System.Threading" version="4.0.11" targetFramework="net48" /> | |||
<package id="System.Threading.Tasks.Dataflow" version="6.0.0" targetFramework="net48" /> | |||
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net48" /> | |||
<package id="System.Threading.Thread" version="4.0.0" targetFramework="net48" /> | |||
<package id="System.ValueTuple" version="4.5.0" targetFramework="net48" /> | |||
</packages> |
@@ -0,0 +1,25 @@ | |||
| |||
Microsoft Visual Studio Solution File, Format Version 12.00 | |||
# Visual Studio Version 16 | |||
VisualStudioVersion = 16.0.32901.82 | |||
MinimumVisualStudioVersion = 10.0.40219.1 | |||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebApplication1", "WebApplication1\WebApplication1.csproj", "{026EBCAC-E688-48C9-BF66-8CB6ED08CEB9}" | |||
EndProject | |||
Global | |||
GlobalSection(SolutionConfigurationPlatforms) = preSolution | |||
Debug|Any CPU = Debug|Any CPU | |||
Release|Any CPU = Release|Any CPU | |||
EndGlobalSection | |||
GlobalSection(ProjectConfigurationPlatforms) = postSolution | |||
{026EBCAC-E688-48C9-BF66-8CB6ED08CEB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||
{026EBCAC-E688-48C9-BF66-8CB6ED08CEB9}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||
{026EBCAC-E688-48C9-BF66-8CB6ED08CEB9}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||
{026EBCAC-E688-48C9-BF66-8CB6ED08CEB9}.Release|Any CPU.Build.0 = Release|Any CPU | |||
EndGlobalSection | |||
GlobalSection(SolutionProperties) = preSolution | |||
HideSolutionNode = FALSE | |||
EndGlobalSection | |||
GlobalSection(ExtensibilityGlobals) = postSolution | |||
SolutionGuid = {04D889E7-D132-4513-ACE0-16E5C4CF0CA1} | |||
EndGlobalSection | |||
EndGlobal |
@@ -0,0 +1,39 @@ | |||
using Microsoft.AspNetCore.Mvc; | |||
using Microsoft.Extensions.Logging; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Linq; | |||
using System.Threading.Tasks; | |||
namespace WebApplication1.Controllers | |||
{ | |||
[ApiController] | |||
[Route("[controller]")] | |||
public class WeatherForecastController : ControllerBase | |||
{ | |||
private static readonly string[] Summaries = new[] | |||
{ | |||
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" | |||
}; | |||
private readonly ILogger<WeatherForecastController> _logger; | |||
public WeatherForecastController(ILogger<WeatherForecastController> logger) | |||
{ | |||
_logger = logger; | |||
} | |||
[HttpGet] | |||
public IEnumerable<WeatherForecast> Get() | |||
{ | |||
var rng = new Random(); | |||
return Enumerable.Range(1, 5).Select(index => new WeatherForecast | |||
{ | |||
Date = DateTime.Now.AddDays(index), | |||
TemperatureC = rng.Next(-20, 55), | |||
Summary = Summaries[rng.Next(Summaries.Length)] | |||
}) | |||
.ToArray(); | |||
} | |||
} | |||
} |
@@ -0,0 +1,26 @@ | |||
using Microsoft.AspNetCore.Hosting; | |||
using Microsoft.Extensions.Configuration; | |||
using Microsoft.Extensions.Hosting; | |||
using Microsoft.Extensions.Logging; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Linq; | |||
using System.Threading.Tasks; | |||
namespace WebApplication1 | |||
{ | |||
public class Program | |||
{ | |||
public static void Main(string[] args) | |||
{ | |||
CreateHostBuilder(args).Build().Run(); | |||
} | |||
public static IHostBuilder CreateHostBuilder(string[] args) => | |||
Host.CreateDefaultBuilder(args) | |||
.ConfigureWebHostDefaults(webBuilder => | |||
{ | |||
webBuilder.UseStartup<Startup>(); | |||
}); | |||
} | |||
} |
@@ -0,0 +1,31 @@ | |||
{ | |||
"$schema": "http://json.schemastore.org/launchsettings.json", | |||
"iisSettings": { | |||
"windowsAuthentication": false, | |||
"anonymousAuthentication": true, | |||
"iisExpress": { | |||
"applicationUrl": "http://localhost:40762", | |||
"sslPort": 44360 | |||
} | |||
}, | |||
"profiles": { | |||
"IIS Express": { | |||
"commandName": "IISExpress", | |||
"launchBrowser": true, | |||
"launchUrl": "swagger", | |||
"environmentVariables": { | |||
"ASPNETCORE_ENVIRONMENT": "Development" | |||
} | |||
}, | |||
"WebApplication1": { | |||
"commandName": "Project", | |||
"dotnetRunMessages": "true", | |||
"launchBrowser": true, | |||
"launchUrl": "swagger", | |||
"applicationUrl": "https://localhost:5001;http://localhost:5000", | |||
"environmentVariables": { | |||
"ASPNETCORE_ENVIRONMENT": "Development" | |||
} | |||
} | |||
} | |||
} |
@@ -0,0 +1,59 @@ | |||
using Microsoft.AspNetCore.Builder; | |||
using Microsoft.AspNetCore.Hosting; | |||
using Microsoft.AspNetCore.HttpsPolicy; | |||
using Microsoft.AspNetCore.Mvc; | |||
using Microsoft.Extensions.Configuration; | |||
using Microsoft.Extensions.DependencyInjection; | |||
using Microsoft.Extensions.Hosting; | |||
using Microsoft.Extensions.Logging; | |||
using Microsoft.OpenApi.Models; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Linq; | |||
using System.Threading.Tasks; | |||
namespace WebApplication1 | |||
{ | |||
public class Startup | |||
{ | |||
public Startup(IConfiguration configuration) | |||
{ | |||
Configuration = configuration; | |||
} | |||
public IConfiguration Configuration { get; } | |||
// This method gets called by the runtime. Use this method to add services to the container. | |||
public void ConfigureServices(IServiceCollection services) | |||
{ | |||
services.AddControllers(); | |||
services.AddSwaggerGen(c => | |||
{ | |||
c.SwaggerDoc("v1", new OpenApiInfo { Title = "WebApplication1", Version = "v1" }); | |||
}); | |||
} | |||
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. | |||
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) | |||
{ | |||
if (env.IsDevelopment()) | |||
{ | |||
app.UseDeveloperExceptionPage(); | |||
app.UseSwagger(); | |||
app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "WebApplication1 v1")); | |||
} | |||
app.UseHttpsRedirection(); | |||
app.UseRouting(); | |||
app.UseAuthorization(); | |||
app.UseEndpoints(endpoints => | |||
{ | |||
endpoints.MapControllers(); | |||
}); | |||
} | |||
} | |||
} |
@@ -0,0 +1,15 @@ | |||
using System; | |||
namespace WebApplication1 | |||
{ | |||
public class WeatherForecast | |||
{ | |||
public DateTime Date { get; set; } | |||
public int TemperatureC { get; set; } | |||
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); | |||
public string Summary { get; set; } | |||
} | |||
} |
@@ -0,0 +1,11 @@ | |||
<Project Sdk="Microsoft.NET.Sdk.Web"> | |||
<PropertyGroup> | |||
<TargetFramework>net5.0</TargetFramework> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<PackageReference Include="Swashbuckle.AspNetCore" Version="5.6.3" /> | |||
</ItemGroup> | |||
</Project> |
@@ -0,0 +1,9 @@ | |||
{ | |||
"Logging": { | |||
"LogLevel": { | |||
"Default": "Information", | |||
"Microsoft": "Warning", | |||
"Microsoft.Hosting.Lifetime": "Information" | |||
} | |||
} | |||
} |
@@ -0,0 +1,10 @@ | |||
{ | |||
"Logging": { | |||
"LogLevel": { | |||
"Default": "Information", | |||
"Microsoft": "Warning", | |||
"Microsoft.Hosting.Lifetime": "Information" | |||
} | |||
}, | |||
"AllowedHosts": "*" | |||
} |