diff --git a/src/InterfaceForward.Api/InterfaceForward.Api.csproj b/src/InterfaceForward.Api/InterfaceForward.Api.csproj index 94935ce..86801b8 100644 --- a/src/InterfaceForward.Api/InterfaceForward.Api.csproj +++ b/src/InterfaceForward.Api/InterfaceForward.Api.csproj @@ -15,17 +15,12 @@ - + - - - - - diff --git a/src/InterfaceForward.Api/InterfaceForwardApiModule.cs b/src/InterfaceForward.Api/InterfaceForwardApiModule.cs index ebfc3b1..93b7252 100644 --- a/src/InterfaceForward.Api/InterfaceForwardApiModule.cs +++ b/src/InterfaceForward.Api/InterfaceForwardApiModule.cs @@ -1,33 +1,53 @@ using Fake.AspNetCore; +using Fake.AspNetCore.Mvc; +using Fake.AspNetCore.Mvc.Conventions; using Fake.Authorization; -using Fake.Helpers; +using Fake.Autofac; using Fake.Modularity; using InterfaceForward.Application; using InterfaceForward.Application.Filters; -using InterfaceForward.Repositories; +using Microsoft.AspNetCore.Mvc; namespace InterfaceForward.Api; -[DependsOn(typeof(FakeAspNetCoreModule))] -[DependsOn(typeof(FakeAuthorizationModule))] -[DependsOn(typeof(InterfaceForwardRepositoriesModule))] +[DependsOn(typeof(FakeAutofacModule))] +[DependsOn(typeof(FakeAspNetCoreMvcModule))] [DependsOn(typeof(InterfaceForwardApplicationModule))] public class InterfaceForwardApiModule : FakeModule { + private const string DefaultCorsPolicyName = "default"; public override void ConfigureServices(ServiceConfigurationContext context) { var services = context.Services; + var configuration = context.Services.GetConfiguration(); // Add services to the container. services.AddProblemDetails(); - services.AddControllers(options => + services.Configure(options => { options.Filters.AddService(); - options.Filters.AddService(); + options.Filters.AddService(); }); - services.AddSwagger(); + services.Configure(options => + { + options.AddAssembly(typeof(InterfaceForwardApplicationModule).Assembly); + }); + + services.AddUnifiedResultFilter(); + services.AddFakeSwaggerGen(); + + services.AddCors(options => + { + options.AddPolicy(DefaultCorsPolicyName, builder => + { + builder.WithOrigins(configuration.GetSection("App:CorsOrigins").Get() ?? []) + .AllowAnyHeader() + .AllowAnyMethod() + .AllowCredentials(); + }); + }); } public override void ConfigureApplication(ApplicationConfigureContext context) @@ -36,19 +56,13 @@ public class InterfaceForwardApiModule : FakeModule // Add Aspire default endpoints. app.MapDefaultEndpoints(); - - app.MapGet("/", () => "Hello World!"); // Configure the HTTP request pipeline. - if (app.Environment.IsDevelopment()) - { - app.UseSwagger(); - app.UseSwaggerUI(options => - { - options.SwaggerEndpoint("/swagger/v1/swagger.json", "v1"); - options.RoutePrefix = string.Empty; - }); - } + app.UseFakeSwagger(); + + app.UseRouting(); + + app.UseCors(DefaultCorsPolicyName); } } diff --git a/src/InterfaceForward.Api/Program.cs b/src/InterfaceForward.Api/Program.cs index a7022db..edbdf93 100644 --- a/src/InterfaceForward.Api/Program.cs +++ b/src/InterfaceForward.Api/Program.cs @@ -1,12 +1,27 @@ using InterfaceForward.Api; +using InterfaceForward.Api.Logs; +using Serilog; -var builder = WebApplication.CreateBuilder(args); +try +{ + var builder = WebApplication.CreateSlimBuilder(args); + builder.UseSerilogDefault(); + builder.WebHost.UseUrls(builder.Configuration.GetSection("App:Urls").Get() ?? []); + builder.Host.UseAutofac(); + builder.Services.AddApplication(); -builder.Services.AddApplication(); + // Add service defaults & Aspire components. + builder.AddServiceDefaults(); -// Add service defaults & Aspire components. -builder.AddServiceDefaults(); - -var app = builder.Build(); -app.InitializeApplication(); -app.Run(); \ No newline at end of file + var app = builder.Build(); + app.InitializeApplication(); + app.Run(); +} +catch (Exception ex) +{ + Log.Fatal(ex, "G"); +} +finally +{ + Log.CloseAndFlush(); +} \ No newline at end of file diff --git a/src/InterfaceForward.Api/appsettings.json b/src/InterfaceForward.Api/appsettings.json index 10f68b8..91fe569 100644 --- a/src/InterfaceForward.Api/appsettings.json +++ b/src/InterfaceForward.Api/appsettings.json @@ -1,9 +1,30 @@ { - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft.AspNetCore": "Warning" - } + "Serilog": { + "MinimumLevel": { + "Default": "Debug", + "Override": { + "Microsoft.AspNetCore": "Debug" + } + }, + "Enrich": [ + "FromLogContext", + "WithMachineName", + "WithProcessId", + "WithThreadId" + ], + "WriteTo": [ + { + "Name": "Console" + } + ] }, - "AllowedHosts": "*" + "AllowedHosts": "*", + "App": { + "Urls": [ + "http://*:8888" + ], + "CorsOrigins": [ + "http://localhost:8888" + ] + } } diff --git a/src/InterfaceForward.Application.Contracts/ForwardCore/InterfaceRelayUnifyResultDto.cs b/src/InterfaceForward.Application.Contracts/ForwardCore/InterfaceRelayUnifyResultDto.cs index e8f71bb..eb3fd9f 100644 --- a/src/InterfaceForward.Application.Contracts/ForwardCore/InterfaceRelayUnifyResultDto.cs +++ b/src/InterfaceForward.Application.Contracts/ForwardCore/InterfaceRelayUnifyResultDto.cs @@ -1,4 +1,4 @@ -using InterfaceForward.Domain.Shared.Dtos; +using Fake.DomainDrivenDesign.Application.Dtos; namespace InterfaceForward.Application.Contracts.ForwardCore; diff --git a/src/InterfaceForward.Application.Contracts/InterfaceForward.Application.Contracts.csproj b/src/InterfaceForward.Application.Contracts/InterfaceForward.Application.Contracts.csproj index 1b93815..9cd872b 100644 --- a/src/InterfaceForward.Application.Contracts/InterfaceForward.Application.Contracts.csproj +++ b/src/InterfaceForward.Application.Contracts/InterfaceForward.Application.Contracts.csproj @@ -9,8 +9,4 @@ - - - - diff --git a/src/InterfaceForward.Application/Filters/DefaultUnifiedResultHandler.cs b/src/InterfaceForward.Application/Filters/DefaultUnifiedResultHandler.cs deleted file mode 100644 index b370989..0000000 --- a/src/InterfaceForward.Application/Filters/DefaultUnifiedResultHandler.cs +++ /dev/null @@ -1,57 +0,0 @@ -using InterfaceForward.Domain.Shared.Dtos; -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.Filters; - -namespace InterfaceForward.Application.Filters; - -public class DefaultUnifiedResultHandler : IUnifiedResultHandler -{ - public void HandleActionResult(ResultExecutingContext context) - { - // void、Task会被包装成EmptyResult - if (context.Result is EmptyResult) - { - var res = new UnifyResultDto(); - context.Result = new ObjectResult(res); - - return; - } - - // string、int、list以及自定义的模型,都会被包装成为ObjectResult - if (context.Result is ObjectResult objectResult) - { - var value = objectResult.Value; - - // 已unified的无须再包装 - if (value is UnifyResultDto) return; - - var res = new UnifyResultDto(); - - // A machine-readable format for specifying errors in HTTP API responses based on https://tools.ietf.org/html/rfc7807. - if (value is ProblemDetails details) - { - res.Code = details.Status.ToString()?? "400"; - res.Message = details.Title?? ""; - res.Data = context.ModelState.Keys - .SelectMany(key => - context.ModelState[key]!.Errors - .Where(x => !string.IsNullOrWhiteSpace(key)) - .Select(x => new - { - Field = key, - Message = x.ErrorMessage - }) - ) - .ToList(); - objectResult.Value = res; - return; - } - - res.Data = value; - objectResult.Value = res; - - // 解决string格式问题 - objectResult.DeclaredType = res.GetType(); - } - } -} diff --git a/src/InterfaceForward.Application/Filters/DisableUnifiedResultAttribute.cs b/src/InterfaceForward.Application/Filters/DisableUnifiedResultAttribute.cs deleted file mode 100644 index 711b129..0000000 --- a/src/InterfaceForward.Application/Filters/DisableUnifiedResultAttribute.cs +++ /dev/null @@ -1,3 +0,0 @@ -namespace InterfaceForward.Application.Filters; - -public class DisableUnifiedResultAttribute : Attribute; \ No newline at end of file diff --git a/src/InterfaceForward.Application/Filters/ForwardAuthorizeFilter.cs b/src/InterfaceForward.Application/Filters/ForwardAuthorizeFilter.cs index eb84ea1..626b3f3 100644 --- a/src/InterfaceForward.Application/Filters/ForwardAuthorizeFilter.cs +++ b/src/InterfaceForward.Application/Filters/ForwardAuthorizeFilter.cs @@ -1,5 +1,4 @@ using System.Text; -using Fake; using InterfaceForward.Repositories; using InterfaceForward.Repositories.Log.Services; using Microsoft.AspNetCore.Http; diff --git a/src/InterfaceForward.Application/Filters/ForwardExceptionFilter.cs b/src/InterfaceForward.Application/Filters/ForwardExceptionFilter.cs index 4770403..a41c2f1 100644 --- a/src/InterfaceForward.Application/Filters/ForwardExceptionFilter.cs +++ b/src/InterfaceForward.Application/Filters/ForwardExceptionFilter.cs @@ -1,5 +1,4 @@ -using Fake; -using InterfaceForward.Application.Contracts; +using InterfaceForward.Application.Contracts; using InterfaceForward.Application.Contracts.ForwardCore; using InterfaceForward.Repositories.Log.Services; using Microsoft.AspNetCore.Http; diff --git a/src/InterfaceForward.Application/Filters/GlobalExceptionFilter.cs b/src/InterfaceForward.Application/Filters/GlobalExceptionFilter.cs index 2a8f125..d433c58 100644 --- a/src/InterfaceForward.Application/Filters/GlobalExceptionFilter.cs +++ b/src/InterfaceForward.Application/Filters/GlobalExceptionFilter.cs @@ -1,5 +1,4 @@ using System.Net; -using Fake; using Fake.DependencyInjection; using InterfaceForward.Domain.Shared.Dtos; using Microsoft.AspNetCore.Mvc; diff --git a/src/InterfaceForward.Application/Filters/IUnifiedResultHandler.cs b/src/InterfaceForward.Application/Filters/IUnifiedResultHandler.cs deleted file mode 100644 index 9e50a8e..0000000 --- a/src/InterfaceForward.Application/Filters/IUnifiedResultHandler.cs +++ /dev/null @@ -1,11 +0,0 @@ -using Microsoft.AspNetCore.Mvc.Filters; - -namespace InterfaceForward.Application.Filters; - -/// -/// 在这里定义你的结果格式 -/// -public interface IUnifiedResultHandler -{ - void HandleActionResult(ResultExecutingContext context); -} \ No newline at end of file diff --git a/src/InterfaceForward.Application/Filters/UnifiedResultFilter.cs b/src/InterfaceForward.Application/Filters/UnifiedResultFilter.cs deleted file mode 100644 index c8903a0..0000000 --- a/src/InterfaceForward.Application/Filters/UnifiedResultFilter.cs +++ /dev/null @@ -1,26 +0,0 @@ -using Microsoft.AspNetCore.Mvc.Filters; - -namespace InterfaceForward.Application.Filters; - -/// -/// 统一包装action-result -/// -public class UnifiedResultFilter : IAsyncResultFilter -{ - private readonly IUnifiedResultHandler _unifiedResultHandler; - - public UnifiedResultFilter(IUnifiedResultHandler unifiedResultHandler) - { - _unifiedResultHandler = unifiedResultHandler; - } - - public virtual async Task OnResultExecutionAsync(ResultExecutingContext context, ResultExecutionDelegate next) - { - if (context.ActionDescriptor.EndpointMetadata.Any( - x => x.GetType() == typeof(DisableUnifiedResultAttribute))) return; - - _unifiedResultHandler.HandleActionResult(context); - - await next(); - } -} diff --git a/src/InterfaceForward.Application/ForwardCore/DefaultForwardFlow.cs b/src/InterfaceForward.Application/ForwardCore/DefaultForwardFlow.cs index fa9574b..1b8c73d 100644 --- a/src/InterfaceForward.Application/ForwardCore/DefaultForwardFlow.cs +++ b/src/InterfaceForward.Application/ForwardCore/DefaultForwardFlow.cs @@ -2,7 +2,6 @@ using System.Text.RegularExpressions; using System.Web; using System.Xml; -using Fake; using InterfaceForward.Application.Contracts; using InterfaceForward.Application.Contracts.ForwardCore; using InterfaceForward.Application.Helpers; diff --git a/src/InterfaceForward.Application/GlobalUsings.cs b/src/InterfaceForward.Application/GlobalUsings.cs index ad0442a..79e329f 100644 --- a/src/InterfaceForward.Application/GlobalUsings.cs +++ b/src/InterfaceForward.Application/GlobalUsings.cs @@ -1,3 +1,5 @@ // Global using directives +global using Fake; +global using Fake.DomainDrivenDesign.Application.Dtos; global using InterfaceForward.Domain.Shared.Helpers; \ No newline at end of file diff --git a/src/InterfaceForward.Application/InterfaceForward.Application.csproj b/src/InterfaceForward.Application/InterfaceForward.Application.csproj index 2654ee6..7fde7c1 100644 --- a/src/InterfaceForward.Application/InterfaceForward.Application.csproj +++ b/src/InterfaceForward.Application/InterfaceForward.Application.csproj @@ -4,6 +4,7 @@ net8 + true @@ -15,12 +16,11 @@ - - - - + + + diff --git a/src/InterfaceForward.Application/InterfaceForwardApplicationModule.cs b/src/InterfaceForward.Application/InterfaceForwardApplicationModule.cs index ecfb878..0d23ed6 100644 --- a/src/InterfaceForward.Application/InterfaceForwardApplicationModule.cs +++ b/src/InterfaceForward.Application/InterfaceForwardApplicationModule.cs @@ -1,14 +1,28 @@ using System.Security.Authentication; +using Fake.AspNetCore.Mvc; using Fake.Modularity; +using Fake.ObjectMapping.AutoMapper; +using InterfaceForward.Application.Contracts; +using InterfaceForward.Repositories; using Microsoft.Extensions.DependencyInjection; namespace InterfaceForward.Application; [DependsOn(typeof(FakeObjectMappingAutoMapperModule))] +[DependsOn(typeof(InterfaceForwardRepositoriesModule))] public class InterfaceForwardApplicationModule:FakeModule { public override void ConfigureServices(ServiceConfigurationContext context) { + var configuration = context.Services.GetConfiguration(); + + context.Services.Configure(options => + { + options.AddMaps(); + }); + + context.Services.Configure(configuration.GetSection("InterfaceRelay")); + // 预热 NatashaInitializer.Preheating(); @@ -16,7 +30,7 @@ public class InterfaceForwardApplicationModule:FakeModule { client.Timeout = TimeSpan.FromSeconds(20); }) - .ConfigurePrimaryHttpMessageHandler(handler => + .ConfigurePrimaryHttpMessageHandler(_ => { var httpClientHandler = new HttpClientHandler(); // 确保支持较新的 SSL/TLS 版本 diff --git a/src/InterfaceForward.Application/Services/App/AppsService.cs b/src/InterfaceForward.Application/Services/App/AppsService.cs index 1782daa..d79f9c3 100644 --- a/src/InterfaceForward.Application/Services/App/AppsService.cs +++ b/src/InterfaceForward.Application/Services/App/AppsService.cs @@ -1,6 +1,5 @@ using System.ComponentModel.DataAnnotations; using System.Text; -using Fake; using InterfaceForward.Application.Contracts.Dtos.App; using InterfaceForward.Application.Helpers; using InterfaceForward.Application.OSS; @@ -47,7 +46,7 @@ public class AppsService : ApplicationService /// 入参 /// [HttpGet("GetList")] - public async Task> GetList([FromQuery] PagedQueryInput input) + public async Task> GetList([FromQuery] PagedQueryInput input) { var res = await _appRepository.AsQueryable() .Select(x => new AppListOutput { Id = x.Id.SelectAll() }) diff --git a/src/InterfaceForward.Application/Services/App/LogService.cs b/src/InterfaceForward.Application/Services/App/LogService.cs index 7ea78e4..26cdd6f 100644 --- a/src/InterfaceForward.Application/Services/App/LogService.cs +++ b/src/InterfaceForward.Application/Services/App/LogService.cs @@ -32,11 +32,11 @@ namespace InterfaceForward.Application.Services.App /// 入参 /// [HttpGet("GetList")] - public async Task> GetList(LogGetListInputValueObject input) + public async Task> GetList(LogGetListInputValueObject input) { var res = await _logRepository.GetListAsync(input); - return new UnifyPagedResultDto(res.list, (int)res.total); + return new PagedListDto(res.list, (int)res.total); } /// @@ -45,7 +45,7 @@ namespace InterfaceForward.Application.Services.App /// 入参 /// [HttpGet("GetLogsStatistics")] - public async Task> GetLogsStatistics(LogStatisticsInputValueObject input) + public async Task> GetLogsStatistics(LogStatisticsInputValueObject input) { var esData = await _logRepository.GetLogsStatisticsAsync(input); @@ -88,7 +88,7 @@ namespace InterfaceForward.Application.Services.App .Skip((input.PageIndex - 1) * input.PageSize) .Take(input.PageSize).ToList(); - return new UnifyPagedResultDto(res, list.Count); + return new PagedListDto(res, list.Count); } /// diff --git a/src/InterfaceForward.Application/Services/ApplicationService.cs b/src/InterfaceForward.Application/Services/ApplicationService.cs index cf31d7e..322a4c2 100644 --- a/src/InterfaceForward.Application/Services/ApplicationService.cs +++ b/src/InterfaceForward.Application/Services/ApplicationService.cs @@ -4,7 +4,7 @@ using Microsoft.Extensions.DependencyInjection; namespace InterfaceForward.Application.Services; -public class ApplicationService +public class ApplicationService:IRemoteService { public ILazyServiceProvider LazyServiceProvider { get; set; } = default!; diff --git a/src/InterfaceForward.Application/Services/Interface/InterfaceReturnConfigService.cs b/src/InterfaceForward.Application/Services/Interface/InterfaceReturnConfigService.cs index 691ef6c..3ea9901 100644 --- a/src/InterfaceForward.Application/Services/Interface/InterfaceReturnConfigService.cs +++ b/src/InterfaceForward.Application/Services/Interface/InterfaceReturnConfigService.cs @@ -1,5 +1,4 @@ using System.ComponentModel.DataAnnotations; -using Fake; using InterfaceForward.Application.Contracts.Dtos.ServiceProvider; using InterfaceForward.Application.Helpers; using InterfaceForward.Domain.Shared.Enum; diff --git a/src/InterfaceForward.Application/Services/Interface/ServiceProviderInterfaceService.cs b/src/InterfaceForward.Application/Services/Interface/ServiceProviderInterfaceService.cs index ae04be3..d25dde1 100644 --- a/src/InterfaceForward.Application/Services/Interface/ServiceProviderInterfaceService.cs +++ b/src/InterfaceForward.Application/Services/Interface/ServiceProviderInterfaceService.cs @@ -1,11 +1,9 @@ using System.ComponentModel.DataAnnotations; using System.Diagnostics; -using Fake; using Newtonsoft.Json; using InterfaceForward.Application.Contracts.Dtos.Interface; using InterfaceForward.Application.Helpers; using InterfaceForward.Application.Services.Parameter; -using InterfaceForward.Domain.Shared.Dtos; using InterfaceForward.Domain.Shared.Enum; using InterfaceForward.Repositories; using InterfaceForward.Repositories.Interface.Entitys; @@ -43,7 +41,7 @@ public class ServiceProviderInterfaceService : ApplicationService /// /// [HttpPost("Interface/ServiceProviderInterfacePaginatedList")] - public async Task> + public async Task> ServiceProviderInterfacePaginatedListAsync(ServiceProviderInterfacePaginatedInputObjectValue input) { return await InterfaceRepository.GetServiceProviderInterfacePaginatedListAsync(input); diff --git a/src/InterfaceForward.Application/Services/Interface/SystemInterfaceService.cs b/src/InterfaceForward.Application/Services/Interface/SystemInterfaceService.cs index 94dde52..ce221c6 100644 --- a/src/InterfaceForward.Application/Services/Interface/SystemInterfaceService.cs +++ b/src/InterfaceForward.Application/Services/Interface/SystemInterfaceService.cs @@ -1,13 +1,10 @@ using System.ComponentModel.DataAnnotations; using System.Diagnostics; -using Fake; using Newtonsoft.Json; using InterfaceForward.Application.Contracts.Dtos.Interface; using InterfaceForward.Application.Helpers; using InterfaceForward.Application.Services.Parameter; -using InterfaceForward.Domain.Shared.Dtos; using InterfaceForward.Domain.Shared.Enum; -using InterfaceForward.Domain.Shared.Helpers; using InterfaceForward.Repositories; using InterfaceForward.Repositories.Interface.Entitys; using InterfaceForward.Repositories.Interface.Services; @@ -52,7 +49,7 @@ public class SystemInterfaceService : ApplicationService /// /// [HttpPost("Interface/SystemInterfacePaginatedList")] - public async Task> + public async Task> SystemInterfacePaginatedListAsync(SystemInterfacePaginatedInputObjectValue input) { return await _interfaceRepository.GetSystemInterfacePaginatedListAsync(input); diff --git a/src/InterfaceForward.Application/Services/InterfaceForwardCommon.cs b/src/InterfaceForward.Application/Services/InterfaceForwardCommon.cs index c6afce8..607395a 100644 --- a/src/InterfaceForward.Application/Services/InterfaceForwardCommon.cs +++ b/src/InterfaceForward.Application/Services/InterfaceForwardCommon.cs @@ -1,5 +1,4 @@ using System.Runtime.ExceptionServices; -using Fake; using Fake.DependencyInjection; using InterfaceForward.Application.Contracts; using InterfaceForward.Application.Contracts.ForwardCore; diff --git a/src/InterfaceForward.Application/Services/InterfaceForwardService.cs b/src/InterfaceForward.Application/Services/InterfaceForwardService.cs index a7230c6..b4f35b3 100644 --- a/src/InterfaceForward.Application/Services/InterfaceForwardService.cs +++ b/src/InterfaceForward.Application/Services/InterfaceForwardService.cs @@ -1,8 +1,7 @@ using System.ComponentModel.DataAnnotations; -using Fake; +using Fake.AspNetCore.Mvc.Filters.UnifiedResult; using Microsoft.AspNetCore.Authorization; using Microsoft.Extensions.Options; -using Newtonsoft.Json; using Newtonsoft.Json.Linq; using InterfaceForward.Application.Contracts; using InterfaceForward.Application.Contracts.ForwardCore; diff --git a/src/InterfaceForward.Application/Services/InterfaceMap/InterfaceMapPublishService.cs b/src/InterfaceForward.Application/Services/InterfaceMap/InterfaceMapPublishService.cs index fecc327..8995185 100644 --- a/src/InterfaceForward.Application/Services/InterfaceMap/InterfaceMapPublishService.cs +++ b/src/InterfaceForward.Application/Services/InterfaceMap/InterfaceMapPublishService.cs @@ -2,7 +2,6 @@ using DiffPlex; using DiffPlex.DiffBuilder; using DiffPlex.DiffBuilder.Model; -using Fake; using Newtonsoft.Json; using Newtonsoft.Json.Converters; using InterfaceForward.Application.Contracts.Dtos.Interface; diff --git a/src/InterfaceForward.Application/Services/InterfaceMap/InterfaceMapService.cs b/src/InterfaceForward.Application/Services/InterfaceMap/InterfaceMapService.cs index fb1f1e1..f27b53b 100644 --- a/src/InterfaceForward.Application/Services/InterfaceMap/InterfaceMapService.cs +++ b/src/InterfaceForward.Application/Services/InterfaceMap/InterfaceMapService.cs @@ -1,6 +1,5 @@ using System.ComponentModel.DataAnnotations; using System.Diagnostics; -using Fake; using InterfaceForward.Application.Contracts.Dtos.Interface; using InterfaceForward.Application.Helpers; using InterfaceForward.Domain.Shared.Enum; diff --git a/src/InterfaceForward.Application/Services/Parameter/FixedParameterService.cs b/src/InterfaceForward.Application/Services/Parameter/FixedParameterService.cs index 61c1cb2..6dd062b 100644 --- a/src/InterfaceForward.Application/Services/Parameter/FixedParameterService.cs +++ b/src/InterfaceForward.Application/Services/Parameter/FixedParameterService.cs @@ -1,5 +1,4 @@ using System.ComponentModel.DataAnnotations; -using Fake; using InterfaceForward.Application.Contracts.Dtos.ServiceProvider; using InterfaceForward.Application.Helpers; using InterfaceForward.Domain.Shared; diff --git a/src/InterfaceForward.Application/Services/Parameter/ParameterService.cs b/src/InterfaceForward.Application/Services/Parameter/ParameterService.cs index a818ff1..958dd2c 100644 --- a/src/InterfaceForward.Application/Services/Parameter/ParameterService.cs +++ b/src/InterfaceForward.Application/Services/Parameter/ParameterService.cs @@ -1,7 +1,6 @@ using System.ComponentModel.DataAnnotations; using System.Diagnostics; using System.Xml; -using Fake; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using InterfaceForward.Application.Contracts.Dtos.Interface; diff --git a/src/InterfaceForward.Application/Services/ServiceProvider/ServiceProviderAccountService.cs b/src/InterfaceForward.Application/Services/ServiceProvider/ServiceProviderAccountService.cs index 37823f4..4e6aee7 100644 --- a/src/InterfaceForward.Application/Services/ServiceProvider/ServiceProviderAccountService.cs +++ b/src/InterfaceForward.Application/Services/ServiceProvider/ServiceProviderAccountService.cs @@ -1,6 +1,5 @@ using System.ComponentModel.DataAnnotations; using System.Diagnostics; -using Fake; using InterfaceForward.Application.Contracts.Dtos.ServiceProvider; using InterfaceForward.Application.Helpers; using InterfaceForward.Domain.Shared.Dtos; @@ -193,12 +192,12 @@ public class ServiceProviderAccountService : ApplicationService /// 页大小 /// [HttpGet("ServiceProviderAccount/GetAccountPageList")] - public async Task>> GetAccountPageListAsync( + public async Task>> GetAccountPageListAsync( [Required] int serviceProviderId , int pageIndex = 1 , int pageSize = 50) { - var res = new UnifyPagedResultDto>(); + var res = new PagedListDto>(); // 获取账户列表分页数据 var data = await _serviceProviderAccountRepository.GetAccountPageListAsync(serviceProviderId, pageIndex, diff --git a/src/InterfaceForward.Application/Services/ServiceProvider/ServiceProviderAuthService.cs b/src/InterfaceForward.Application/Services/ServiceProvider/ServiceProviderAuthService.cs index f02313b..a4529bb 100644 --- a/src/InterfaceForward.Application/Services/ServiceProvider/ServiceProviderAuthService.cs +++ b/src/InterfaceForward.Application/Services/ServiceProvider/ServiceProviderAuthService.cs @@ -1,5 +1,4 @@ using System.ComponentModel.DataAnnotations; -using Fake; using InterfaceForward.Application.Contracts.Dtos.ServiceProvider; using InterfaceForward.Application.Helpers; using InterfaceForward.Domain.Shared.Enum; diff --git a/src/InterfaceForward.Application/Services/ServiceProvider/ServiceProviderImportExportService.cs b/src/InterfaceForward.Application/Services/ServiceProvider/ServiceProviderImportExportService.cs index 6163894..a487b50 100644 --- a/src/InterfaceForward.Application/Services/ServiceProvider/ServiceProviderImportExportService.cs +++ b/src/InterfaceForward.Application/Services/ServiceProvider/ServiceProviderImportExportService.cs @@ -2,7 +2,6 @@ using System.Text.Encodings.Web; using System.Text.Json; using System.Text.Unicode; -using Fake; using Fake.SqlSugarCore; using InterfaceForward.Application.Contracts.Dtos.ServiceProvider; using Microsoft.AspNetCore.Http; diff --git a/src/InterfaceForward.Application/Services/ServiceProvider/ServiceProviderService.cs b/src/InterfaceForward.Application/Services/ServiceProvider/ServiceProviderService.cs index 0dc2293..1c45def 100644 --- a/src/InterfaceForward.Application/Services/ServiceProvider/ServiceProviderService.cs +++ b/src/InterfaceForward.Application/Services/ServiceProvider/ServiceProviderService.cs @@ -1,5 +1,4 @@ using System.ComponentModel.DataAnnotations; -using Fake; using InterfaceForward.Application.Contracts.Dtos.ServiceProvider; using InterfaceForward.Application.ForwardCore; using InterfaceForward.Domain.Shared.Dtos; @@ -39,7 +38,7 @@ public class ServiceProviderService : ApplicationService /// 入参 /// [HttpPost("ServiceProvider/PaginatedList")] - public async Task> GetPaginatedListAsync( + public async Task> GetPaginatedListAsync( ServiceProviderPaginatedInputObjectValue input) { return await _serviceProviderRepository.GetPaginatedListAsync(input); diff --git a/src/InterfaceForward.Domain.Shared/Dtos/UnifyPagedResultDto.cs b/src/InterfaceForward.Domain.Shared/Dtos/UnifyPagedResultDto.cs deleted file mode 100644 index 42460ab..0000000 --- a/src/InterfaceForward.Domain.Shared/Dtos/UnifyPagedResultDto.cs +++ /dev/null @@ -1,19 +0,0 @@ -namespace InterfaceForward.Domain.Shared.Dtos; - -public class UnifyPagedResultDto : UnifyResultDto> -{ - public int TotalCount { get; set; } - - public new List Items { get; set; } - - public UnifyPagedResultDto() - { - Items = new List(); - } - - public UnifyPagedResultDto(List items, int totalCount) - { - Items = items; - TotalCount = totalCount; - } -} \ No newline at end of file diff --git a/src/InterfaceForward.Domain.Shared/Dtos/UnifyResultDto.cs b/src/InterfaceForward.Domain.Shared/Dtos/UnifyResultDto.cs deleted file mode 100644 index 04b4190..0000000 --- a/src/InterfaceForward.Domain.Shared/Dtos/UnifyResultDto.cs +++ /dev/null @@ -1,15 +0,0 @@ -namespace InterfaceForward.Domain.Shared.Dtos; - -public class UnifyResultDto(string code = "200", string message = "成功") -{ - public string Code { get; set; } = code; - - public string Message { get; set; } = message; - - public object? Data { get; set; } -} - -public class UnifyResultDto(T? data = default) : UnifyResultDto -{ - public new T? Data { get; set; } = data; -} \ No newline at end of file diff --git a/src/InterfaceForward.Domain.Shared/Helpers/PublicExtensions.cs b/src/InterfaceForward.Domain.Shared/Helpers/PublicExtensions.cs index a27d5db..df75a37 100644 --- a/src/InterfaceForward.Domain.Shared/Helpers/PublicExtensions.cs +++ b/src/InterfaceForward.Domain.Shared/Helpers/PublicExtensions.cs @@ -24,14 +24,6 @@ public static class PublicExtensions return iValue; } - public static string Left(this string str, int len) - { - ThrowHelper.ThrowIfNull(str, nameof(str)); - if (str.Length < len) - throw new ArgumentException("len argument can not be bigger than given string's length!"); - return str.Substring(0, len); - } - #region Json 操作 /// diff --git a/src/InterfaceForward.Domain.Shared/InterfaceForward.Domain.Shared.csproj b/src/InterfaceForward.Domain.Shared/InterfaceForward.Domain.Shared.csproj index 4ce2d94..b886ec9 100644 --- a/src/InterfaceForward.Domain.Shared/InterfaceForward.Domain.Shared.csproj +++ b/src/InterfaceForward.Domain.Shared/InterfaceForward.Domain.Shared.csproj @@ -5,9 +5,12 @@ - + + + + diff --git a/src/InterfaceForward.Infrastructure/EntityConfigurations/InterfaceEntityTypeConfiguration.cs b/src/InterfaceForward.Infrastructure/EntityConfigurations/InterfaceEntityTypeConfiguration.cs deleted file mode 100644 index 6e6ed74..0000000 --- a/src/InterfaceForward.Infrastructure/EntityConfigurations/InterfaceEntityTypeConfiguration.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System.Linq; -using InterfaceForward.Domain.Aggregates.InterfaceAggregate; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Metadata.Builders; - -namespace InterfaceForward.Infrastructure.EntityConfigurations; - -public class InterfaceEntityTypeConfiguration: IEntityTypeConfiguration -{ - public void Configure(EntityTypeBuilder builder) - { - builder.ToTable("t_interface", InterfaceForwardContext.DefaultSchema); - - builder.HasKey(x => x.Id); - builder.Property(x => x.InterfaceType).IsRequired(); - builder.Property(x => x.Code).HasMaxLength(50).IsRequired(); - builder.Property(x => x.Name).HasMaxLength(100).IsRequired(); - builder.Property(x => x.Description).HasMaxLength(500); - - builder.HasMany(typeof(InterfaceParamEntity), "_params") - .WithOne() - .HasForeignKey(nameof(InterfaceParamEntity.InterfaceId)) - .IsRequired(); - - builder.Ignore(s => s.InParams); - builder.Ignore(s => s.OutParams); - } -} \ No newline at end of file diff --git a/src/InterfaceForward.Infrastructure/EntityConfigurations/InterfaceMapDetailsEntityTypeConfiguration.cs b/src/InterfaceForward.Infrastructure/EntityConfigurations/InterfaceMapDetailsEntityTypeConfiguration.cs deleted file mode 100644 index c855f33..0000000 --- a/src/InterfaceForward.Infrastructure/EntityConfigurations/InterfaceMapDetailsEntityTypeConfiguration.cs +++ /dev/null @@ -1,18 +0,0 @@ -using InterfaceForward.Domain.Aggregates.InterfaceMapAggregate; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Metadata.Builders; - -namespace InterfaceForward.Infrastructure.EntityConfigurations; - -public class InterfaceMapDetailsEntityTypeConfiguration : IEntityTypeConfiguration -{ - public void Configure(EntityTypeBuilder builder) - { - builder.ToTable("interface_map_details", InterfaceForwardContext.DefaultSchema); - builder.HasKey(x => x.Id); - builder.Property(x => x.InterfaceMapId).IsRequired(); - builder.Property(x => x.ParamId).IsRequired(); - builder.Property(x => x.MappedParamId); - builder.Property(x => x.IsInParam).IsRequired(); - } -} \ No newline at end of file diff --git a/src/InterfaceForward.Infrastructure/EntityConfigurations/InterfaceMapEntityTypeConfiguration.cs b/src/InterfaceForward.Infrastructure/EntityConfigurations/InterfaceMapEntityTypeConfiguration.cs deleted file mode 100644 index 16d83d3..0000000 --- a/src/InterfaceForward.Infrastructure/EntityConfigurations/InterfaceMapEntityTypeConfiguration.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; -using System.Linq; -using InterfaceForward.Domain.Aggregates.InterfaceMapAggregate; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Metadata.Builders; - -namespace InterfaceForward.Infrastructure.EntityConfigurations; - -public class InterfaceMapEntityTypeConfiguration: IEntityTypeConfiguration -{ - public void Configure(EntityTypeBuilder builder) - { - builder.ToTable("interface_map", InterfaceForwardContext.DefaultSchema); - builder.HasKey(x => x.Id); - builder.Property(x => x.UpStreamInterfaceCode).HasMaxLength(50).IsRequired(); - builder.Property(x => x.ServiceProviderCode).HasMaxLength(50).IsRequired(); - builder.Property(x => x.ServiceProviderInterfaceCodes) - .IsRequired() - .HasConversion( - v => string.Join(',', v), - v => v.Split(',', StringSplitOptions.RemoveEmptyEntries).ToList() - ); - builder.Property(x => x.OnlineVersion).HasMaxLength(50); - builder.Property(x => x.PrefixScript); - builder.Property(x => x.PostfixScript); - builder.Property(x => x.IsDeleted).HasDefaultValue(false); - } -} \ No newline at end of file diff --git a/src/InterfaceForward.Infrastructure/EntityConfigurations/InterfaceParamEntityTypeConfiguration.cs b/src/InterfaceForward.Infrastructure/EntityConfigurations/InterfaceParamEntityTypeConfiguration.cs deleted file mode 100644 index f99d3a7..0000000 --- a/src/InterfaceForward.Infrastructure/EntityConfigurations/InterfaceParamEntityTypeConfiguration.cs +++ /dev/null @@ -1,16 +0,0 @@ -using InterfaceForward.Domain.Aggregates.InterfaceAggregate; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Metadata.Builders; - -namespace InterfaceForward.Infrastructure.EntityConfigurations; - -public class InterfaceParamEntityTypeConfiguration: IEntityTypeConfiguration -{ - public void Configure(EntityTypeBuilder builder) - { - builder.ToTable("t_interface_params", InterfaceForwardContext.DefaultSchema); - - builder.HasKey(x => x.Id); - - } -} \ No newline at end of file diff --git a/src/InterfaceForward.Infrastructure/InterfaceForward.Infrastructure.csproj b/src/InterfaceForward.Infrastructure/InterfaceForward.Infrastructure.csproj deleted file mode 100644 index d405291..0000000 --- a/src/InterfaceForward.Infrastructure/InterfaceForward.Infrastructure.csproj +++ /dev/null @@ -1,17 +0,0 @@ -Project Sdk="Microsoft.NET.Sdk"> - - - - - net8.0 - - - - - - - - - - - diff --git a/src/InterfaceForward.Infrastructure/InterfaceForwardContext.cs b/src/InterfaceForward.Infrastructure/InterfaceForwardContext.cs deleted file mode 100644 index eab50dd..0000000 --- a/src/InterfaceForward.Infrastructure/InterfaceForwardContext.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Fake.EntityFrameworkCore; -using InterfaceForward.Domain.Aggregates.InterfaceAggregate; -using InterfaceForward.Domain.Aggregates.ServiceProviderAggregate; -using InterfaceForward.Domain.InterfaceAggregate; -using Microsoft.EntityFrameworkCore; - -namespace InterfaceForward.Infrastructure; - -public class InterfaceForwardContext : FakeDbContext -{ - public const string DefaultSchema = "forward"; - - public DbSet Interfaces { get; set; } - - public DbSet ServiceProviders { get; set; } - - public InterfaceForwardContext(DbContextOptions options) : base(options) - { - System.Diagnostics.Debug.WriteLine("InterfaceForwardContext::ctor ->" + base.GetHashCode()); - } -} \ No newline at end of file diff --git a/src/InterfaceForward.Infrastructure/InterfaceForwardInfrastructureModule.cs b/src/InterfaceForward.Infrastructure/InterfaceForwardInfrastructureModule.cs deleted file mode 100644 index 3367908..0000000 --- a/src/InterfaceForward.Infrastructure/InterfaceForwardInfrastructureModule.cs +++ /dev/null @@ -1,9 +0,0 @@ -using Fake.EntityFrameworkCore; -using Fake.Modularity; - -namespace InterfaceForward.Infrastructure; - -[DependsOn(typeof(FakeEntityFrameworkCoreModule))] -public class InterfaceForwardInfrastructureModule:FakeModule -{ -} \ No newline at end of file diff --git a/src/InterfaceForward.Repositories/GlobalUsings.cs b/src/InterfaceForward.Repositories/GlobalUsings.cs index cf5ddfd..753ed69 100644 --- a/src/InterfaceForward.Repositories/GlobalUsings.cs +++ b/src/InterfaceForward.Repositories/GlobalUsings.cs @@ -2,5 +2,6 @@ global using Fake.DependencyInjection; global using Fake.DomainDrivenDesign; +global using Fake.DomainDrivenDesign.Application.Dtos; global using Fake.DomainDrivenDesign.Entities.Auditing; global using SqlSugar; \ No newline at end of file diff --git a/src/InterfaceForward.Repositories/Interface/Services/IInterfaceRepository.cs b/src/InterfaceForward.Repositories/Interface/Services/IInterfaceRepository.cs index 2f4e4dd..f444d51 100644 --- a/src/InterfaceForward.Repositories/Interface/Services/IInterfaceRepository.cs +++ b/src/InterfaceForward.Repositories/Interface/Services/IInterfaceRepository.cs @@ -17,14 +17,14 @@ namespace InterfaceForward.Repositories.Interface.Services /// /// /// - Task> GetSystemInterfacePaginatedListAsync(SystemInterfacePaginatedInputObjectValue input); + Task> GetSystemInterfacePaginatedListAsync(SystemInterfacePaginatedInputObjectValue input); /// /// 获取服务商接口分页 /// /// /// - Task> GetServiceProviderInterfacePaginatedListAsync(ServiceProviderInterfacePaginatedInputObjectValue input); + Task> GetServiceProviderInterfacePaginatedListAsync(ServiceProviderInterfacePaginatedInputObjectValue input); /// /// 获取参数列表 diff --git a/src/InterfaceForward.Repositories/Interface/Services/InterfaceRepository.cs b/src/InterfaceForward.Repositories/Interface/Services/InterfaceRepository.cs index 4f44ef7..24d98db 100644 --- a/src/InterfaceForward.Repositories/Interface/Services/InterfaceRepository.cs +++ b/src/InterfaceForward.Repositories/Interface/Services/InterfaceRepository.cs @@ -16,7 +16,7 @@ public class InterfaceRepository : BasicRepository, IInterfaceR public string InterfaceGroup => "InterfaceGroup"; /// - public async Task> + public async Task> GetSystemInterfacePaginatedListAsync(SystemInterfacePaginatedInputObjectValue input) { // t_interface驱动t_interface_map,数据量上来可以在t_interface_map UpStreamId字段建立索引 @@ -47,7 +47,7 @@ public class InterfaceRepository : BasicRepository, IInterfaceR } /// - public async Task> + public async Task> GetServiceProviderInterfacePaginatedListAsync(ServiceProviderInterfacePaginatedInputObjectValue input) { var query = AsQueryable() diff --git a/src/InterfaceForward.Repositories/InterfaceForward.Repositories.csproj b/src/InterfaceForward.Repositories/InterfaceForward.Repositories.csproj index 6204b73..e249332 100644 --- a/src/InterfaceForward.Repositories/InterfaceForward.Repositories.csproj +++ b/src/InterfaceForward.Repositories/InterfaceForward.Repositories.csproj @@ -7,8 +7,8 @@ - - + + diff --git a/src/InterfaceForward.Repositories/ServiceProvider/Services/IServiceProviderAccountRepository.cs b/src/InterfaceForward.Repositories/ServiceProvider/Services/IServiceProviderAccountRepository.cs index 82e5ed9..1b5e335 100644 --- a/src/InterfaceForward.Repositories/ServiceProvider/Services/IServiceProviderAccountRepository.cs +++ b/src/InterfaceForward.Repositories/ServiceProvider/Services/IServiceProviderAccountRepository.cs @@ -30,7 +30,7 @@ public interface IServiceProviderAccountRepository : IBasicRepository /// /// - Task> GetAccountPageListAsync(int serviceProviderId, + Task> GetAccountPageListAsync(int serviceProviderId, int pageIndex, int pageSize); diff --git a/src/InterfaceForward.Repositories/ServiceProvider/Services/IServiceProviderRepository.cs b/src/InterfaceForward.Repositories/ServiceProvider/Services/IServiceProviderRepository.cs index c9a257e..ea54cb8 100644 --- a/src/InterfaceForward.Repositories/ServiceProvider/Services/IServiceProviderRepository.cs +++ b/src/InterfaceForward.Repositories/ServiceProvider/Services/IServiceProviderRepository.cs @@ -14,7 +14,7 @@ namespace InterfaceForward.Repositories.ServiceProvider.Services /// /// /// - Task> GetPaginatedListAsync( + Task> GetPaginatedListAsync( ServiceProviderPaginatedInputObjectValue input); /// diff --git a/src/InterfaceForward.Repositories/ServiceProvider/Services/ServiceProviderAccountRepository.cs b/src/InterfaceForward.Repositories/ServiceProvider/Services/ServiceProviderAccountRepository.cs index 49ad7b5..018f85f 100644 --- a/src/InterfaceForward.Repositories/ServiceProvider/Services/ServiceProviderAccountRepository.cs +++ b/src/InterfaceForward.Repositories/ServiceProvider/Services/ServiceProviderAccountRepository.cs @@ -20,7 +20,7 @@ public class ServiceProviderAccountRepository : BasicRepository> GetAccountPageListAsync( + public async Task> GetAccountPageListAsync( int serviceProviderId, int pageIndex, int pageSize) { return await Context.Queryable() diff --git a/src/InterfaceForward.Repositories/ServiceProvider/Services/ServiceProviderRepository.cs b/src/InterfaceForward.Repositories/ServiceProvider/Services/ServiceProviderRepository.cs index 82302f7..84cdfe8 100644 --- a/src/InterfaceForward.Repositories/ServiceProvider/Services/ServiceProviderRepository.cs +++ b/src/InterfaceForward.Repositories/ServiceProvider/Services/ServiceProviderRepository.cs @@ -13,7 +13,7 @@ public class ServiceProviderRepository : BasicRepository, IServiceProviderRepository { /// - public async Task> GetPaginatedListAsync( + public async Task> GetPaginatedListAsync( ServiceProviderPaginatedInputObjectValue input) { // t_service_provider驱动t_interface,数据量上来可以在t_interface ServiceProviderId字段建立索引 diff --git a/src/InterfaceForward.Repositories/SugarQueryableExtensions.cs b/src/InterfaceForward.Repositories/SugarQueryableExtensions.cs index 0996de6..68e7bd7 100644 --- a/src/InterfaceForward.Repositories/SugarQueryableExtensions.cs +++ b/src/InterfaceForward.Repositories/SugarQueryableExtensions.cs @@ -1,16 +1,14 @@  -using InterfaceForward.Domain.Shared.Dtos; - namespace InterfaceForward.Repositories; public static class SugarQueryableExtensions { - public static async Task> ToPagedListAsync(this ISugarQueryable query, + public static async Task> ToPagedListAsync(this ISugarQueryable query, int pageIndex, int pageSize) where TEntity : class { RefAsync totalCount = 0; var items = await query.ToPageListAsync(pageIndex, pageSize, totalCount); - return new UnifyPagedResultDto(items, totalCount); + return new PagedListDto(items, totalCount); } } \ No newline at end of file diff --git a/src/InterfaceForward.sln b/src/InterfaceForward.sln deleted file mode 100644 index 32cf00b..0000000 --- a/src/InterfaceForward.sln +++ /dev/null @@ -1,30 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.8.0.0 -MinimumVisualStudioVersion = 17.8.0.0 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "InterfaceForward.AppHost", "InterfaceForward.AppHost\InterfaceForward.AppHost.csproj", "{D4540BC1-77C8-407F-9009-CADE4E2A4CD9}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "InterfaceForward.ServiceDefaults", "InterfaceForward.ServiceDefaults\InterfaceForward.ServiceDefaults.csproj", "{B0AC9CDE-3A63-4AE9-85A9-8854E9EB441E}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D4540BC1-77C8-407F-9009-CADE4E2A4CD9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D4540BC1-77C8-407F-9009-CADE4E2A4CD9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D4540BC1-77C8-407F-9009-CADE4E2A4CD9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D4540BC1-77C8-407F-9009-CADE4E2A4CD9}.Release|Any CPU.Build.0 = Release|Any CPU - {B0AC9CDE-3A63-4AE9-85A9-8854E9EB441E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B0AC9CDE-3A63-4AE9-85A9-8854E9EB441E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B0AC9CDE-3A63-4AE9-85A9-8854E9EB441E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B0AC9CDE-3A63-4AE9-85A9-8854E9EB441E}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {B7073D5C-741D-4DC5-AFDB-C2C67E306A04} - EndGlobalSection -EndGlobal \ No newline at end of file