Files
mabibli/MaBibli.sln
T
mathieuandClaude Opus 5 f8f30dbcf7 Phase 2 : service de lookup ISBN en cascade BnF puis OpenLibrary
Recuperation des metadonnees d'un livre a partir de son ISBN, cote serveur
uniquement (aucune interface, aucune persistance).

Cascade : BnF en ISBN-13, puis BnF en ISBN-10 converti, puis OpenLibrary.
La conversion 13 -> 10 est indispensable et non optionnelle : la BnF indexe
l'ISBN tel qu'imprime, les ouvrages d'avant 2007 ne portent qu'un ISBN-10 et
sont introuvables par l'EAN-13 que lit le scanner.

Toutes les notices trouvees sont remontees (jusqu'a 5) : un meme ISBN peut
correspondre a plusieurs reeditions, le choix revient a l'utilisateur.

Le double appel /isbn puis /authors d'OpenLibrary est bien fait, avec repli
sur l'oeuvre quand l'edition ne porte aucun auteur : c'est le bug de BookLogr
(titre rempli, auteur vide) qu'il ne faut pas reproduire.

La couverture vient toujours d'OpenLibrary, avec ?default=false pour obtenir
un 404 plutot qu'une image placeholder.

87 tests xUnit, sur fixtures enregistrees : aucune dependance au reseau.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 22:22:47 +02:00

77 lines
4.9 KiB
Plaintext

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MaBibli.Client", "MaBibli.Client\MaBibli.Client.csproj", "{537B3DB1-EB96-4CA3-AA9F-B9E2D5274204}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MaBibli.Shared", "MaBibli.Shared\MaBibli.Shared.csproj", "{247E6A7D-D76E-4E72-A092-DAA51247216F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MaBibli.Api", "MaBibli.Api\MaBibli.Api.csproj", "{D9FA3052-4E2D-4281-B098-60EBD7406E22}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MaBibli.Tests", "MaBibli.Tests\MaBibli.Tests.csproj", "{50C12C79-8653-4249-AD39-0EC3D2D7BA32}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{537B3DB1-EB96-4CA3-AA9F-B9E2D5274204}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{537B3DB1-EB96-4CA3-AA9F-B9E2D5274204}.Debug|Any CPU.Build.0 = Debug|Any CPU
{537B3DB1-EB96-4CA3-AA9F-B9E2D5274204}.Debug|x64.ActiveCfg = Debug|Any CPU
{537B3DB1-EB96-4CA3-AA9F-B9E2D5274204}.Debug|x64.Build.0 = Debug|Any CPU
{537B3DB1-EB96-4CA3-AA9F-B9E2D5274204}.Debug|x86.ActiveCfg = Debug|Any CPU
{537B3DB1-EB96-4CA3-AA9F-B9E2D5274204}.Debug|x86.Build.0 = Debug|Any CPU
{537B3DB1-EB96-4CA3-AA9F-B9E2D5274204}.Release|Any CPU.ActiveCfg = Release|Any CPU
{537B3DB1-EB96-4CA3-AA9F-B9E2D5274204}.Release|Any CPU.Build.0 = Release|Any CPU
{537B3DB1-EB96-4CA3-AA9F-B9E2D5274204}.Release|x64.ActiveCfg = Release|Any CPU
{537B3DB1-EB96-4CA3-AA9F-B9E2D5274204}.Release|x64.Build.0 = Release|Any CPU
{537B3DB1-EB96-4CA3-AA9F-B9E2D5274204}.Release|x86.ActiveCfg = Release|Any CPU
{537B3DB1-EB96-4CA3-AA9F-B9E2D5274204}.Release|x86.Build.0 = Release|Any CPU
{247E6A7D-D76E-4E72-A092-DAA51247216F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{247E6A7D-D76E-4E72-A092-DAA51247216F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{247E6A7D-D76E-4E72-A092-DAA51247216F}.Debug|x64.ActiveCfg = Debug|Any CPU
{247E6A7D-D76E-4E72-A092-DAA51247216F}.Debug|x64.Build.0 = Debug|Any CPU
{247E6A7D-D76E-4E72-A092-DAA51247216F}.Debug|x86.ActiveCfg = Debug|Any CPU
{247E6A7D-D76E-4E72-A092-DAA51247216F}.Debug|x86.Build.0 = Debug|Any CPU
{247E6A7D-D76E-4E72-A092-DAA51247216F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{247E6A7D-D76E-4E72-A092-DAA51247216F}.Release|Any CPU.Build.0 = Release|Any CPU
{247E6A7D-D76E-4E72-A092-DAA51247216F}.Release|x64.ActiveCfg = Release|Any CPU
{247E6A7D-D76E-4E72-A092-DAA51247216F}.Release|x64.Build.0 = Release|Any CPU
{247E6A7D-D76E-4E72-A092-DAA51247216F}.Release|x86.ActiveCfg = Release|Any CPU
{247E6A7D-D76E-4E72-A092-DAA51247216F}.Release|x86.Build.0 = Release|Any CPU
{D9FA3052-4E2D-4281-B098-60EBD7406E22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D9FA3052-4E2D-4281-B098-60EBD7406E22}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D9FA3052-4E2D-4281-B098-60EBD7406E22}.Debug|x64.ActiveCfg = Debug|Any CPU
{D9FA3052-4E2D-4281-B098-60EBD7406E22}.Debug|x64.Build.0 = Debug|Any CPU
{D9FA3052-4E2D-4281-B098-60EBD7406E22}.Debug|x86.ActiveCfg = Debug|Any CPU
{D9FA3052-4E2D-4281-B098-60EBD7406E22}.Debug|x86.Build.0 = Debug|Any CPU
{D9FA3052-4E2D-4281-B098-60EBD7406E22}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D9FA3052-4E2D-4281-B098-60EBD7406E22}.Release|Any CPU.Build.0 = Release|Any CPU
{D9FA3052-4E2D-4281-B098-60EBD7406E22}.Release|x64.ActiveCfg = Release|Any CPU
{D9FA3052-4E2D-4281-B098-60EBD7406E22}.Release|x64.Build.0 = Release|Any CPU
{D9FA3052-4E2D-4281-B098-60EBD7406E22}.Release|x86.ActiveCfg = Release|Any CPU
{D9FA3052-4E2D-4281-B098-60EBD7406E22}.Release|x86.Build.0 = Release|Any CPU
{50C12C79-8653-4249-AD39-0EC3D2D7BA32}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{50C12C79-8653-4249-AD39-0EC3D2D7BA32}.Debug|Any CPU.Build.0 = Debug|Any CPU
{50C12C79-8653-4249-AD39-0EC3D2D7BA32}.Debug|x64.ActiveCfg = Debug|Any CPU
{50C12C79-8653-4249-AD39-0EC3D2D7BA32}.Debug|x64.Build.0 = Debug|Any CPU
{50C12C79-8653-4249-AD39-0EC3D2D7BA32}.Debug|x86.ActiveCfg = Debug|Any CPU
{50C12C79-8653-4249-AD39-0EC3D2D7BA32}.Debug|x86.Build.0 = Debug|Any CPU
{50C12C79-8653-4249-AD39-0EC3D2D7BA32}.Release|Any CPU.ActiveCfg = Release|Any CPU
{50C12C79-8653-4249-AD39-0EC3D2D7BA32}.Release|Any CPU.Build.0 = Release|Any CPU
{50C12C79-8653-4249-AD39-0EC3D2D7BA32}.Release|x64.ActiveCfg = Release|Any CPU
{50C12C79-8653-4249-AD39-0EC3D2D7BA32}.Release|x64.Build.0 = Release|Any CPU
{50C12C79-8653-4249-AD39-0EC3D2D7BA32}.Release|x86.ActiveCfg = Release|Any CPU
{50C12C79-8653-4249-AD39-0EC3D2D7BA32}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal