Files
SkydiveLogs/Back/skydiveLogs-api.Business/InitDbService.cs
2021-03-01 20:33:00 +01:00

84 lines
2.5 KiB
C#

using System.Collections.Generic;
using System.IO;
using System.Text.Json;
using skydiveLogs_api.Business.Interfaces;
using skydiveLogs_api.Domain;
namespace skydiveLogs_api.Business
{
public class InitDbService : IInitDbService
{
public InitDbService(IAircraftService aircraftService,
IJumpTypeService jumpTypeService,
IDropZoneService dropZoneService)
{
_aircraftService = aircraftService;
_jumpTypeService = jumpTypeService;
_dropZoneService = dropZoneService;
}
public void GenerateDb()
{
LoadAircrafts();
LoadDropZones();
LoadJumpTypes();
}
private void LoadDropZones()
{
var jsonString = File.ReadAllText("Init/dropZone.json");
var options = new JsonSerializerOptions
{
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
WriteIndented = true
};
var jsonModel = JsonSerializer.Deserialize<List<DropZone>>(jsonString, options);
foreach (var item in jsonModel)
{
_dropZoneService.AddNewDz(item);
}
}
private void LoadJumpTypes()
{
var jsonString = File.ReadAllText("Init/jumpType.json");
var options = new JsonSerializerOptions
{
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
WriteIndented = true
};
var jsonModel = JsonSerializer.Deserialize<List<JumpType>>(jsonString, options);
foreach (var item in jsonModel)
{
_jumpTypeService.AddNewJumpType(item);
}
}
private void LoadAircrafts()
{
var jsonString = File.ReadAllText("Init/aircraft.json");
var options = new JsonSerializerOptions
{
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
WriteIndented = true
};
var jsonModel = JsonSerializer.Deserialize<List<Aircraft>>(jsonString, options);
foreach (var item in jsonModel)
{
_aircraftService.AddNewAircraft(item);
}
}
private readonly IAircraftService _aircraftService;
private readonly IJumpTypeService _jumpTypeService;
private readonly IDropZoneService _dropZoneService;
}
}