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>(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>(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>(jsonString, options); foreach (var item in jsonModel) { _aircraftService.AddNewAircraft(item); } } private void AddAdmin() { var adminUser = new User { Login = "administrator", Password = "logsadmin", Email = "no mail" }; _userService.AddNewUser(adminUser, true); } private readonly IAircraftService _aircraftService; private readonly IJumpTypeService _jumpTypeService; private readonly IDropZoneService _dropZoneService; private readonly IUserService _userService; } }