Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/crm migrate #245

Merged
merged 76 commits into from
Jun 16, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
5783511
ASC.CRM: first commit
alexeybannov Mar 2, 2020
08d999b
Merge branch 'master' into feature/crm-migrate
alexeybannov Mar 2, 2020
cc2824a
migrate DAO to EF Core
alexeybannov Mar 11, 2020
36e6b0a
crm: migrate DAO to EF Core
alexeybannov Mar 16, 2020
d078909
Merge branch 'master' into feature/crm-migrate
alexeybannov Mar 16, 2020
039f883
crm: migrate DAO to EF Core
alexeybannov Mar 26, 2020
acdebad
crm: migrate DAO to EF Core
alexeybannov Mar 30, 2020
a097024
Merge branch 'master' into feature/crm-migrate
alexeybannov Mar 30, 2020
6313464
crm: migrate DAO to EF Core
alexeybannov Apr 2, 2020
bbb4997
Merge branch 'master' into feature/crm-migrate
alexeybannov Apr 2, 2020
47a2c52
crm: migrate DAO to EF Core
alexeybannov Apr 7, 2020
f8f3f09
crm: migrate DAO to EF Core
alexeybannov Apr 9, 2020
4fb3f62
crm: migrate DAO to EF Core
alexeybannov Apr 14, 2020
f76724a
crm: migrate DAO to EF Core
alexeybannov Apr 14, 2020
9928c9b
crm: migrate DAO to EF Core
alexeybannov Apr 14, 2020
b78b8c0
Merge branch 'master' into feature/crm-migrate
alexeybannov Apr 15, 2020
35762e4
crm: migrate Api to EF Core
alexeybannov Apr 16, 2020
dda75ec
crm: migrate Api to EF Core
alexeybannov Apr 18, 2020
ff19899
Merge branch 'master' into feature/crm-migrate
alexeybannov Apr 18, 2020
a6d618c
crm: migrate Api to EF Core
alexeybannov Apr 22, 2020
ab87be5
Merge branch 'master' into feature/crm-migrate
alexeybannov Apr 22, 2020
8bb69dd
Merge branch 'master' into feature/crm-migrate
alexeybannov Feb 3, 2021
083d25b
CRM: продолжаю переносить проект
alexeybannov Feb 24, 2021
8afbae0
crm: migrate from old project
alexeybannov Mar 1, 2021
e061a6d
crm: migrate from old project
alexeybannov Mar 2, 2021
bd48d80
Merge branch 'master' into feature/crm-migrate
alexeybannov Mar 2, 2021
a8ffda6
crm: migrate from old project
alexeybannov Mar 5, 2021
7fab0b4
crm: refactoring code
alexeybannov Mar 9, 2021
5e42dab
crm: refactoring
alexeybannov Mar 10, 2021
561739f
crm: migrate HttpHandler to Middleware
alexeybannov Mar 13, 2021
30222af
crm: refactoring
alexeybannov Mar 13, 2021
4902cb6
crm: refactoring. migrate ReportsController and VoIPController
alexeybannov Mar 15, 2021
19b9067
crm: refactoring
alexeybannov Mar 17, 2021
6da70a1
crm: refactoring
alexeybannov Mar 19, 2021
9182d0a
crm: bug fix
alexeybannov Mar 22, 2021
c0d9a15
crm: refactoring
alexeybannov Mar 22, 2021
2b1b3e5
crm: refactoring
alexeybannov Mar 22, 2021
1fac4bc
crm: refactoring
alexeybannov Mar 22, 2021
7c96b2f
core: migrate several interfaces
alexeybannov Mar 22, 2021
c750a55
core: added ControllerNameAttribute
alexeybannov Mar 22, 2021
11e3738
files: added 'scope' attribute for several classes
alexeybannov Mar 22, 2021
950506a
calendar: migrate extension for DateTime
alexeybannov Mar 22, 2021
11acb31
crm: refactoring
alexeybannov Mar 23, 2021
ec05e8d
crm: refactoring & bugfix
alexeybannov Mar 24, 2021
22293af
crm: bugfix
alexeybannov Mar 25, 2021
4ee1cf8
crm: fixed reports query
alexeybannov Mar 26, 2021
393ada8
crm: bugfix
alexeybannov Mar 31, 2021
c0582c1
merge from develop
alexeybannov Apr 1, 2021
8ff27ff
added ControllerNameAttributeConvention
alexeybannov Apr 2, 2021
748ae7e
crm: bugfix
alexeybannov Apr 2, 2021
635d205
crm: refactoring
alexeybannov Apr 6, 2021
b54e3d3
added support AutoMapper for Db Entity
alexeybannov Apr 15, 2021
8816e53
merge from develop
alexeybannov Apr 28, 2021
9bdc643
crm: add support WindowsService/systemd for IHostBuilder
alexeybannov Apr 30, 2021
424c6a6
migrate base mapper class from ASC.CRM to ASC.Common
alexeybannov Apr 30, 2021
2b0949c
remove unused project
alexeybannov Apr 30, 2021
c86257c
Merge branch 'develop' into feature/crm-migrate
alexeybannov May 4, 2021
92ce702
crm: refactoring. bugfix
alexeybannov May 5, 2021
09ef8ba
crm.server: refactoring. remove obsolete cache class. In future relea…
alexeybannov May 7, 2021
d85f6c0
crm:refactoring
alexeybannov May 12, 2021
f1ca097
crm: fixed work with sql queries
alexeybannov May 15, 2021
bbe1f1f
crm: code refactoring
alexeybannov May 17, 2021
86a7802
crm: refactoring
alexeybannov May 17, 2021
4b4b03f
Merge branch 'develop' into feature/crm-migrate
alexeybannov May 18, 2021
c8e5c5a
crm: migrate from ProgressQueue to DistributedTaskQueue
alexeybannov May 24, 2021
401c8ca
crm: migrate from newtonsoft to system.text.json
alexeybannov May 28, 2021
a9a7c0a
crm: refactoring
alexeybannov May 28, 2021
ccd30b7
crm: refactoring. used JsonPropertyName instead of DataMember
alexeybannov May 31, 2021
d7e3e71
crm: removed DataContract attribute.
alexeybannov May 31, 2021
2018820
Merge branch 'develop' into feature/crm-migrate
alexeybannov May 31, 2021
e75e048
crm: fixed build
alexeybannov Jun 2, 2021
c04dc44
crm: refacroting
alexeybannov Jun 3, 2021
58e7e41
crm: code cleanup
alexeybannov Jun 4, 2021
fc20a74
crm: refactoring
alexeybannov Jun 4, 2021
b925943
merge from develop
alexeybannov Jun 7, 2021
89264cc
crm: created common project for common services
alexeybannov Jun 15, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 6 additions & 0 deletions ASC.Web.sln
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.Calendar", "products\AS
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.SsoAuth.Svc", "common\services\ASC.SsoAuth.Svc\ASC.SsoAuth.Svc.csproj", "{6AD828EA-FBA2-4D30-B969-756B3BE78E4E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.CRM.BackgroundTasks", "products\ASC.CRM\BackgroundTasks\ASC.CRM.BackgroundTasks.csproj", "{E52C0E35-A05C-437F-8FF2-3E0AC9F81433}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -245,6 +247,10 @@ Global
{6AD828EA-FBA2-4D30-B969-756B3BE78E4E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6AD828EA-FBA2-4D30-B969-756B3BE78E4E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6AD828EA-FBA2-4D30-B969-756B3BE78E4E}.Release|Any CPU.Build.0 = Release|Any CPU
{E52C0E35-A05C-437F-8FF2-3E0AC9F81433}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E52C0E35-A05C-437F-8FF2-3E0AC9F81433}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E52C0E35-A05C-437F-8FF2-3E0AC9F81433}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E52C0E35-A05C-437F-8FF2-3E0AC9F81433}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
2 changes: 2 additions & 0 deletions build/run/CrmBackgroundTasks.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
echo "RUN ASC.CRM.BackgroundTasks"
call dotnet run --project ..\..\products\ASC.CRM\BackgroundTasks\ASC.CRM.BackgroundTasks.csproj --no-build --$STORAGE_ROOT=..\..\..\Data --log__dir=..\..\..\Logs --log__name=crm
2 changes: 1 addition & 1 deletion build/run/CrmServer.bat
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
echo "RUN ASC.CRM"
echo "RUN ASC.CRM.Server"
call dotnet run --project ..\..\products\ASC.CRM\Server\ASC.CRM.csproj --no-build --$STORAGE_ROOT=..\..\..\Data --log__dir=..\..\..\Logs --log__name=crm
4 changes: 4 additions & 0 deletions common/ASC.Api.Core/ASC.Api.Core.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@
<DebugSymbols>false</DebugSymbols>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="8.1.1" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\web\ASC.Web.Core\ASC.Web.Core.csproj" />
<ProjectReference Include="..\ASC.Common\ASC.Common.csproj" />
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
using System;
using System.Linq;

