Удаление restsharp и использование обычного httpClient #22
@ -0,0 +1,27 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<IsPackable>false</IsPackable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="coverlet.collector" Version="6.0.2" />
|
||||
<PackageReference Include="Mapster" Version="7.4.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="9.0.0" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
|
||||
<PackageReference Include="xunit" Version="2.9.2" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\DD.Persistence.Database.Postgres\DD.Persistence.Database.Postgres.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Using Include="Xunit" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
40
DD.Persistence.Database.Postgres.Test/DbFixture.cs
Normal file
40
DD.Persistence.Database.Postgres.Test/DbFixture.cs
Normal file
@ -0,0 +1,40 @@
|
||||
using DD.Persistence.Database.Model;
|
||||
using DD.Persistence.Database.Postgres.Extensions;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace DD.Persistence.Database.Postgres.Test;
|
||||
public class DbFixture : IDisposable
|
||||
{
|
||||
private string connectionString { get; }
|
||||
public ServiceProvider serviceProvider { get; private set; }
|
||||
|
||||
public DbFixture()
|
||||
{
|
||||
connectionString = $"Host=localhost;Port=5462;Username=postgres;Password=postgres;Database={Guid.CreateVersion7()}";
|
||||
|
||||
var serviceCollection = new ServiceCollection();
|
||||
serviceCollection
|
||||
.AddDbContext<PersistenceDbContext>(options => options.UseNpgsql(connectionString),
|
||||
ServiceLifetime.Transient);
|
||||
|
||||
serviceProvider = serviceCollection.BuildServiceProvider();
|
||||
|
||||
var context = serviceProvider.GetRequiredService<PersistenceDbContext>();
|
||||
context.Database.EnsureCreated();
|
||||
context.Database.AddPartitioning();
|
||||
context.SaveChanges();
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
var dbContext = new PersistencePostgresContext(
|
||||
new DbContextOptionsBuilder<PersistencePostgresContext>()
|
||||
.UseNpgsql(connectionString)
|
||||
.Options);
|
||||
|
||||
dbContext.Database.EnsureDeleted();
|
||||
|
||||
GC.SuppressFinalize(this);
|
||||
}
|
||||
}
|
@ -0,0 +1,65 @@
|
||||
using DD.Persistence.Database.Entity;
|
||||
using Mapster;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Npgsql;
|
||||
|
||||
namespace DD.Persistence.Database.Postgres.Test;
|
||||
|
||||
public class UnitTestCheckHyperTables : IClassFixture<DbFixture>
|
||||
{
|
||||
private ServiceProvider _serviceProvider;
|
||||
|
||||
public UnitTestCheckHyperTables(DbFixture fixture)
|
||||
{
|
||||
_serviceProvider = fixture.serviceProvider;
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CreateHyperTable_For_ParameterData_Return_Success()
|
||||
{
|
||||
var chunksCount = 0;
|
||||
|
||||
var entity = new ParameterData()
|
||||
{
|
||||
DiscriminatorId = Guid.NewGuid(),
|
||||
ParameterId = 1,
|
||||
Timestamp = DateTime.UtcNow,
|
||||
Value = "123"
|
||||
};
|
||||
|
||||
using (var context = _serviceProvider.GetService<PersistenceDbContext>()!)
|
||||
{
|
||||
context.ParameterData.Add(entity);
|
||||
|
||||
var entity2 = entity.Adapt<ParameterData>();
|
||||
entity2.ParameterId = 2;
|
||||
context.ParameterData.Add(entity2);
|
||||
|
||||
var entity3 = entity2.Adapt<ParameterData>();
|
||||
entity3.ParameterId = 3;
|
||||
context.ParameterData.Add(entity3);
|
||||
|
||||
var entity4 = entity3.Adapt<ParameterData>();
|
||||
entity4.ParameterId = 4;
|
||||
context.ParameterData.Add(entity4);
|
||||
|
||||
var entity5 = entity3.Adapt<ParameterData>();
|
||||
entity5.Timestamp = DateTime.UtcNow.AddDays(1).AddHours(1);
|
||||
context.ParameterData.Add(entity5);
|
||||
|
||||
var entity6 = entity3.Adapt<ParameterData>();
|
||||
entity6.DiscriminatorId = Guid.CreateVersion7();
|
||||
context.ParameterData.Add(entity6);
|
||||
|
||||
context.SaveChanges();
|
||||
|
||||
string sql = "select count(*) from (select show_chunks('parameter_data'));";
|
||||
var queryRow = context.Database.SqlQueryRaw<int>(sql);
|
||||
|
||||
chunksCount = queryRow.AsEnumerable().FirstOrDefault();
|
||||
}
|
||||
|
||||
Assert.Equal(5, chunksCount);
|
||||
}
|
||||
}
|
@ -25,6 +25,8 @@ public static class EFExtensionsPartitioning
|
||||
/// <param name="db"></param>
|
||||
private static void AddParameterDataPartitioning(this DatabaseFacade db)
|
||||
{
|
||||
var dayCount = 1;
|
||||
var sectionCount = 128;
|
||||
var type = typeof(ParameterData);
|
||||
var tableAttribute = type.GetCustomAttribute<TableAttribute>();
|
||||
if (tableAttribute is null)
|
||||
@ -32,13 +34,16 @@ public static class EFExtensionsPartitioning
|
||||
return;
|
||||
}
|
||||
|
||||
const int sectionsNumber = 2;
|
||||
const int chunkTimeInterval = 5;
|
||||
var sqlString = $"SELECT create_hypertable('{tableAttribute.Name}'," +
|
||||
$"'{nameof(ParameterData.Timestamp)}'," +
|
||||
$"'{nameof(ParameterData.ParameterId)}'," +
|
||||
$"{sectionsNumber}," +
|
||||
$"chunk_time_interval => INTERVAL '{chunkTimeInterval} day');";
|
||||
db.ExecuteSqlRaw(sqlString);
|
||||
var sqlCreateHypertableString = $"SELECT create_hypertable('{tableAttribute.Name}'," +
|
||||
$"by_range('{nameof(ParameterData.Timestamp)}', INTERVAL '{dayCount} day'), if_not_exists => {true});";
|
||||
db.ExecuteSqlRaw(sqlCreateHypertableString);
|
||||
|
||||
var sqlCreateDimensionParameterId = $"SELECT add_dimension('{tableAttribute.Name}'," +
|
||||
$"by_hash('{nameof(ParameterData.ParameterId)}', {sectionCount}), if_not_exists => {true});";
|
||||
db.ExecuteSqlRaw(sqlCreateDimensionParameterId);
|
||||
|
||||
var sqlCreateDimensionDiscriminatorId = $"SELECT add_dimension('{tableAttribute.Name}'," +
|
||||
$"by_hash('{nameof(ParameterData.DiscriminatorId)}', {sectionCount}), if_not_exists => {true});";
|
||||
db.ExecuteSqlRaw(sqlCreateDimensionDiscriminatorId);
|
||||
}
|
||||
}
|
||||
|
@ -13,7 +13,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
namespace DD.Persistence.Database.Postgres.Migrations
|
||||
{
|
||||
[DbContext(typeof(PersistencePostgresContext))]
|
||||
[Migration("20250122120353_Init")]
|
||||
[Migration("20250203061429_Init")]
|
||||
partial class Init
|
||||
{
|
||||
/// <inheritdoc />
|
||||
@ -26,6 +26,47 @@ namespace DD.Persistence.Database.Postgres.Migrations
|
||||
|
||||
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
||||
|
||||
modelBuilder.Entity("DD.Persistence.Database.Entity.ChangeLog", b =>
|
||||
{
|
||||
b.Property<Guid>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("uuid")
|
||||
.HasComment("Ключ записи");
|
||||
|
||||
b.Property<DateTimeOffset>("Creation")
|
||||
.HasColumnType("timestamp with time zone")
|
||||
.HasComment("Дата создания записи");
|
||||
|
||||
b.Property<Guid>("IdAuthor")
|
||||
.HasColumnType("uuid")
|
||||
.HasComment("Автор изменения");
|
||||
|
||||
b.Property<Guid>("IdDiscriminator")
|
||||
.HasColumnType("uuid")
|
||||
.HasComment("Дискриминатор таблицы");
|
||||
|
||||
b.Property<Guid?>("IdEditor")
|
||||
.HasColumnType("uuid")
|
||||
.HasComment("Редактор");
|
||||
|
||||
b.Property<Guid?>("IdNext")
|
||||
.HasColumnType("uuid")
|
||||
.HasComment("Id заменяющей записи");
|
||||
|
||||
b.Property<DateTimeOffset?>("Obsolete")
|
||||
.HasColumnType("timestamp with time zone")
|
||||
.HasComment("Дата устаревания (например при удалении)");
|
||||
|
||||
b.Property<string>("Value")
|
||||
.IsRequired()
|
||||
.HasColumnType("jsonb")
|
||||
.HasComment("Значение");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("change_log");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("DD.Persistence.Database.Entity.DataScheme", b =>
|
||||
{
|
||||
b.Property<Guid>("DiscriminatorId")
|
||||
@ -88,6 +129,29 @@ namespace DD.Persistence.Database.Postgres.Migrations
|
||||
b.ToTable("parameter_data");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("DD.Persistence.Database.Entity.Setpoint", b =>
|
||||
{
|
||||
b.Property<Guid>("Key")
|
||||
.HasColumnType("uuid")
|
||||
.HasComment("Ключ");
|
||||
|
||||
b.Property<DateTimeOffset>("Timestamp")
|
||||
.HasColumnType("timestamp with time zone")
|
||||
.HasComment("Дата создания уставки");
|
||||
|
||||
b.Property<Guid>("IdUser")
|
||||
.HasColumnType("uuid")
|
||||
.HasComment("Id автора последнего изменения");
|
||||
|
||||
b.Property<JsonElement>("Value")
|
||||
.HasColumnType("jsonb")
|
||||
.HasComment("Значение уставки");
|
||||
|
||||
b.HasKey("Key", "Timestamp");
|
||||
|
||||
b.ToTable("setpoint");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("DD.Persistence.Database.Entity.TechMessage", b =>
|
||||
{
|
||||
b.Property<Guid>("EventId")
|
||||
@ -143,82 +207,6 @@ namespace DD.Persistence.Database.Postgres.Migrations
|
||||
b.ToTable("timestamped_values");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("DD.Persistence.Database.Model.ChangeLog", b =>
|
||||
{
|
||||
b.Property<Guid>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("uuid")
|
||||
.HasComment("Ключ записи");
|
||||
|
||||
b.Property<DateTimeOffset>("Creation")
|
||||
.HasColumnType("timestamp with time zone")
|
||||
.HasComment("Дата создания записи");
|
||||
|
||||
b.Property<double>("DepthEnd")
|
||||
.HasColumnType("double precision")
|
||||
.HasComment("Глубина забоя на дату окончания интервала");
|
||||
|
||||
b.Property<double>("DepthStart")
|
||||
.HasColumnType("double precision")
|
||||
.HasComment("Глубина забоя на дату начала интервала");
|
||||
|
||||
b.Property<Guid>("IdAuthor")
|
||||
.HasColumnType("uuid")
|
||||
.HasComment("Автор изменения");
|
||||
|
||||
b.Property<Guid>("IdDiscriminator")
|
||||
.HasColumnType("uuid")
|
||||
.HasComment("Дискриминатор таблицы");
|
||||
|
||||
b.Property<Guid?>("IdEditor")
|
||||
.HasColumnType("uuid")
|
||||
.HasComment("Редактор");
|
||||
|
||||
b.Property<Guid?>("IdNext")
|
||||
.HasColumnType("uuid")
|
||||
.HasComment("Id заменяющей записи");
|
||||
|
||||
b.Property<Guid>("IdSection")
|
||||
.HasColumnType("uuid")
|
||||
.HasComment("Ключ секции");
|
||||
|
||||
b.Property<DateTimeOffset?>("Obsolete")
|
||||
.HasColumnType("timestamp with time zone")
|
||||
.HasComment("Дата устаревания (например при удалении)");
|
||||
|
||||
b.Property<string>("Value")
|
||||
.IsRequired()
|
||||
.HasColumnType("jsonb")
|
||||
.HasComment("Значение");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("change_log");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("DD.Persistence.Database.Model.Setpoint", b =>
|
||||
{
|
||||
b.Property<Guid>("Key")
|
||||
.HasColumnType("uuid")
|
||||
.HasComment("Ключ");
|
||||
|
||||
b.Property<DateTimeOffset>("Timestamp")
|
||||
.HasColumnType("timestamp with time zone")
|
||||
.HasComment("Дата создания уставки");
|
||||
|
||||
b.Property<Guid>("IdUser")
|
||||
.HasColumnType("uuid")
|
||||
.HasComment("Id автора последнего изменения");
|
||||
|
||||
b.Property<JsonElement>("Value")
|
||||
.HasColumnType("jsonb")
|
||||
.HasComment("Значение уставки");
|
||||
|
||||
b.HasKey("Key", "Timestamp");
|
||||
|
||||
b.ToTable("setpoint");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("DD.Persistence.Database.Entity.TechMessage", b =>
|
||||
{
|
||||
b.HasOne("DD.Persistence.Database.Entity.DataSourceSystem", "System")
|
@ -23,9 +23,6 @@ namespace DD.Persistence.Database.Postgres.Migrations
|
||||
Creation = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false, comment: "Дата создания записи"),
|
||||
Obsolete = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true, comment: "Дата устаревания (например при удалении)"),
|
||||
IdNext = table.Column<Guid>(type: "uuid", nullable: true, comment: "Id заменяющей записи"),
|
||||
DepthStart = table.Column<double>(type: "double precision", nullable: false, comment: "Глубина забоя на дату начала интервала"),
|
||||
DepthEnd = table.Column<double>(type: "double precision", nullable: false, comment: "Глубина забоя на дату окончания интервала"),
|
||||
IdSection = table.Column<Guid>(type: "uuid", nullable: false, comment: "Ключ секции"),
|
||||
Value = table.Column<string>(type: "jsonb", nullable: false, comment: "Значение")
|
||||
},
|
||||
constraints: table =>
|
@ -23,6 +23,47 @@ namespace DD.Persistence.Database.Postgres.Migrations
|
||||
|
||||
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
||||
|
||||
modelBuilder.Entity("DD.Persistence.Database.Entity.ChangeLog", b =>
|
||||
{
|
||||
b.Property<Guid>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("uuid")
|
||||
.HasComment("Ключ записи");
|
||||
|
||||
b.Property<DateTimeOffset>("Creation")
|
||||
.HasColumnType("timestamp with time zone")
|
||||
.HasComment("Дата создания записи");
|
||||
|
||||
b.Property<Guid>("IdAuthor")
|
||||
.HasColumnType("uuid")
|
||||
.HasComment("Автор изменения");
|
||||
|
||||
b.Property<Guid>("IdDiscriminator")
|
||||
.HasColumnType("uuid")
|
||||
.HasComment("Дискриминатор таблицы");
|
||||
|
||||
b.Property<Guid?>("IdEditor")
|
||||
.HasColumnType("uuid")
|
||||
.HasComment("Редактор");
|
||||
|
||||
b.Property<Guid?>("IdNext")
|
||||
.HasColumnType("uuid")
|
||||
.HasComment("Id заменяющей записи");
|
||||
|
||||
b.Property<DateTimeOffset?>("Obsolete")
|
||||
.HasColumnType("timestamp with time zone")
|
||||
.HasComment("Дата устаревания (например при удалении)");
|
||||
|
||||
b.Property<string>("Value")
|
||||
.IsRequired()
|
||||
.HasColumnType("jsonb")
|
||||
.HasComment("Значение");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("change_log");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("DD.Persistence.Database.Entity.DataScheme", b =>
|
||||
{
|
||||
b.Property<Guid>("DiscriminatorId")
|
||||
@ -85,6 +126,29 @@ namespace DD.Persistence.Database.Postgres.Migrations
|
||||
b.ToTable("parameter_data");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("DD.Persistence.Database.Entity.Setpoint", b =>
|
||||
{
|
||||
b.Property<Guid>("Key")
|
||||
.HasColumnType("uuid")
|
||||
.HasComment("Ключ");
|
||||
|
||||
b.Property<DateTimeOffset>("Timestamp")
|
||||
.HasColumnType("timestamp with time zone")
|
||||
.HasComment("Дата создания уставки");
|
||||
|
||||
b.Property<Guid>("IdUser")
|
||||
.HasColumnType("uuid")
|
||||
.HasComment("Id автора последнего изменения");
|
||||
|
||||
b.Property<JsonElement>("Value")
|
||||
.HasColumnType("jsonb")
|
||||
.HasComment("Значение уставки");
|
||||
|
||||
b.HasKey("Key", "Timestamp");
|
||||
|
||||
b.ToTable("setpoint");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("DD.Persistence.Database.Entity.TechMessage", b =>
|
||||
{
|
||||
b.Property<Guid>("EventId")
|
||||
@ -140,82 +204,6 @@ namespace DD.Persistence.Database.Postgres.Migrations
|
||||
b.ToTable("timestamped_values");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("DD.Persistence.Database.Model.ChangeLog", b =>
|
||||
{
|
||||
b.Property<Guid>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("uuid")
|
||||
.HasComment("Ключ записи");
|
||||
|
||||
b.Property<DateTimeOffset>("Creation")
|
||||
.HasColumnType("timestamp with time zone")
|
||||
.HasComment("Дата создания записи");
|
||||
|
||||
b.Property<double>("DepthEnd")
|
||||
.HasColumnType("double precision")
|
||||
.HasComment("Глубина забоя на дату окончания интервала");
|
||||
|
||||
b.Property<double>("DepthStart")
|
||||
.HasColumnType("double precision")
|
||||
.HasComment("Глубина забоя на дату начала интервала");
|
||||
|
||||
b.Property<Guid>("IdAuthor")
|
||||
.HasColumnType("uuid")
|
||||
.HasComment("Автор изменения");
|
||||
|
||||
b.Property<Guid>("IdDiscriminator")
|
||||
.HasColumnType("uuid")
|
||||
.HasComment("Дискриминатор таблицы");
|
||||
|
||||
b.Property<Guid?>("IdEditor")
|
||||
.HasColumnType("uuid")
|
||||
.HasComment("Редактор");
|
||||
|
||||
b.Property<Guid?>("IdNext")
|
||||
.HasColumnType("uuid")
|
||||
.HasComment("Id заменяющей записи");
|
||||
|
||||
b.Property<Guid>("IdSection")
|
||||
.HasColumnType("uuid")
|
||||
.HasComment("Ключ секции");
|
||||
|
||||
b.Property<DateTimeOffset?>("Obsolete")
|
||||
.HasColumnType("timestamp with time zone")
|
||||
.HasComment("Дата устаревания (например при удалении)");
|
||||
|
||||
b.Property<string>("Value")
|
||||
.IsRequired()
|
||||
.HasColumnType("jsonb")
|
||||
.HasComment("Значение");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("change_log");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("DD.Persistence.Database.Model.Setpoint", b =>
|
||||
{
|
||||
b.Property<Guid>("Key")
|
||||
.HasColumnType("uuid")
|
||||
.HasComment("Ключ");
|
||||
|
||||
b.Property<DateTimeOffset>("Timestamp")
|
||||
.HasColumnType("timestamp with time zone")
|
||||
.HasComment("Дата создания уставки");
|
||||
|
||||
b.Property<Guid>("IdUser")
|
||||
.HasColumnType("uuid")
|
||||
.HasComment("Id автора последнего изменения");
|
||||
|
||||
b.Property<JsonElement>("Value")
|
||||
.HasColumnType("jsonb")
|
||||
.HasComment("Значение уставки");
|
||||
|
||||
b.HasKey("Key", "Timestamp");
|
||||
|
||||
b.ToTable("setpoint");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("DD.Persistence.Database.Entity.TechMessage", b =>
|
||||
{
|
||||
b.HasOne("DD.Persistence.Database.Entity.DataSourceSystem", "System")
|
||||
|
@ -1,9 +1,9 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace DD.Persistence.Database.Model;
|
||||
|
||||
/// <summary>
|
||||
/// EF êîíòåêñò äëÿ ÁÄ Postgres
|
||||
/// EF контекст для базы данных Postgres
|
||||
/// </summary>
|
||||
public partial class PersistencePostgresContext : PersistenceDbContext
|
||||
{
|
||||
|
@ -35,6 +35,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Элементы решен
|
||||
.gitea\workflows\integrationTests.yaml = .gitea\workflows\integrationTests.yaml
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DD.Persistence.Database.Postgres.Test", "DD.Persistence.Database.Postgres.Test\DD.Persistence.Database.Postgres.Test.csproj", "{47142566-9EAB-4FB5-92EC-9DCB02CAC890}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
@ -85,6 +87,10 @@ Global
|
||||
{B8C774E6-6B75-41AC-B3CF-10BD3623B2FA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{B8C774E6-6B75-41AC-B3CF-10BD3623B2FA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{B8C774E6-6B75-41AC-B3CF-10BD3623B2FA}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{47142566-9EAB-4FB5-92EC-9DCB02CAC890}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{47142566-9EAB-4FB5-92EC-9DCB02CAC890}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{47142566-9EAB-4FB5-92EC-9DCB02CAC890}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{47142566-9EAB-4FB5-92EC-9DCB02CAC890}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
Loading…
Reference in New Issue
Block a user