Skip to content

Commit 607b292

Browse files
committed
EXAM PREP 05-JANUARY-2018
1 parent d133d32 commit 607b292

39 files changed

+2200
-0
lines changed
Binary file not shown.
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio 15
4+
VisualStudioVersion = 15.0.27130.2010
5+
MinimumVisualStudioVersion = 10.0.40219.1
6+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PetClinic", "PetClinic\PetClinic.csproj", "{71D8C54E-627D-44BF-B6EC-E193775F3AD3}"
7+
EndProject
8+
Global
9+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
10+
Debug|Any CPU = Debug|Any CPU
11+
Release|Any CPU = Release|Any CPU
12+
EndGlobalSection
13+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
14+
{71D8C54E-627D-44BF-B6EC-E193775F3AD3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15+
{71D8C54E-627D-44BF-B6EC-E193775F3AD3}.Debug|Any CPU.Build.0 = Debug|Any CPU
16+
{71D8C54E-627D-44BF-B6EC-E193775F3AD3}.Release|Any CPU.ActiveCfg = Release|Any CPU
17+
{71D8C54E-627D-44BF-B6EC-E193775F3AD3}.Release|Any CPU.Build.0 = Release|Any CPU
18+
EndGlobalSection
19+
GlobalSection(SolutionProperties) = preSolution
20+
HideSolutionNode = FALSE
21+
EndGlobalSection
22+
GlobalSection(ExtensibilityGlobals) = postSolution
23+
SolutionGuid = {69692160-5FF9-478A-9CC8-7B608EB7323D}
24+
EndGlobalSection
25+
EndGlobal
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
namespace PetClinic.App
2+
{
3+
using AutoMapper;
4+
using PetClinic.Models;
5+
6+
public class PetClinicProfile : Profile
7+
{
8+
public PetClinicProfile()
9+
{
10+
/*
11+
*
12+
Някои тестове гърмят с Automappera в Judge!!!
13+
*
14+
*/
15+
16+
//CreateMap<Dto.ImportDtos.AnimalAidsDto, AnimalAid>();
17+
18+
//CreateMap<Dto.ImportDtos.AnimalDto, Animal>();
19+
20+
//CreateMap<Dto.ImportDtos.PassportDto, Passport>();
21+
22+
//CreateMap<Dto.ImportDtos.VetDto, Vet>();
23+
24+
// CreateMap<Dto.ImportDtos.ProcedureDto, Procedure>();
25+
}
26+
}
27+
}
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
namespace PetClinic.App
2+
{
3+
using System;
4+
using System.IO;
5+
6+
using AutoMapper;
7+
8+
using PetClinic.Data;
9+
10+
public class StartUp
11+
{
12+
static void Main()
13+
{
14+
using (var context = new PetClinicContext())
15+
{
16+
Mapper.Initialize(config => config.AddProfile<PetClinicProfile>());
17+
18+
ResetDatabase(context);
19+
20+
ImportEntities(context);
21+
22+
ExportEntities(context);
23+
24+
BonusTask(context);
25+
}
26+
}
27+
28+
private static void ImportEntities(PetClinicContext context, string baseDir = @"..\..\..\Datasets\")
29+
{
30+
const string exportDir = @"..\..\..\Results\";
31+
32+
string animalAids = DataProcessor.Deserializer.ImportAnimalAids(context, File.ReadAllText(baseDir + "animalAids.json"));
33+
PrintAndExportEntityToFile(animalAids, exportDir + "AnimalAidsImport.txt");
34+
35+
string animals = DataProcessor.Deserializer.ImportAnimals(context, File.ReadAllText(baseDir + "animals.json"));
36+
PrintAndExportEntityToFile(animals, exportDir + "AnimalsImport.txt");
37+
38+
string vets = DataProcessor.Deserializer.ImportVets(context, File.ReadAllText(baseDir + "vets.xml"));
39+
PrintAndExportEntityToFile(vets, exportDir + "VetsImport.txt");
40+
41+
var procedures = DataProcessor.Deserializer.ImportProcedures(context, File.ReadAllText(baseDir + "procedures.xml"));
42+
PrintAndExportEntityToFile(procedures, exportDir + "ProceduresImport.txt");
43+
}
44+
45+
private static void ExportEntities(PetClinicContext context)
46+
{
47+
const string exportDir = @"..\..\..\Results\";
48+
49+
string animalsExport = DataProcessor.Serializer.ExportAnimalsByOwnerPhoneNumber(context, "0887446123");
50+
PrintAndExportEntityToFile(animalsExport, exportDir + "AnimalsExport.json");
51+
52+
string proceduresExport = DataProcessor.Serializer.ExportAllProcedures(context);
53+
PrintAndExportEntityToFile(proceduresExport, exportDir + "ProceduresExport.xml");
54+
}
55+
56+
private static void BonusTask(PetClinicContext context)
57+
{
58+
var bonusOutput = DataProcessor.Bonus.UpdateVetProfession(context, "+359284566778", "Primary Care");
59+
Console.WriteLine(bonusOutput);
60+
}
61+
62+
private static void PrintAndExportEntityToFile(string entityOutput, string outputPath)
63+
{
64+
Console.WriteLine(entityOutput);
65+
File.WriteAllText(outputPath, entityOutput.TrimEnd());
66+
}
67+
68+
private static void ResetDatabase(PetClinicContext context)
69+
{
70+
context.Database.EnsureDeleted();
71+
context.Database.EnsureCreated();
72+
73+
Console.WriteLine("Database reset.");
74+
}
75+
}
76+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
namespace PetClinic.Data
2+
{
3+
public static class Configuration
4+
{
5+
public static string ConnectionString = @"Server=.;Database=PetClinic;Trusted_Connection=True";
6+
}
7+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
namespace PetClinic.Data.EntityConfigurations
2+
{
3+
using Microsoft.EntityFrameworkCore;
4+
using Microsoft.EntityFrameworkCore.Metadata.Builders;
5+
using PetClinic.Models;
6+
7+
public class AnimalAidConfig : IEntityTypeConfiguration<AnimalAid>
8+
{
9+
public void Configure(EntityTypeBuilder<AnimalAid> builder)
10+
{
11+
builder.HasAlternateKey(ai => ai.Name);
12+
}
13+
}
14+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
namespace PetClinic.Data.EntityConfigurations
2+
{
3+
using Microsoft.EntityFrameworkCore;
4+
using Microsoft.EntityFrameworkCore.Metadata.Builders;
5+
using PetClinic.Models;
6+
7+
public class AnimalConfig : IEntityTypeConfiguration<Animal>
8+
{
9+
public void Configure(EntityTypeBuilder<Animal> builder)
10+
{
11+
builder.HasOne(a => a.Passport)
12+
.WithOne(p => p.Animal)
13+
.HasForeignKey<Animal>(a => a.PassportSerialNumber);
14+
}
15+
}
16+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
namespace PetClinic.Data.EntityConfigurations
2+
{
3+
using Microsoft.EntityFrameworkCore;
4+
using Microsoft.EntityFrameworkCore.Metadata.Builders;
5+
using PetClinic.Models;
6+
7+
public class ProcedureAnimalAidConfig : IEntityTypeConfiguration<ProcedureAnimalAid>
8+
{
9+
public void Configure(EntityTypeBuilder<ProcedureAnimalAid> builder)
10+
{
11+
builder.HasKey(x => new { x.AnimalAidId, x.ProcedureId });
12+
13+
builder.HasOne(x => x.AnimalAid)
14+
.WithMany(ai => ai.AnimalAidProcedures)
15+
.HasForeignKey(x => x.AnimalAidId);
16+
17+
builder.HasOne(x => x.Procedure)
18+
.WithMany(p => p.ProcedureAnimalAids)
19+
.HasForeignKey(x => x.ProcedureId);
20+
}
21+
}
22+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
namespace PetClinic.Data.EntityConfigurations
2+
{
3+
using Microsoft.EntityFrameworkCore;
4+
using Microsoft.EntityFrameworkCore.Metadata.Builders;
5+
using PetClinic.Models;
6+
7+
public class ProcedureConfig : IEntityTypeConfiguration<Procedure>
8+
{
9+
public void Configure(EntityTypeBuilder<Procedure> builder)
10+
{
11+
builder.HasOne(p => p.Animal)
12+
.WithMany(a => a.Procedures)
13+
.HasForeignKey(p => p.AnimalId);
14+
15+
builder.HasOne(p => p.Vet)
16+
.WithMany(v => v.Procedures)
17+
.HasForeignKey(p => p.VetId);
18+
}
19+
}
20+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
namespace PetClinic.Data.EntityConfigurations
2+
{
3+
using Microsoft.EntityFrameworkCore;
4+
using Microsoft.EntityFrameworkCore.Metadata.Builders;
5+
using PetClinic.Models;
6+
7+
public class VetConfig : IEntityTypeConfiguration<Vet>
8+
{
9+
public void Configure(EntityTypeBuilder<Vet> builder)
10+
{
11+
builder.HasAlternateKey(v => v.PhoneNumber);
12+
}
13+
}
14+
}

0 commit comments

Comments
 (0)