using Microsoft.AspNetCore.Mvc.ApplicationModels;

namespace ASC.Api.Core.Convention
{
[AttributeUsage(AttributeTargets.Class)]
public class ControllerNameAttribute : Attribute
{
public string Name { get; }

public ControllerNameAttribute(string name)
{
Name = name;
}
}

public class ControllerNameAttributeConvention : IControllerModelConvention
{
public void Apply(ControllerModel controller)
{
var controllerNameAttribute = controller.Attributes.OfType<ControllerNameAttribute>().SingleOrDefault();
if (controllerNameAttribute != null)
{
controller.ControllerName = controllerNameAttribute.Name;
}
}
}
}
26 changes: 17 additions & 9 deletions common/ASC.Api.Core/Core/BaseStartup.cs
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
using System.Text.Json.Serialization;
using System.Reflection;
using System.Text.Json.Serialization;

using ASC.Api.Core.Auth;
using ASC.Api.Core.Convention;
using ASC.Api.Core.Core;
using ASC.Api.Core.Middleware;
using ASC.Common;
using ASC.Common.Caching;
using ASC.Common.DependencyInjection;
using ASC.Common.Logging;
using ASC.Common.Mapping;

using Autofac;

Expand Down Expand Up @@ -81,13 +84,16 @@ public virtual void ConfigureServices(IServiceCollection services)
DIHelper.RegisterProducts(Configuration, HostEnvironment.ContentRootPath);

