System.Configuration для проброса ConfigurationErrorsException

This commit is contained in:
Оля Бизюкова 2024-05-24 10:55:05 +05:00
parent c8c504b3be
commit f0b46f9eca
8 changed files with 107 additions and 106 deletions

View File

@ -62,6 +62,7 @@
<PackageReference Include="Microsoft.AspNetCore.Http.Extensions" Version="2.1.21" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
<PackageReference Include="Microsoft.IdentityModel.Tokens" Version="7.2.0" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="8.0.0" />
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="7.2.0" />
</ItemGroup>

View File

@ -46,10 +46,7 @@ namespace AsbCloudInfrastructure
/// <returns></returns>
public static Task<IEnumerable<T>> GetOrCreateBasicAsync<T>(this IMemoryCache memoryCache, Func<CancellationToken, Task<IEnumerable<T>>> getterAsync, CancellationToken token)
{
var key = typeof(T).FullName;
if (key == null)
return Task.FromResult(Enumerable.Empty<T>());
var key = typeof(T).FullName!;
var cache = memoryCache.GetOrCreateAsync(key, async (cacheEntry) =>
{
cacheEntry.AbsoluteExpirationRelativeToNow = CacheOlescence;
@ -87,7 +84,7 @@ namespace AsbCloudInfrastructure
/// <returns></returns>
public static IEnumerable<T> GetOrCreateBasic<T>(this IMemoryCache memoryCache, Func<IEnumerable<T>> getter)
{
var key = typeof(T).FullName;
var key = typeof(T).FullName!;
var cache = memoryCache.GetOrCreate(key, cacheEntry =>
{
cacheEntry.AbsoluteExpirationRelativeToNow = CacheOlescence;
@ -106,10 +103,7 @@ namespace AsbCloudInfrastructure
public static void DropBasic<T>(this IMemoryCache memoryCache)
where T : class
{
var key = typeof(T).FullName;
if (key == null)
return;
var key = typeof(T).FullName!;
memoryCache.Remove(key);
}

View File

@ -2,6 +2,7 @@
using AsbCloudApp.Exceptions;
using Microsoft.Extensions.Configuration;
using System;
using System.Configuration;
using System.IO;
namespace AsbCloudInfrastructure.Services.Email
@ -9,17 +10,24 @@ namespace AsbCloudInfrastructure.Services.Email
public class BaseFactory
{
private readonly string platformName;
private readonly string platformUrl;
private readonly string companyName;
private readonly string supportMail;
protected readonly string platformName;
protected readonly string platformUrl;
protected readonly string companyName;
protected readonly string supportMail;
public BaseFactory(IConfiguration configuration)
{
platformName = configuration.GetValue("email:platformName", "Цифровое бурение") ?? string.Empty;
platformUrl = configuration.GetValue("email:platformUrl", "https://cloud.digitaldrilling.ru/") ?? string.Empty;
companyName = configuration.GetValue("email:companyName", "ООО \"Цифровое бурение\"") ?? string.Empty;
supportMail = configuration.GetValue("email:supportMail", "support@digitaldrilling.ru") ?? string.Empty;
platformName = configuration.GetValue<string>("email:platformName")
?? throw new ConfigurationErrorsException("email:platformName не определен");
platformUrl = configuration.GetValue<string>("email:platformUrl")
?? throw new ConfigurationErrorsException("email:platformUrl не определен");
companyName = configuration.GetValue<string>("email:companyName")
?? throw new ConfigurationErrorsException("email:companyName не определен");
supportMail = configuration.GetValue<string>("email:supportMail")
?? throw new ConfigurationErrorsException("email:supportMail не определен");
}
public static string GetOrEmptyImageBase64(string resourceFileName)

View File

@ -6,14 +6,10 @@ namespace AsbCloudInfrastructure.Services.Email
class DrillingMailBodyFactory : BaseFactory
{
private readonly string platformName;
private readonly string platformUrl;
public DrillingMailBodyFactory(IConfiguration configuration)
: base(configuration)
{
platformName = configuration.GetValue("email:platformName", "Цифровое бурение") ?? string.Empty;
platformUrl = configuration.GetValue("email:platformUrl", "https://cloud.digitaldrilling.ru/") ?? string.Empty;
}
public override string MakeSubject(WellDto well, string action)

View File

@ -4,6 +4,7 @@ using AsbCloudApp.Repositories;
using AsbCloudApp.Services.Notifications;
using Microsoft.Extensions.Configuration;
using System.Collections.Generic;
using System.Configuration;
using System.Diagnostics;
using System.Linq;
using System.Net.Mail;
@ -29,9 +30,14 @@ namespace AsbCloudInfrastructure.Services.Email
{
this.userRepository = userRepository;
this.sender = configuration.GetValue("email:sender", string.Empty) ?? string.Empty;
this.smtpPassword = configuration.GetValue("email:password", string.Empty) ?? string.Empty;
this.smtpServer = configuration.GetValue("email:smtpServer", string.Empty) ?? string.Empty;
this.sender = configuration.GetValue<string>("email:sender")
?? throw new ConfigurationErrorsException("email:sender не определен");
this.smtpPassword = configuration.GetValue<string>("email:password")
?? throw new ConfigurationErrorsException("email:password не определен");
this.smtpServer = configuration.GetValue<string>("email:smtpServer")
?? throw new ConfigurationErrorsException("email:smtpServer не определен");
var configError = string.IsNullOrEmpty(this.sender) ||
string.IsNullOrEmpty(this.smtpPassword) ||

View File

@ -1,11 +1,11 @@
using AsbCloudApp.Data;
using AsbCloudApp.Repositories;
using AsbCloudApp.Services;
using Microsoft.Extensions.Configuration;
using System.IO;
using System.Net;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Configuration;
namespace AsbCloudInfrastructure.Services;
@ -30,10 +30,7 @@ public class HelpPageService : IHelpPageService
{
this.helpPageRepository = helpPageRepository;
this.fileStorageRepository = fileStorageRepository;
directoryNameHelpPageFiles = configuration.GetValue<string>("DirectoryNameHelpPageFiles") ?? string.Empty;
if (string.IsNullOrWhiteSpace(directoryNameHelpPageFiles))
directoryNameHelpPageFiles = "helpPages";
directoryNameHelpPageFiles = configuration.GetValue("DirectoryNameHelpPageFiles", "helpPages")!;
}
/// <summary>

View File

@ -35,10 +35,7 @@ public class ManualCatalogService : IManualCatalogService
this.fileStorageRepository = fileStorageRepository;
this.manualDirectoryRepository = manualDirectoryRepository;
this.manualRepository = manualRepository;
directoryFiles = configuration.GetValue<string>("DirectoryManualFiles") ?? string.Empty;
if (string.IsNullOrWhiteSpace(directoryFiles))
directoryFiles = "manuals";
directoryFiles = configuration.GetValue<string>("DirectoryManualFiles", "manuals")!;
}
public async Task<int> SaveFileAsync(int idDirectory, int idAuthor, string name, Stream stream, CancellationToken cancellationToken)

View File

@ -6,6 +6,7 @@ using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Diagnostics;
using System.Linq;
using System.Threading;
@ -36,7 +37,8 @@ namespace AsbCloudInfrastructure.Services
private ReduceSamplingService(IConfiguration configuration)
{
connectionString = configuration.GetConnectionString("DefaultConnection") ?? string.Empty;
connectionString = configuration.GetConnectionString("DefaultConnection")
?? throw new ConfigurationErrorsException("DefaultConnection не определен");
}
~ReduceSamplingService()