Files
SkydiveLogs/Back/skydiveLogs-api.DomainBusiness/InitDbService.cs
Sébastien André 143127cd01 Add a cache system on the referential info
+ Add an identity service
2021-04-17 22:17:45 +02:00

113 lines
3.3 KiB
C#

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