Files
SkydiveLogs/Back/skydiveLogs-api.DomainBusiness/InitDbService.cs
2021-03-18 16:29:24 +01:00

102 lines
3.0 KiB
C#

using System.Collections.Generic;
using System.IO;
using System.Text.Json;
using skydiveLogs_api.DomainBusiness.Interfaces;
using skydiveLogs_api.Domain;
namespace skydiveLogs_api.DomainBusiness
{
public class InitDbService : IInitDbService
{
public InitDbService(IAircraftService aircraftService,
IJumpTypeService jumpTypeService,
IDropZoneService dropZoneService,
IUserService userService)
{
_aircraftService = aircraftService;
_jumpTypeService = jumpTypeService;
_dropZoneService = dropZoneService;
_userService = userService;
}
public void GenerateDb()
{
LoadAircrafts();
LoadDropZones();
LoadJumpTypes();
AddAdmin();
}
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 void AddAdmin()
{
var adminUser = new User
{
FirstName = "Admin",
LastName = "Admin",
Login = "administrator",
Password = "logsadmin",
Email = "admin@nomail.com"
};
_userService.AddNewUser(adminUser, true);
}
private readonly IAircraftService _aircraftService;
private readonly IJumpTypeService _jumpTypeService;
private readonly IDropZoneService _dropZoneService;
private readonly IUserService _userService;
}
}