Добавьте файлы проекта.

This commit is contained in:
Modern 14 2024-11-20 16:09:09 +03:00
parent 8261a3c625
commit 15464d501f
13 changed files with 888 additions and 0 deletions

View File

@ -0,0 +1,56 @@
using data.DAO;
using Microsoft.EntityFrameworkCore;
namespace data.Context
{
public class ApplicationDbContext : DbContext
{
public DbSet<Student> Students { get; set; }
public DbSet<Group> Groups { get; set; }
public DbSet<Subject> Subjects { get; set; }
public DbSet<Semester> Semesters { get; set; }
public DbSet<Lesson> Lessons { get; set; }
public DbSet<Attendance> Attendances { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Student>()
.HasOne(s => s.Group)
.WithMany(g => g.Students)
.HasForeignKey(s => s.GroupId);
modelBuilder.Entity<Lesson>()
.HasOne(l => l.Subject)
.WithMany(s => s.Lessons)
.HasForeignKey(l => l.SubjectId);
modelBuilder.Entity<Lesson>()
.HasOne(l => l.Semester)
.WithMany(s => s.Lessons)
.HasForeignKey(l => l.SemesterId);
modelBuilder.Entity<Lesson>()
.HasOne(l => l.Group)
.WithMany(g => g.Lessons)
.HasForeignKey(l => l.GroupId);
modelBuilder.Entity<Attendance>()
.HasOne(a => a.Student)
.WithMany(s => s.Attendances)
.HasForeignKey(a => a.StudentId);
modelBuilder.Entity<Attendance>()
.HasOne(a => a.Lesson)
.WithMany(l => l.Attendances)
.HasForeignKey(a => a.LessonId);
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseNpgsql("Host=45.67.56.214;Database=user17;Username=user17;Password=3JSONQyy;Port=5454");
}
}
}

18
data/DAO/Attendance.cs Normal file
View File

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace data.DAO
{
public class Attendance
{
public int Id { get; set; }
public int StudentId { get; set; }
public Student Student { get; set; }
public int LessonId { get; set; }
public Lesson Lesson { get; set; }
public string Status { get; set; }
}
}

16
data/DAO/Group.cs Normal file
View File

@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace data.DAO
{
public class Group
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<Student> Students { get; set; }
public ICollection<Lesson> Lessons { get; set; }
}
}

22
data/DAO/Lesson.cs Normal file
View File

@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace data.DAO
{
public class Lesson
{
public int Id { get; set; }
public int SubjectId { get; set; }
public Subject Subject { get; set; }
public int SemesterId { get; set; }
public Semester Semester { get; set; }
public int GroupId { get; set; }
public Group Group { get; set; }
public DateTime Date { get; set; }
public int LessonNumber { get; set; }
public ICollection<Attendance> Attendances { get; set; }
}
}

15
data/DAO/Semester.cs Normal file
View File

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace data.DAO
{
public class Semester
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<Lesson> Lessons { get; set; }
}
}

18
data/DAO/Student.cs Normal file
View File

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
namespace data.DAO
{
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public int GroupId { get; set; }
public Group Group { get; set; }
public ICollection<Attendance> Attendances { get; set; }
}
}

15
data/DAO/Subject.cs Normal file
View File

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace data.DAO
{
public class Subject
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<Lesson> Lessons { get; set; }
}
}

View File

