113 lines
3.3 KiB
C#
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
|
|
}
|
|
} |