diff --git a/build/scripts/minify-common-locales.js b/build/scripts/minify-common-locales.js new file mode 100644 index 0000000000..cf0d00c1fe --- /dev/null +++ b/build/scripts/minify-common-locales.js @@ -0,0 +1,38 @@ +const { join } = require("path"); +const { readdirSync, readFileSync, writeFileSync } = require("fs"); +const minifyJson = require("../../packages/asc-web-common/utils/minifyJson.js"); + +const localesDir = join( + __dirname, + "../../build", + "deploy", + "public", + "locales" +); + +const getFileList = (dirName) => { + let files = []; + const items = readdirSync(dirName, { withFileTypes: true }); + + for (const item of items) { + if (item.isDirectory()) { + files = [...files, ...getFileList(`${dirName}/${item.name}`)]; + } else { + files.push(`${dirName}/${item.name}`); + } + } + + return files; +}; + +const files = getFileList(localesDir); + +files.forEach((filePath) => { + try { + let content = readFileSync(filePath); + writeFileSync(filePath, minifyJson(content, filePath)); + //console.log(`File '${filePath}' minified`); + } catch (e) { + console.error("Unable to minify file ", filePath, e); + } +}); diff --git a/common/ASC.Api.Core/GlobalUsings.cs b/common/ASC.Api.Core/GlobalUsings.cs index c3a87da7d4..7d1e52f0ea 100644 --- a/common/ASC.Api.Core/GlobalUsings.cs +++ b/common/ASC.Api.Core/GlobalUsings.cs @@ -24,6 +24,7 @@ // content are licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0 // International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode +global using System.Collections.Concurrent; global using System.ComponentModel; global using System.Globalization; global using System.Linq.Expressions; @@ -69,8 +70,8 @@ global using ASC.EventBus; global using ASC.EventBus.Abstractions; global using ASC.EventBus.RabbitMQ; global using ASC.IPSecurity; -global using ASC.MessagingSystem.Data; global using ASC.MessagingSystem.Core; +global using ASC.MessagingSystem.Data; global using ASC.MessagingSystem.Models; global using ASC.Security.Cryptography; global using ASC.Web.Api.Routing; @@ -83,6 +84,8 @@ global using ASC.Webhooks.Core; global using Autofac; global using Autofac.Extensions.DependencyInjection; +global using AutoMapper; + global using Confluent.Kafka; global using HealthChecks.UI.Client; @@ -123,8 +126,6 @@ global using NLog.Extensions.Logging; global using RabbitMQ.Client; -global using AutoMapper; - global using StackExchange.Redis.Extensions.Core.Configuration; global using StackExchange.Redis.Extensions.Newtonsoft; diff --git a/common/ASC.Api.Core/Middleware/PaymentFilter.cs b/common/ASC.Api.Core/Middleware/PaymentFilter.cs index ae502db7a4..9229ad95de 100644 --- a/common/ASC.Api.Core/Middleware/PaymentFilter.cs +++ b/common/ASC.Api.Core/Middleware/PaymentFilter.cs @@ -43,7 +43,7 @@ public class PaymentFilter : IResourceFilter public void OnResourceExecuting(ResourceExecutingContext context) { if (context.ActionDescriptor is ControllerActionDescriptor controllerActionDescriptor - && !controllerActionDescriptor.EndpointMetadata.OfType().Any()) + && controllerActionDescriptor.EndpointMetadata.OfType().Any()) { _logger.DebugPaymentIsNotRequired(); diff --git a/common/ASC.Api.Core/Model/EmployeeDto.cs b/common/ASC.Api.Core/Model/EmployeeDto.cs index 0d44da6678..11037d01fd 100644 --- a/common/ASC.Api.Core/Model/EmployeeDto.cs +++ b/common/ASC.Api.Core/Model/EmployeeDto.cs @@ -55,6 +55,7 @@ public class EmployeeDtoHelper private readonly ApiContext _httpContext; private readonly DisplayUserSettingsHelper _displayUserSettingsHelper; private readonly CommonLinkUtility _commonLinkUtility; + private readonly ConcurrentDictionary _concurrentDictionary; public EmployeeDtoHelper( ApiContext httpContext, @@ -67,12 +68,13 @@ public class EmployeeDtoHelper _userManager = userManager; _httpContext = httpContext; _displayUserSettingsHelper = displayUserSettingsHelper; - _commonLinkUtility = commonLinkUtility; + _commonLinkUtility = commonLinkUtility; + _concurrentDictionary = new ConcurrentDictionary(); } public EmployeeDto Get(UserInfo userInfo) { - return Init(new EmployeeDto(), userInfo); + return _concurrentDictionary.GetOrAdd(userInfo.Id, (id) => Init(new EmployeeDto(), userInfo)); } public EmployeeDto Get(Guid userId) diff --git a/common/ASC.Api.Core/Security/EmailValidationKeyModelHelper.cs b/common/ASC.Api.Core/Security/EmailValidationKeyModelHelper.cs index b0c1ce17fe..78bf315cab 100644 --- a/common/ASC.Api.Core/Security/EmailValidationKeyModelHelper.cs +++ b/common/ASC.Api.Core/Security/EmailValidationKeyModelHelper.cs @@ -61,7 +61,7 @@ public class EmailValidationKeyModelHelper request.TryGetValue("type", out var type); ConfirmType? cType = null; - if (Enum.TryParse(type, out var confirmType)) + if (ConfirmTypeExtensions.TryParse(type, out var confirmType)) { cType = confirmType; } @@ -69,7 +69,7 @@ public class EmailValidationKeyModelHelper request.TryGetValue("key", out var key); request.TryGetValue("emplType", out var emplType); - Enum.TryParse(emplType, out var employeeType); + EmployeeTypeExtensions.TryParse(emplType, out var employeeType); request.TryGetValue("email", out var _email); diff --git a/common/ASC.Common/ASC.Common.csproj b/common/ASC.Common/ASC.Common.csproj index e5a7ed82cc..e2e0c25aa2 100644 --- a/common/ASC.Common/ASC.Common.csproj +++ b/common/ASC.Common/ASC.Common.csproj @@ -45,6 +45,7 @@ +