Helper to diff video files Move matches from directory Bug fix for DirectoryToISO Find replace instead of remove Rename Directory Amazon Immich Person PersonKeyToName PullIconsForBLM New links
35 lines
1.5 KiB
C#
35 lines
1.5 KiB
C#
using File_Folder_Helper.Models;
|
|
using Microsoft.Extensions.Logging;
|
|
using System.Text.Json;
|
|
|
|
namespace File_Folder_Helper.Day;
|
|
|
|
internal static partial class Helper20240518
|
|
{
|
|
|
|
internal static void PersonKeyToImmichImport(ILogger<Worker> logger, List<string> args)
|
|
{
|
|
string name;
|
|
string birthDate;
|
|
string ownerId = args[5];
|
|
List<string> inserts = [];
|
|
string tableName = args[3];
|
|
string birthDateFormat = args[6];
|
|
string[] columns = args[4].Split(',');
|
|
string json = File.ReadAllText(args[2]);
|
|
string root = Path.GetFullPath(args[0]);
|
|
Dictionary<long, Person> people = JsonSerializer.Deserialize(json, PeopleSourceGenerationContext.Default.DictionaryInt64Person) ?? throw new NullReferenceException();
|
|
foreach (KeyValuePair<long, Person> keyValuePair in people)
|
|
{
|
|
if (keyValuePair.Value.Birth?.Note is null || keyValuePair.Value.Name?.ForwardSlashFull is null || keyValuePair.Value.Birth?.Date is null)
|
|
continue;
|
|
birthDate = keyValuePair.Value.Birth.Date.Value.ToString(birthDateFormat);
|
|
name = keyValuePair.Value.Name.ForwardSlashFull.Replace("/", string.Empty);
|
|
inserts.Add($"insert into \"{tableName}\" (\"{string.Join("\", \"", columns)}\") values ('{ownerId}', '{name}', '{birthDate}');");
|
|
}
|
|
string file = Path.Combine(root, $"{DateTime.Now.Ticks}.sql");
|
|
logger.LogInformation("<{file}> saved", file);
|
|
File.WriteAllLines(file, inserts);
|
|
}
|
|
|
|
} |