var builder = services.AddMvcCore(config =>
{
var policy = new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build();
config.Filters.Add(new AuthorizeFilter(policy));
config.Filters.Add(new TypeFilterAttribute(typeof(TenantStatusFilter)));
config.Filters.Add(new TypeFilterAttribute(typeof(PaymentFilter)));
config.Filters.Add(new TypeFilterAttribute(typeof(IpSecurityFilter)));
config.Filters.Add(new TypeFilterAttribute(typeof(ProductSecurityFilter)));
{
config.Conventions.Add(new ControllerNameAttributeConvention());

var policy = new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build();

config.Filters.Add(new AuthorizeFilter(policy));
config.Filters.Add(new TypeFilterAttribute(typeof(TenantStatusFilter)));
config.Filters.Add(new TypeFilterAttribute(typeof(PaymentFilter)));
config.Filters.Add(new TypeFilterAttribute(typeof(IpSecurityFilter)));
config.Filters.Add(new TypeFilterAttribute(typeof(ProductSecurityFilter)));
config.Filters.Add(new CustomResponseFilterAttribute());
config.Filters.Add(new CustomExceptionFilterAttribute());
config.Filters.Add(new TypeFilterAttribute(typeof(FormatFilter)));
Expand All @@ -108,7 +114,9 @@ public virtual void ConfigureServices(IServiceCollection services)
if (LogParams != null)
{
LogNLogExtension.ConfigureLog(DIHelper, LogParams);
}
}

services.AddAutoMapper(Assembly.GetAssembly(typeof(MappingProfile)));
}

public virtual void Configure(IApplicationBuilder app, IWebHostEnvironment env)
Expand Down
1 change: 1 addition & 0 deletions common/ASC.Common/ASC.Common.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
<ItemGroup>
<PackageReference Include="ARSoft.Tools.NetStandard.DXSdata" Version="1.0.0" />
<PackageReference Include="Autofac.Configuration" Version="6.0.0" />
<PackageReference Include="AutoMapper" Version="10.1.1" />
<PackageReference Include="Confluent.Kafka" Version="1.4.3" />
<PackageReference Include="Google.Protobuf" Version="3.13.0" />
<PackageReference Include="Grpc.Tools" Version="2.32.0">
Expand Down
34 changes: 34 additions & 0 deletions common/ASC.Common/Mapping/IMapFrom.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/*
*
* (c) Copyright Ascensio System Limited 2010-2018
*
* This program is freeware. You can redistribute it and/or modify it under the terms of the GNU
* General Public License (GPL) version 3 as published by the Free Software Foundation (https://www.gnu.org/copyleft/gpl.html).
* In accordance with Section 7(a) of the GNU GPL its Section 15 shall be amended to the effect that
* Ascensio System SIA expressly excludes the warranty of non-infringement of any third-party rights.
*
* THIS PROGRAM IS DISTRIBUTED WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR
* FITNESS FOR A PARTICULAR PURPOSE. For more details, see GNU GPL at https://www.gnu.org/copyleft/gpl.html
*
* You can contact Ascensio System SIA by email at [email protected]
*
* The interactive user interfaces in modified source and object code versions of ONLYOFFICE must display
* Appropriate Legal Notices, as required under Section 5 of the GNU GPL version 3.
*
* Pursuant to Section 7 § 3(b) of the GNU GPL you must retain the original ONLYOFFICE logo which contains
* relevant author attributions when distributing the software. If the display of the logo in its graphic
* form is not reasonably feasible for technical reasons, you must include the words "Powered by ONLYOFFICE"
* in every copy of the program you distribute.
* Pursuant to Section 7 § 3(e) we decline to grant you any rights under trademark law for use of our trademarks.
*
*/

using AutoMapper;

namespace ASC.Common.Mapping
{
public interface IMapFrom<T>
{
void Mapping(Profile profile) => profile.CreateMap(typeof(T), GetType());
}
}
62 changes: 62 additions & 0 deletions common/ASC.Common/Mapping/MappingProfile.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
/*
*
* (c) Copyright Ascensio System Limited 2010-2018
*
* This program is freeware. You can redistribute it and/or modify it under the terms of the GNU
* General Public License (GPL) version 3 as published by the Free Software Foundation (https://www.gnu.org/copyleft/gpl.html).
* In accordance with Section 7(a) of the GNU GPL its Section 15 shall be amended to the effect that
* Ascensio System SIA expressly excludes the warranty of non-infringement of any third-party rights.
*
* THIS PROGRAM IS DISTRIBUTED WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR
* FITNESS FOR A PARTICULAR PURPOSE. For more details, see GNU GPL at https://www.gnu.org/copyleft/gpl.html
*
* You can contact Ascensio System SIA by email at [email protected]
*
* The interactive user interfaces in modified source and object code versions of ONLYOFFICE must display
* Appropriate Legal Notices, as required under Section 5 of the GNU GPL version 3.
*
* Pursuant to Section 7 § 3(b) of the GNU GPL you must retain the original ONLYOFFICE logo which contains
* relevant author attributions when distributing the software. If the display of the logo in its graphic
* form is not reasonably feasible for technical reasons, you must include the words "Powered by ONLYOFFICE"
* in every copy of the program you distribute.
* Pursuant to Section 7 § 3(e) we decline to grant you any rights under trademark law for use of our trademarks.
*
*/

using System;
using System.Linq;
using System.Reflection;

using AutoMapper;

namespace ASC.Common.Mapping
{
public class MappingProfile : Profile
{
public MappingProfile()
{
Array.ForEach(AppDomain.CurrentDomain.GetAssemblies(), a => ApplyMappingsFromAssembly(a));
}

private void ApplyMappingsFromAssembly(Assembly assembly)
{
if (!assembly.GetName().Name.StartsWith("ASC.")) return;

var types = assembly.GetExportedTypes()
.Where(t => t.GetInterfaces().Any(i =>
i.IsGenericType && i.GetGenericTypeDefinition() == typeof(IMapFrom<>)))
.ToList();

foreach (var type in types)
{
var instance = Activator.CreateInstance(type);

var methodInfo = type.GetMethod("Mapping")
?? type.GetInterface("IMapFrom`1").GetMethod("Mapping");

methodInfo?.Invoke(instance, new object[] { this });

}
}
}
}
2 changes: 1 addition & 1 deletion config/autofac.products.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
"instanceScope": "InstancePerLifetimeScope"
},
{
"type": "ASC.CRM.Configuration.ProductEntryPoint, ASC.CRM",
"type": "ASC.Web.CRM.Configuration.ProductEntryPoint, ASC.CRM",
"services": [
{
"type": "ASC.Web.Core.IWebItem, ASC.Web.Core"
Expand Down
2 changes: 1 addition & 1 deletion config/nlog.config
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,6 @@
<rules>
<logger name="ASC.SQL" minlevel="Debug" writeTo="sql" final ="true" />
<logger name="ASC*" minlevel="Debug" writeTo="web" />
<logger name="Microsoft.*" maxlevel="Info" writeTo="web" final="true" />
<logger name="Microsoft.*" maxlevel="Debug" writeTo="web" final="true" />
</rules>
</nlog>
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk.Worker">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Server\ASC.CRM.csproj" />
</ItemGroup>
</Project>
93 changes: 93 additions & 0 deletions products/ASC.CRM/BackgroundTasks/Program.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;

using ASC.Common;
using ASC.Common.Caching;
using ASC.Common.Logging;
using ASC.Common.Utils;
using ASC.ElasticSearch;
using ASC.Web.CRM.Core.Search;

using Autofac;
using Autofac.Extensions.DependencyInjection;

using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using ASC.Common.DependencyInjection;


namespace ASC.CRM.BackgroundTasks
{
class Program
{
public async static Task Main(string[] args)
{
var host = CreateHostBuilder(args).Build();

await host.RunAsync();
}

public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseSystemd()
.UseWindowsService()
.UseServiceProviderFactory(new AutofacServiceProviderFactory())
.ConfigureAppConfiguration((hostContext, config) =>
{
var buided = config.Build();
var path = buided["pathToConf"];
if (!Path.IsPathRooted(path))
{
path = Path.GetFullPath(CrossPlatform.PathCombine(hostContext.HostingEnvironment.ContentRootPath, path));
}
config.SetBasePath(path);
var env = hostContext.Configuration.GetValue("ENVIRONMENT", "Production");
config
.AddInMemoryCollection(new Dictionary<string, string>
{
{"pathToConf", path }
}
)
.AddJsonFile("appsettings.json")
.AddJsonFile($"appsettings.{env}.json", true)
.AddJsonFile($"appsettings.services.json", true)
.AddJsonFile("storage.json")
.AddJsonFile("notify.json")
.AddJsonFile("kafka.json")
.AddJsonFile($"kafka.{env}.json", true)
.AddEnvironmentVariables()
.AddCommandLine(args);
})
.ConfigureServices((hostContext, services) =>
{
services.AddMemoryCache();

var diHelper = new DIHelper(services);

diHelper.TryAdd(typeof(ICacheNotify<>), typeof(KafkaCache<>));

diHelper.RegisterProducts(hostContext.Configuration, hostContext.HostingEnvironment.ContentRootPath);

services.AddHostedService<ServiceLauncher>();
diHelper.TryAdd<ServiceLauncher>();

LogNLogExtension.ConfigureLog(diHelper, "ASC.Files", "ASC.Feed.Agregator");

diHelper.TryAdd<FactoryIndexerCase>();
diHelper.TryAdd<FactoryIndexerContact>();
diHelper.TryAdd<FactoryIndexerContactInfo>();
diHelper.TryAdd<FactoryIndexerDeal>();
diHelper.TryAdd<FactoryIndexerEvents>();
diHelper.TryAdd<FactoryIndexerFieldValue>();
diHelper.TryAdd<FactoryIndexerInvoice>();
diHelper.TryAdd<FactoryIndexerTask>();
})
.ConfigureContainer<ContainerBuilder>((context, builder) =>
{
builder.Register(context.Configuration, true, false, "search.json");
});
}
}
27 changes: 27 additions & 0 deletions products/ASC.CRM/BackgroundTasks/Properties/launchSettings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"profiles": {
"Kestrel WebServer": {
"commandName": "Project",
"launchBrowser": false,
"environmentVariables": {
"$STORAGE_ROOT": "../../../Data",
"log__dir": "../../../Logs",
"log__name": "crm",
"ASPNETCORE_ENVIRONMENT": "Development",
"ASPNETCORE_URLS": "http://localhost:5026"
}
},
"WSL 2 : Ubuntu 20.04": {
"commandName": "WSL2",
"launchBrowser": false,
"environmentVariables": {
"$STORAGE_ROOT": "../../../Data",
"log__dir": "../../../Logs",
"log__name": "crm",
"ASPNETCORE_ENVIRONMENT": "Development",
"ASPNETCORE_URLS": "http://localhost:5026"
},
"distributionName": "Ubuntu-20.04"
}
}
}
3 changes: 3 additions & 0 deletions products/ASC.CRM/BackgroundTasks/appsettings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"pathToConf": "..\\..\\..\\config"
}
Loading