@ -0,0 +1,248 @@
// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
using data.Context;
#nullable disable
namespace data.Migrations
{
[DbContext(typeof(ApplicationDbContext))]
[Migration("20241120125823_InitialCreate")]
partial class InitialCreate
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "8.0.10")
.HasAnnotation("Relational:MaxIdentifierLength", 63);
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
modelBuilder.Entity("data.DAO.Attendance", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<int>("LessonId")
.HasColumnType("integer");
b.Property<string>("Status")
.IsRequired()
.HasColumnType("text");
b.Property<int>("StudentId")
.HasColumnType("integer");
b.HasKey("Id");
b.HasIndex("LessonId");
b.HasIndex("StudentId");
b.ToTable("Attendances");
});
modelBuilder.Entity("data.DAO.Group", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<string>("Name")
.IsRequired()
.HasColumnType("text");
b.HasKey("Id");
b.ToTable("Groups");
});
modelBuilder.Entity("data.DAO.Lesson", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<DateTime>("Date")
.HasColumnType("timestamp with time zone");
b.Property<int>("GroupId")
.HasColumnType("integer");
b.Property<int>("LessonNumber")
.HasColumnType("integer");
b.Property<int>("SemesterId")
.HasColumnType("integer");
b.Property<int>("SubjectId")
.HasColumnType("integer");
b.HasKey("Id");
b.HasIndex("GroupId");
b.HasIndex("SemesterId");
b.HasIndex("SubjectId");
b.ToTable("Lessons");
});
modelBuilder.Entity("data.DAO.Semester", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<string>("Name")
.IsRequired()
.HasColumnType("text");
b.HasKey("Id");
b.ToTable("Semesters");
});
modelBuilder.Entity("data.DAO.Student", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<int>("GroupId")
.HasColumnType("integer");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("text");
b.HasKey("Id");
b.HasIndex("GroupId");
b.ToTable("Students");
});
modelBuilder.Entity("data.DAO.Subject", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<string>("Name")
.IsRequired()
.HasColumnType("text");
b.HasKey("Id");
b.ToTable("Subjects");
});
modelBuilder.Entity("data.DAO.Attendance", b =>
{
b.HasOne("data.DAO.Lesson", "Lesson")
.WithMany("Attendances")
.HasForeignKey("LessonId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("data.DAO.Student", "Student")
.WithMany("Attendances")
.HasForeignKey("StudentId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Lesson");
b.Navigation("Student");
});
modelBuilder.Entity("data.DAO.Lesson", b =>
{
b.HasOne("data.DAO.Group", "Group")
.WithMany("Lessons")
.HasForeignKey("GroupId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("data.DAO.Semester", "Semester")
.WithMany("Lessons")
.HasForeignKey("SemesterId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("data.DAO.Subject", "Subject")
.WithMany("Lessons")
.HasForeignKey("SubjectId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Group");
b.Navigation("Semester");
b.Navigation("Subject");
});
modelBuilder.Entity("data.DAO.Student", b =>
{
b.HasOne("data.DAO.Group", "Group")
.WithMany("Students")
.HasForeignKey("GroupId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Group");
});
modelBuilder.Entity("data.DAO.Group", b =>
{
b.Navigation("Lessons");
b.Navigation("Students");
});
modelBuilder.Entity("data.DAO.Lesson", b =>
{
b.Navigation("Attendances");
});
modelBuilder.Entity("data.DAO.Semester", b =>
{
b.Navigation("Lessons");
});
modelBuilder.Entity("data.DAO.Student", b =>
{
b.Navigation("Attendances");
});
modelBuilder.Entity("data.DAO.Subject", b =>
{
b.Navigation("Lessons");
});
#pragma warning restore 612, 618
}
}
}

View File

@ -0,0 +1,189 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
#nullable disable
namespace data.Migrations
{
/// <inheritdoc />
public partial class InitialCreate : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "Groups",
columns: table => new
{
Id = table.Column<int>(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
Name = table.Column<string>(type: "text", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Groups", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Semesters",
columns: table => new
{
Id = table.Column<int>(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
Name = table.Column<string>(type: "text", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Semesters", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Subjects",
columns: table => new
{
Id = table.Column<int>(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
Name = table.Column<string>(type: "text", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Subjects", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Students",
columns: table => new
{
Id = table.Column<int>(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
Name = table.Column<string>(type: "text", nullable: false),
GroupId = table.Column<int>(type: "integer", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Students", x => x.Id);
table.ForeignKey(
name: "FK_Students_Groups_GroupId",
column: x => x.GroupId,
principalTable: "Groups",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Lessons",
columns: table => new
{
Id = table.Column<int>(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
SubjectId = table.Column<int>(type: "integer", nullable: false),
SemesterId = table.Column<int>(type: "integer", nullable: false),
GroupId = table.Column<int>(type: "integer", nullable: false),
Date = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
LessonNumber = table.Column<int>(type: "integer", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Lessons", x => x.Id);
table.ForeignKey(
name: "FK_Lessons_Groups_GroupId",
column: x => x.GroupId,
principalTable: "Groups",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_Lessons_Semesters_SemesterId",
column: x => x.SemesterId,
principalTable: "Semesters",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_Lessons_Subjects_SubjectId",
column: x => x.SubjectId,
principalTable: "Subjects",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Attendances",
columns: table => new
{
Id = table.Column<int>(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
StudentId = table.Column<int>(type: "integer", nullable: false),
LessonId = table.Column<int>(type: "integer", nullable: false),
Status = table.Column<string>(type: "text", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Attendances", x => x.Id);
table.ForeignKey(
name: "FK_Attendances_Lessons_LessonId",
column: x => x.LessonId,
principalTable: "Lessons",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_Attendances_Students_StudentId",
column: x => x.StudentId,
principalTable: "Students",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_Attendances_LessonId",
table: "Attendances",
column: "LessonId");
migrationBuilder.CreateIndex(
name: "IX_Attendances_StudentId",
table: "Attendances",
column: "StudentId");
migrationBuilder.CreateIndex(
name: "IX_Lessons_GroupId",
table: "Lessons",
column: "GroupId");
migrationBuilder.CreateIndex(
name: "IX_Lessons_SemesterId",
table: "Lessons",
column: "SemesterId");
migrationBuilder.CreateIndex(
name: "IX_Lessons_SubjectId",
table: "Lessons",
column: "SubjectId");
migrationBuilder.CreateIndex(
name: "IX_Students_GroupId",
table: "Students",
column: "GroupId");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Attendances");
migrationBuilder.DropTable(
name: "Lessons");
migrationBuilder.DropTable(
name: "Students");
migrationBuilder.DropTable(
name: "Semesters");
migrationBuilder.DropTable(
name: "Subjects");
migrationBuilder.DropTable(
name: "Groups");
}
}
}

View File

@ -0,0 +1,245 @@
// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
using data.Context;
#nullable disable
namespace data.Migrations
{
[DbContext(typeof(ApplicationDbContext))]
partial class ApplicationDbContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "8.0.10")
.HasAnnotation("Relational:MaxIdentifierLength", 63);
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
modelBuilder.Entity("data.DAO.Attendance", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<int>("LessonId")
.HasColumnType("integer");
b.Property<string>("Status")
.IsRequired()
.HasColumnType("text");
b.Property<int>("StudentId")
.HasColumnType("integer");
b.HasKey("Id");
b.HasIndex("LessonId");
b.HasIndex("StudentId");
b.ToTable("Attendances");
});
modelBuilder.Entity("data.DAO.Group", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<string>("Name")
.IsRequired()
.HasColumnType("text");
b.HasKey("Id");
b.ToTable("Groups");
});
modelBuilder.Entity("data.DAO.Lesson", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<DateTime>("Date")
.HasColumnType("timestamp with time zone");
b.Property<int>("GroupId")
.HasColumnType("integer");
b.Property<int>("LessonNumber")
.HasColumnType("integer");
b.Property<int>("SemesterId")
.HasColumnType("integer");
b.Property<int>("SubjectId")
.HasColumnType("integer");
b.HasKey("Id");
b.HasIndex("GroupId");
b.HasIndex("SemesterId");
b.HasIndex("SubjectId");
b.ToTable("Lessons");
});
modelBuilder.Entity("data.DAO.Semester", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<string>("Name")
.IsRequired()
.HasColumnType("text");
b.HasKey("Id");
b.ToTable("Semesters");
});
modelBuilder.Entity("data.DAO.Student", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<int>("GroupId")
.HasColumnType("integer");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("text");
b.HasKey("Id");
b.HasIndex("GroupId");
b.ToTable("Students");
});
modelBuilder.Entity("data.DAO.Subject", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<string>("Name")
.IsRequired()
.HasColumnType("text");
b.HasKey("Id");
b.ToTable("Subjects");
});
modelBuilder.Entity("data.DAO.Attendance", b =>
{
b.HasOne("data.DAO.Lesson", "Lesson")
.WithMany("Attendances")
.HasForeignKey("LessonId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("data.DAO.Student", "Student")
.WithMany("Attendances")
.HasForeignKey("StudentId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Lesson");
b.Navigation("Student");
});
modelBuilder.Entity("data.DAO.Lesson", b =>
{
b.HasOne("data.DAO.Group", "Group")
.WithMany("Lessons")
.HasForeignKey("GroupId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("data.DAO.Semester", "Semester")
.WithMany("Lessons")
.HasForeignKey("SemesterId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("data.DAO.Subject", "Subject")
.WithMany("Lessons")
.HasForeignKey("SubjectId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Group");
b.Navigation("Semester");
b.Navigation("Subject");
});
modelBuilder.Entity("data.DAO.Student", b =>
{
b.HasOne("data.DAO.Group", "Group")
.WithMany("Students")
.HasForeignKey("GroupId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Group");
});
modelBuilder.Entity("data.DAO.Group", b =>
{
b.Navigation("Lessons");
b.Navigation("Students");
});
modelBuilder.Entity("data.DAO.Lesson", b =>
{
b.Navigation("Attendances");
});
modelBuilder.Entity("data.DAO.Semester", b =>
{
b.Navigation("Lessons");
});
modelBuilder.Entity("data.DAO.Student", b =>
{
b.Navigation("Attendances");
});
modelBuilder.Entity("data.DAO.Subject", b =>
{
b.Navigation("Lessons");
});
#pragma warning restore 612, 618
}
}
}

22
data/data.csproj Normal file
View File

@ -0,0 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.10" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.10">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.10">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="8.0.10" />
</ItemGroup>
</Project>

2
desktop.ini Normal file
View File

@ -0,0 +1,2 @@
[LocalizedFileNames]
presence.sln=@presence.sln,0

22
presence.sln Normal file
View File

@ -0,0 +1,22 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "data", "data\data.csproj", "{74567B9C-DFD3-4878-9DF8-41F8556F2D91}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{74567B9C-DFD3-4878-9DF8-41F8556F2D91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{74567B9C-DFD3-4878-9DF8-41F8556F2D91}.Debug|Any CPU.Build.0 = Debug|Any CPU
{74567B9C-DFD3-4878-9DF8-41F8556F2D91}.Release|Any CPU.ActiveCfg = Release|Any CPU
{74567B9C-DFD3-4878-9DF8-41F8556F2D91}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal