add basic entities

tests
Maxime BATISTA 9 months ago
parent e8fe1426dc
commit 2f9975cc2a

@ -0,0 +1,25 @@
**/.dockerignore
**/.env
**/.git
**/.gitignore
**/.project
**/.settings
**/.toolstarget
**/.vs
**/.vscode
**/.idea
**/*.*proj.user
**/*.dbmdl
**/*.jfm
**/azds.yaml
**/bin
**/charts
**/docker-compose*
**/Dockerfile*
**/node_modules
**/npm-debug.log
**/obj
**/secrets.dev.yaml
**/values.dev.yaml
LICENSE
README.md

@ -0,0 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<InvariantGlobalization>true</InvariantGlobalization>
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="8.0.0"/>
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0"/>
</ItemGroup>
<ItemGroup>
<Content Include="..\.dockerignore">
<Link>.dockerignore</Link>
</Content>
</ItemGroup>
</Project>

@ -0,0 +1,6 @@
@API_HostAddress = http://localhost:5254
GET {{API_HostAddress}}/weatherforecast/
Accept: application/json
###

@ -0,0 +1,23 @@
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER $APP_UID
WORKDIR /app
EXPOSE 8080
EXPOSE 8081
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY ["API/API.csproj", "API/"]
RUN dotnet restore "API/API.csproj"
COPY . .
WORKDIR "/src/API"
RUN dotnet build "API.csproj" -c $BUILD_CONFIGURATION -o /app/build
FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "API.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "API.dll"]

@ -0,0 +1,21 @@
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddControllers();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.MapControllers();
app.UseHttpsRedirection();
app.Run();

@ -0,0 +1,41 @@
{
"$schema": "http://json.schemastore.org/launchsettings.json",
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:2445",
"sslPort": 44370
}
},
"profiles": {
"http": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"launchUrl": "swagger",
"applicationUrl": "http://localhost:5254",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"https": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"launchUrl": "swagger",
"applicationUrl": "https://localhost:7179;http://localhost:5254",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "swagger",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}

@ -0,0 +1,8 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}

@ -0,0 +1,9 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}

@ -0,0 +1,20 @@
using AppContext.Entities;
using Microsoft.EntityFrameworkCore;
namespace AppContext;
public class AppContext(DbContextOptions<AppContext> options) : DbContext(options)
{
public DbSet<UserEntity> Users { get; }
public DbSet<TacticEntity> Tactics { get; }
public DbSet<TeamEntity> Teams { get; }
public DbSet<MemberEntity> Members { get; }
public AppContext() : this(
new DbContextOptionsBuilder<AppContext>()
.UseSqlite("Data Source=database.db")
.Options
)
{
}
}

@ -0,0 +1,28 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>AppContext</RootNamespace>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.0" />
<PackageReference Include="SQLite" Version="3.13.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Model\Model.csproj" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Model\Model.csproj" />
</ItemGroup>
</Project>

@ -0,0 +1,12 @@
namespace AppContext.Entities;
public class MemberEntity
{
public int TeamId { get; set; }
public TeamEntity? Team { get; set; }
public required int UserId { get; set; }
public UserEntity? User { get; set; }
public required string Role { get; set; }
}

@ -0,0 +1,16 @@
using Model;
namespace AppContext.Entities;
public class TacticEntity
{
public int Id { get; init; }
public required string Name { get; set; }
public required DateTime CreationDate { get; set; }
public required int OwnerId { get; set; }
public UserEntity? Owner { get; set; }
public CourtType Type { get; set; }
public required string JsonContent { get; set; }
}

@ -0,0 +1,12 @@
namespace AppContext.Entities;
public class TeamEntity
{
public int Id { get; set; }
public required string Name { get; init; }
public required string Picture { get; set; }
public required string MainColor { get; set; }
public required string SecondColor { get; set; }
public ICollection<MemberEntity> Members { get; set; } = new List<MemberEntity>();
}

@ -0,0 +1,15 @@
using System.ComponentModel.DataAnnotations;
namespace AppContext.Entities;
public class UserEntity
{
[Key]
public int Id { get; set; }
public required string Name { get; set; }
public required string Email { get; set; }
public required string ProfilePicture { get; set; }
public ICollection<TacticEntity> Tactics { get; set; } = new List<TacticEntity>();
}

@ -0,0 +1,5 @@
namespace DTO;
public class Class1
{
}

@ -0,0 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>

@ -0,0 +1,7 @@
namespace Model;
public enum CourtType
{
Plain,
Half
}

@ -0,0 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>

@ -0,0 +1,201 @@
// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using StubContext;
#nullable disable
namespace StubContext.Migrations
{
[DbContext(typeof(StubAppContext))]
[Migration("20240212084944_m1")]
partial class m1
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder.HasAnnotation("ProductVersion", "8.0.0");
modelBuilder.Entity("AppContext.Entities.MemberEntity", b =>
{
b.Property<int>("TeamId")
.HasColumnType("INTEGER");
b.Property<int>("UserId")
.HasColumnType("INTEGER");
b.Property<string>("Role")
.IsRequired()
.HasColumnType("TEXT");
b.HasKey("TeamId", "UserId");
b.HasIndex("UserId");
b.ToTable("Members");
});
modelBuilder.Entity("AppContext.Entities.TacticEntity", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<DateTime>("CreationDate")
.HasColumnType("TEXT");
b.Property<string>("JsonContent")
.IsRequired()
.HasColumnType("TEXT");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("TEXT");
b.Property<int>("OwnerId")
.HasColumnType("INTEGER");
b.Property<int>("Type")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("OwnerId");
b.ToTable("Tactics");
});
modelBuilder.Entity("AppContext.Entities.TeamEntity", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<string>("MainColor")
.IsRequired()
.HasColumnType("TEXT");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("TEXT");
b.Property<string>("Picture")
.IsRequired()
.HasColumnType("TEXT");
b.Property<string>("SecondColor")
.IsRequired()
.HasColumnType("TEXT");
b.HasKey("Id");
b.ToTable("Teams");
});
modelBuilder.Entity("AppContext.Entities.UserEntity", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<string>("Email")
.IsRequired()
.HasColumnType("TEXT");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("TEXT");
b.Property<string>("ProfilePicture")
.IsRequired()
.HasColumnType("TEXT");
b.HasKey("Id");
b.ToTable("Users");
b.HasData(
new
{
Id = 1,
Email = "maxime@mail.com",
Name = "maxime",
ProfilePicture = "https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_960_720.png"
},
new
{
Id = 2,
Email = "mael@mail.com",
Name = "mael",
ProfilePicture = "https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_960_720.png"
},
new
{
Id = 3,
Email = "yanis@mail.com",
Name = "yanis",
ProfilePicture = "https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_960_720.png"
},
new
{
Id = 4,
Email = "simon@mail.com",
Name = "simon",
ProfilePicture = "https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_960_720.png"
},
new
{
Id = 5,
Email = "vivien@mail.com",
Name = "vivien",
ProfilePicture = "https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_960_720.png"
});
});
modelBuilder.Entity("AppContext.Entities.MemberEntity", b =>
{
b.HasOne("AppContext.Entities.TeamEntity", "Team")
.WithMany("Members")
.HasForeignKey("TeamId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("AppContext.Entities.UserEntity", "User")
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Team");
b.Navigation("User");
});
modelBuilder.Entity("AppContext.Entities.TacticEntity", b =>
{
b.HasOne("AppContext.Entities.UserEntity", "Owner")
.WithMany("Tactics")
.HasForeignKey("OwnerId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Owner");
});
modelBuilder.Entity("AppContext.Entities.TeamEntity", b =>
{
b.Navigation("Members");
});
modelBuilder.Entity("AppContext.Entities.UserEntity", b =>
{
b.Navigation("Tactics");
});
#pragma warning restore 612, 618
}
}
}

@ -0,0 +1,134 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
#pragma warning disable CA1814 // Prefer jagged arrays over multidimensional
namespace StubContext.Migrations
{
/// <inheritdoc />
public partial class m1 : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "Teams",
columns: table => new
{
Id = table.Column<int>(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
Name = table.Column<string>(type: "TEXT", nullable: false),
Picture = table.Column<string>(type: "TEXT", nullable: false),
MainColor = table.Column<string>(type: "TEXT", nullable: false),
SecondColor = table.Column<string>(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Teams", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Users",
columns: table => new
{
Id = table.Column<int>(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
Name = table.Column<string>(type: "TEXT", nullable: false),
Email = table.Column<string>(type: "TEXT", nullable: false),
ProfilePicture = table.Column<string>(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Users", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Members",
columns: table => new
{
TeamId = table.Column<int>(type: "INTEGER", nullable: false),
UserId = table.Column<int>(type: "INTEGER", nullable: false),
Role = table.Column<string>(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Members", x => new { x.TeamId, x.UserId });
table.ForeignKey(
name: "FK_Members_Teams_TeamId",
column: x => x.TeamId,
principalTable: "Teams",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_Members_Users_UserId",
column: x => x.UserId,
principalTable: "Users",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Tactics",
columns: table => new
{
Id = table.Column<int>(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
Name = table.Column<string>(type: "TEXT", nullable: false),
CreationDate = table.Column<DateTime>(type: "TEXT", nullable: false),
OwnerId = table.Column<int>(type: "INTEGER", nullable: false),
Type = table.Column<int>(type: "INTEGER", nullable: false),
JsonContent = table.Column<string>(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Tactics", x => x.Id);
table.ForeignKey(
name: "FK_Tactics_Users_OwnerId",
column: x => x.OwnerId,
principalTable: "Users",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.InsertData(
table: "Users",
columns: new[] { "Id", "Email", "Name", "ProfilePicture" },
values: new object[,]
{
{ 1, "maxime@mail.com", "maxime", "https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_960_720.png" },
{ 2, "mael@mail.com", "mael", "https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_960_720.png" },
{ 3, "yanis@mail.com", "yanis", "https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_960_720.png" },
{ 4, "simon@mail.com", "simon", "https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_960_720.png" },
{ 5, "vivien@mail.com", "vivien", "https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_960_720.png" }
});
migrationBuilder.CreateIndex(
name: "IX_Members_UserId",
table: "Members",
column: "UserId");
migrationBuilder.CreateIndex(
name: "IX_Tactics_OwnerId",
table: "Tactics",
column: "OwnerId");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Members");
migrationBuilder.DropTable(
name: "Tactics");
migrationBuilder.DropTable(
name: "Teams");
migrationBuilder.DropTable(
name: "Users");
}
}
}

@ -0,0 +1,198 @@
// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using StubContext;
#nullable disable
namespace StubContext.Migrations
{
[DbContext(typeof(StubAppContext))]
partial class StubAppContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder.HasAnnotation("ProductVersion", "8.0.0");
modelBuilder.Entity("AppContext.Entities.MemberEntity", b =>
{
b.Property<int>("TeamId")
.HasColumnType("INTEGER");
b.Property<int>("UserId")
.HasColumnType("INTEGER");
b.Property<string>("Role")
.IsRequired()
.HasColumnType("TEXT");
b.HasKey("TeamId", "UserId");
b.HasIndex("UserId");
b.ToTable("Members");
});
modelBuilder.Entity("AppContext.Entities.TacticEntity", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<DateTime>("CreationDate")
.HasColumnType("TEXT");
b.Property<string>("JsonContent")
.IsRequired()
.HasColumnType("TEXT");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("TEXT");
b.Property<int>("OwnerId")
.HasColumnType("INTEGER");
b.Property<int>("Type")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("OwnerId");
b.ToTable("Tactics");
});
modelBuilder.Entity("AppContext.Entities.TeamEntity", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<string>("MainColor")
.IsRequired()
.HasColumnType("TEXT");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("TEXT");
b.Property<string>("Picture")
.IsRequired()
.HasColumnType("TEXT");
b.Property<string>("SecondColor")
.IsRequired()
.HasColumnType("TEXT");
b.HasKey("Id");
b.ToTable("Teams");
});
modelBuilder.Entity("AppContext.Entities.UserEntity", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<string>("Email")
.IsRequired()
.HasColumnType("TEXT");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("TEXT");
b.Property<string>("ProfilePicture")
.IsRequired()
.HasColumnType("TEXT");
b.HasKey("Id");
b.ToTable("Users");
b.HasData(
new
{
Id = 1,
Email = "maxime@mail.com",
Name = "maxime",
ProfilePicture = "https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_960_720.png"
},
new
{
Id = 2,
Email = "mael@mail.com",
Name = "mael",
ProfilePicture = "https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_960_720.png"
},
new
{
Id = 3,
Email = "yanis@mail.com",
Name = "yanis",
ProfilePicture = "https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_960_720.png"
},
new
{
Id = 4,
Email = "simon@mail.com",
Name = "simon",
ProfilePicture = "https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_960_720.png"
},
new
{
Id = 5,
Email = "vivien@mail.com",
Name = "vivien",
ProfilePicture = "https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_960_720.png"
});
});
modelBuilder.Entity("AppContext.Entities.MemberEntity", b =>
{
b.HasOne("AppContext.Entities.TeamEntity", "Team")
.WithMany("Members")
.HasForeignKey("TeamId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("AppContext.Entities.UserEntity", "User")
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Team");
b.Navigation("User");
});
modelBuilder.Entity("AppContext.Entities.TacticEntity", b =>
{
b.HasOne("AppContext.Entities.UserEntity", "Owner")
.WithMany("Tactics")
.HasForeignKey("OwnerId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Owner");
});
modelBuilder.Entity("AppContext.Entities.TeamEntity", b =>
{
b.Navigation("Members");
});
modelBuilder.Entity("AppContext.Entities.UserEntity", b =>
{
b.Navigation("Tactics");
});
#pragma warning restore 612, 618
}
}
}

@ -0,0 +1,38 @@
using AppContext.Entities;
using Microsoft.EntityFrameworkCore;
namespace StubContext;
using AppContext;
public class StubAppContext(DbContextOptions<AppContext> options) : AppContext(options)
{
public StubAppContext() : this(
new DbContextOptionsBuilder<AppContext>()
.UseSqlite("Data Source=database.db")
.Options
)
{
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
var users = new[] { "maxime", "mael", "yanis", "simon", "vivien" }.ToList();
var i = 0;
builder.Entity<UserEntity>()
.HasData(users.ConvertAll(name => new UserEntity
{
Id = ++i,
Email = $"{name}@mail.com",
Name = name,
ProfilePicture =
"https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_960_720.png",
}));
builder.Entity<MemberEntity>()
.HasKey("TeamId", "UserId");
}
}

@ -0,0 +1,21 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\AppContext\AppContext.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.0" />
</ItemGroup>
</Project>

@ -1,8 +1,40 @@

Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Model", "Model\Model.csproj", "{34C64518-7A90-4089-BEAD-F84EDB748AC6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AppContext", "AppContext\AppContext.csproj", "{7E245DA5-0C5A-4933-9AF0-CA447F3BC159}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTO", "DTO\DTO.csproj", "{7BE8B235-EF70-4C94-8938-5ABB5AEB08B1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StubContext", "StubContext\StubContext.csproj", "{420D507C-D51C-48D9-A819-72B08AEBD024}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "API", "API\API.csproj", "{B22FA426-EFF2-42E9-96BB-78F1C65E37CC}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{34C64518-7A90-4089-BEAD-F84EDB748AC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{34C64518-7A90-4089-BEAD-F84EDB748AC6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{34C64518-7A90-4089-BEAD-F84EDB748AC6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{34C64518-7A90-4089-BEAD-F84EDB748AC6}.Release|Any CPU.Build.0 = Release|Any CPU
{7E245DA5-0C5A-4933-9AF0-CA447F3BC159}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7E245DA5-0C5A-4933-9AF0-CA447F3BC159}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7E245DA5-0C5A-4933-9AF0-CA447F3BC159}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7E245DA5-0C5A-4933-9AF0-CA447F3BC159}.Release|Any CPU.Build.0 = Release|Any CPU
{7BE8B235-EF70-4C94-8938-5ABB5AEB08B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7BE8B235-EF70-4C94-8938-5ABB5AEB08B1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7BE8B235-EF70-4C94-8938-5ABB5AEB08B1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7BE8B235-EF70-4C94-8938-5ABB5AEB08B1}.Release|Any CPU.Build.0 = Release|Any CPU
{420D507C-D51C-48D9-A819-72B08AEBD024}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{420D507C-D51C-48D9-A819-72B08AEBD024}.Debug|Any CPU.Build.0 = Debug|Any CPU
{420D507C-D51C-48D9-A819-72B08AEBD024}.Release|Any CPU.ActiveCfg = Release|Any CPU
{420D507C-D51C-48D9-A819-72B08AEBD024}.Release|Any CPU.Build.0 = Release|Any CPU
{B22FA426-EFF2-42E9-96BB-78F1C65E37CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B22FA426-EFF2-42E9-96BB-78F1C65E37CC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B22FA426-EFF2-42E9-96BB-78F1C65E37CC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B22FA426-EFF2-42E9-96BB-78F1C65E37CC}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal

Loading…
Cancel
Save