Manage the update of some data at the

start of the database
This commit is contained in:
Sébastien ANDRE
2023-08-23 20:30:53 +02:00
parent bf05e1c668
commit 2b880231a1
15 changed files with 150 additions and 62 deletions

View File

@@ -13,18 +13,31 @@ namespace skydiveLogs_api.DomainBusiness
public InitDbService(IAircraftService aircraftService,
IJumpTypeService jumpTypeService,
IDropZoneService dropZoneService,
IUserService userService)
IUserService userService,
ICacheService cacheService)
{
_aircraftService = aircraftService;
_jumpTypeService = jumpTypeService;
_dropZoneService = dropZoneService;
_userService = userService;
_cacheService = cacheService;
}
#endregion Public Constructors
#region Public Methods
public void Update()
{
UpdateAircrafts();
UpdateDropZones();
UpdateJumpTypes();
_cacheService.Delete(CacheType.Aircraft);
_cacheService.Delete(CacheType.DropZone);
_cacheService.Delete(CacheType.JumpType);
}
public void GenerateDb()
{
LoadAircrafts();
@@ -50,6 +63,7 @@ namespace skydiveLogs_api.DomainBusiness
_userService.AddNewUser(adminUser, true);
}
#region Init tables and informations
private void LoadAircrafts()
{
var jsonString = File.ReadAllText("Init/aircraft.json");
@@ -97,16 +111,85 @@ namespace skydiveLogs_api.DomainBusiness
_jumpTypeService.AddNewJumpType(item);
}
}
#endregion
#region Update the existing data
private void UpdateAircrafts()
{
var file = "Update/aircraft.json";
if (File.Exists(file))
{
var jsonString = File.ReadAllText(file);
var options = new JsonSerializerOptions
{
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
WriteIndented = true
};
var jsonModel = JsonSerializer.Deserialize<List<Aircraft>>(jsonString, options);
foreach (var item in jsonModel)
{
_aircraftService.UpdateAircraft(item.Id, item, false);
}
File.Delete(file);
}
}
private void UpdateDropZones()
{
var file = "Update/dropZone.json";
if (File.Exists(file))
{
var jsonString = File.ReadAllText("Update/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.UpdateDz(item.Id, item, false);
}
File.Delete(file);
}
}
private void UpdateJumpTypes()
{
var file = "Update/jumpType.json";
if (File.Exists(file))
{
var jsonString = File.ReadAllText("Update/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.UpdateJumpType(item.Id, item, false);
}
File.Delete(file);
}
}
#endregion
#endregion Private Methods
#region Private Fields
private readonly IAircraftService _aircraftService;
private readonly IDropZoneService _dropZoneService;
private readonly IJumpTypeService _jumpTypeService;
private readonly IUserService _userService;
private readonly ICacheService _cacheService;
#endregion Private Fields
}