From c66626ff3a36ce78a9d6b3a4a87c7155e579f4dd Mon Sep 17 00:00:00 2001 From: Thoscellen Date: Sat, 16 May 2020 17:38:46 +0200 Subject: [PATCH] init --- ApplicationCrèche 1.sln | 58 ++ ApplicationCrèche 1.vsmdi | 6 + ApplicationCrèche 1/App.config | 9 + .../ApplicationCrèche 1.vbproj | 298 ++++++ ApplicationCrèche 1/ClassDiagram1.cd | 133 +++ ApplicationCrèche 1/DBString.ini | 1 + .../DataManager/ImaginaryModelGenerator.vb | 26 + ApplicationCrèche 1/DataManager/SQLManager.vb | 943 ++++++++++++++++++ .../Database/CrecheDataSet.Designer.vb | 242 +++++ .../Database/CrecheDataSet.xsc | 1 + .../Database/CrecheDataSet.xsd | 19 + .../Database/CrecheDataSet.xss | 1 + .../Forms/FormAddBS.Designer.vb | 218 ++++ ApplicationCrèche 1/Forms/FormAddBS.resx | 120 +++ ApplicationCrèche 1/Forms/FormAddBS.vb | 3 + .../Forms/FormBabySitterID.Designer.vb | 240 +++++ .../Forms/FormBabySitterID.resx | 132 +++ ApplicationCrèche 1/Forms/FormBabySitterID.vb | 242 +++++ .../Forms/FormChildID.Designer.vb | 350 +++++++ ApplicationCrèche 1/Forms/FormChildID.resx | 132 +++ ApplicationCrèche 1/Forms/FormChildID.vb | 517 ++++++++++ ApplicationCrèche 1/Forms/FormID.Designer.vb | 173 ++++ ApplicationCrèche 1/Forms/FormID.resx | 123 +++ ApplicationCrèche 1/Forms/FormID.vb | 26 + .../Forms/FormList.Designer.vb | 245 +++++ ApplicationCrèche 1/Forms/FormList.resx | 135 +++ ApplicationCrèche 1/Forms/FormList.vb | 320 ++++++ .../Forms/FormMain.Designer.vb | 338 +++++++ ApplicationCrèche 1/Forms/FormMain.en.resx | 123 +++ ApplicationCrèche 1/Forms/FormMain.fr-FR.resx | 136 +++ ApplicationCrèche 1/Forms/FormMain.resx | 132 +++ ApplicationCrèche 1/Forms/FormMain.vb | 221 ++++ .../Forms/FormParentID.Designer.vb | 164 +++ ApplicationCrèche 1/Forms/FormParentID.resx | 132 +++ ApplicationCrèche 1/Forms/FormParentID.vb | 240 +++++ ApplicationCrèche 1/Forms/ListEnums.vb | 20 + ApplicationCrèche 1/Forms/SharedRessources.vb | 27 + ApplicationCrèche 1/Model/BabySitter.vb | 97 ++ ApplicationCrèche 1/Model/Child.vb | 57 ++ ApplicationCrèche 1/Model/Meet.vb | 140 +++ ApplicationCrèche 1/Model/Parent.vb | 24 + ApplicationCrèche 1/Model/Person.vb | 68 ++ .../My Project/Application.Designer.vb | 38 + .../My Project/Application.myapp | 10 + .../My Project/AssemblyInfo.vb | 35 + .../My Project/Resources.Designer.vb | 423 ++++++++ ApplicationCrèche 1/My Project/Resources.resx | 230 +++++ .../My Project/Settings.Designer.vb | 73 ++ .../My Project/Settings.settings | 5 + ApplicationCrèche 1/Resources/AddSheet.png | Bin 0 -> 233 bytes ApplicationCrèche 1/Resources/AddSheet1.png | Bin 0 -> 672 bytes ApplicationCrèche 1/Resources/AddSheet2.png | Bin 0 -> 673 bytes ApplicationCrèche 1/Resources/AddSheet21.png | Bin 0 -> 673 bytes ApplicationCrèche 1/Resources/CancelSheet.png | Bin 0 -> 568 bytes ApplicationCrèche 1/Resources/CloseFolder.png | Bin 0 -> 498 bytes ApplicationCrèche 1/Resources/CloseSheet2.png | Bin 0 -> 569 bytes .../Resources/CloseSheetbook.png | Bin 0 -> 763 bytes ApplicationCrèche 1/Resources/CloseWindow.png | Bin 0 -> 506 bytes ApplicationCrèche 1/Resources/DeleteSheet.png | Bin 0 -> 655 bytes .../Resources/DeleteSheet1.png | Bin 0 -> 655 bytes .../Resources/DeleteSheet2.png | Bin 0 -> 645 bytes .../Resources/DeleteSheet3.png | Bin 0 -> 625 bytes ApplicationCrèche 1/Resources/EditSheet2.ico | Bin 0 -> 682 bytes ApplicationCrèche 1/Resources/EditSheet2.png | Bin 0 -> 703 bytes ApplicationCrèche 1/Resources/EditSheet21.png | Bin 0 -> 703 bytes ApplicationCrèche 1/Resources/GoLink.png | Bin 0 -> 793 bytes ApplicationCrèche 1/Resources/GumSheet.png | Bin 0 -> 647 bytes .../Resources/NewCollection.png | Bin 0 -> 739 bytes ApplicationCrèche 1/Resources/NewSheet2.ico | Bin 0 -> 626 bytes ApplicationCrèche 1/Resources/NewSheet2.png | Bin 0 -> 648 bytes .../Resources/NewSheetbook.png | Bin 0 -> 647 bytes .../Resources/NewSheetbook2.png | Bin 0 -> 768 bytes .../Resources/NormalSheetLight.ico | Bin 0 -> 404 bytes .../Resources/NormalSheetLight.png | Bin 0 -> 416 bytes ApplicationCrèche 1/Resources/OpenFolder.png | Bin 0 -> 543 bytes ApplicationCrèche 1/Resources/OpenFolder2.png | Bin 0 -> 636 bytes .../Resources/OpenSheetbook.png | Bin 0 -> 760 bytes .../Resources/OpenedSheetbook.png | Bin 0 -> 645 bytes .../Resources/PingedWindows.png | Bin 0 -> 518 bytes ApplicationCrèche 1/Resources/RPNM Save.png | Bin 0 -> 518 bytes .../Resources/SaveAsFloppy.png | Bin 0 -> 705 bytes ApplicationCrèche 1/Resources/SaveFloppy.png | Bin 0 -> 469 bytes .../Resources/SaveMultiFloppy.png | Bin 0 -> 552 bytes ApplicationCrèche 1/Resources/SelectSheet.png | Bin 0 -> 567 bytes .../Resources/UnpingedWindows.png | Bin 0 -> 524 bytes .../Resources/ValidedSheet.png | Bin 0 -> 664 bytes .../Resources/WarningSheet2Light.png | Bin 0 -> 524 bytes .../Resources/WarningSheetFrench.png | Bin 0 -> 571 bytes .../Resources/WarningSheetLight.png | Bin 0 -> 569 bytes ApplicationCrèche 1/Resources/WindowList.png | Bin 0 -> 255 bytes ApplicationCrèche 1/Resources/WindowList1.png | Bin 0 -> 257 bytes .../Resources/WrongSheetLight.png | Bin 0 -> 653 bytes ApplicationCrèche 1/Ressources/AddSheet.png | Bin 0 -> 672 bytes ApplicationCrèche 1/Ressources/AddSheet2.png | Bin 0 -> 673 bytes .../Ressources/CancelSheet.png | Bin 0 -> 568 bytes .../Ressources/CloseFolder.png | Bin 0 -> 498 bytes .../Ressources/CloseSheet2.png | Bin 0 -> 569 bytes .../Ressources/CloseSheetbook.png | Bin 0 -> 763 bytes .../Ressources/DeleteSheet.png | Bin 0 -> 655 bytes .../Ressources/DeleteSheet2.png | Bin 0 -> 645 bytes .../Ressources/DeleteSheet3.png | Bin 0 -> 625 bytes ApplicationCrèche 1/Ressources/EditSheet2.png | Bin 0 -> 703 bytes ApplicationCrèche 1/Ressources/GoLink.png | Bin 0 -> 793 bytes ApplicationCrèche 1/Ressources/GumSheet.png | Bin 0 -> 647 bytes .../Ressources/NewCollection.png | Bin 0 -> 739 bytes ApplicationCrèche 1/Ressources/NewSheet2.png | Bin 0 -> 648 bytes .../Ressources/NewSheetbook.png | Bin 0 -> 647 bytes .../Ressources/NewSheetbook2.png | Bin 0 -> 768 bytes .../Ressources/NormalSheetLight.png | Bin 0 -> 416 bytes ApplicationCrèche 1/Ressources/OpenFolder.png | Bin 0 -> 543 bytes .../Ressources/OpenFolder2.png | Bin 0 -> 636 bytes .../Ressources/OpenSheetbook.png | Bin 0 -> 760 bytes .../Ressources/OpenedSheetbook.png | Bin 0 -> 645 bytes ApplicationCrèche 1/Ressources/RPNM Save.png | Bin 0 -> 518 bytes ApplicationCrèche 1/Ressources/RPNM.psd | Bin 0 -> 158850 bytes .../Ressources/SaveAsFloppy.png | Bin 0 -> 705 bytes ApplicationCrèche 1/Ressources/SaveFloppy.png | Bin 0 -> 469 bytes .../Ressources/SaveMultiFloppy.png | Bin 0 -> 552 bytes .../Ressources/ValidedSheet.png | Bin 0 -> 664 bytes .../Ressources/WarningSheet2Light.png | Bin 0 -> 524 bytes .../Ressources/WarningSheetFrench.png | Bin 0 -> 571 bytes .../Ressources/WarningSheetLight.png | Bin 0 -> 569 bytes .../Ressources/WrongSheetLight.png | Bin 0 -> 653 bytes ApplicationCrèche 1/TestFriends.vb | 1 + LICENSE | 674 +++++++++++++ Local.testsettings | 10 + README.md | 17 +- TestProjectCreche/BabySitterTest.vb | 108 ++ TestProjectCreche/ChildTest.vb | 185 ++++ TestProjectCreche/MeetTest.vb | 192 ++++ TestProjectCreche/My Project/AssemblyInfo.vb | 37 + TestProjectCreche/MyProjectTest.vb | 108 ++ TestProjectCreche/MySettingsPropertyTest.vb | 66 ++ TestProjectCreche/ParentTest.vb | 108 ++ TestProjectCreche/PersonTest.vb | 101 ++ TestProjectCreche/ResourcesTest.vb | 83 ++ TestProjectCreche/SQLManagerTest.vb | 115 +++ TestProjectCreche/TestProjectCreche.vbproj | 125 +++ TraceAndTestImpact.testsettings | 21 + 139 files changed, 9396 insertions(+), 1 deletion(-) create mode 100644 ApplicationCrèche 1.sln create mode 100644 ApplicationCrèche 1.vsmdi create mode 100644 ApplicationCrèche 1/App.config create mode 100644 ApplicationCrèche 1/ApplicationCrèche 1.vbproj create mode 100644 ApplicationCrèche 1/ClassDiagram1.cd create mode 100644 ApplicationCrèche 1/DBString.ini create mode 100644 ApplicationCrèche 1/DataManager/ImaginaryModelGenerator.vb create mode 100644 ApplicationCrèche 1/DataManager/SQLManager.vb create mode 100644 ApplicationCrèche 1/Database/CrecheDataSet.Designer.vb create mode 100644 ApplicationCrèche 1/Database/CrecheDataSet.xsc create mode 100644 ApplicationCrèche 1/Database/CrecheDataSet.xsd create mode 100644 ApplicationCrèche 1/Database/CrecheDataSet.xss create mode 100644 ApplicationCrèche 1/Forms/FormAddBS.Designer.vb create mode 100644 ApplicationCrèche 1/Forms/FormAddBS.resx create mode 100644 ApplicationCrèche 1/Forms/FormAddBS.vb create mode 100644 ApplicationCrèche 1/Forms/FormBabySitterID.Designer.vb create mode 100644 ApplicationCrèche 1/Forms/FormBabySitterID.resx create mode 100644 ApplicationCrèche 1/Forms/FormBabySitterID.vb create mode 100644 ApplicationCrèche 1/Forms/FormChildID.Designer.vb create mode 100644 ApplicationCrèche 1/Forms/FormChildID.resx create mode 100644 ApplicationCrèche 1/Forms/FormChildID.vb create mode 100644 ApplicationCrèche 1/Forms/FormID.Designer.vb create mode 100644 ApplicationCrèche 1/Forms/FormID.resx create mode 100644 ApplicationCrèche 1/Forms/FormID.vb create mode 100644 ApplicationCrèche 1/Forms/FormList.Designer.vb create mode 100644 ApplicationCrèche 1/Forms/FormList.resx create mode 100644 ApplicationCrèche 1/Forms/FormList.vb create mode 100644 ApplicationCrèche 1/Forms/FormMain.Designer.vb create mode 100644 ApplicationCrèche 1/Forms/FormMain.en.resx create mode 100644 ApplicationCrèche 1/Forms/FormMain.fr-FR.resx create mode 100644 ApplicationCrèche 1/Forms/FormMain.resx create mode 100644 ApplicationCrèche 1/Forms/FormMain.vb create mode 100644 ApplicationCrèche 1/Forms/FormParentID.Designer.vb create mode 100644 ApplicationCrèche 1/Forms/FormParentID.resx create mode 100644 ApplicationCrèche 1/Forms/FormParentID.vb create mode 100644 ApplicationCrèche 1/Forms/ListEnums.vb create mode 100644 ApplicationCrèche 1/Forms/SharedRessources.vb create mode 100644 ApplicationCrèche 1/Model/BabySitter.vb create mode 100644 ApplicationCrèche 1/Model/Child.vb create mode 100644 ApplicationCrèche 1/Model/Meet.vb create mode 100644 ApplicationCrèche 1/Model/Parent.vb create mode 100644 ApplicationCrèche 1/Model/Person.vb create mode 100644 ApplicationCrèche 1/My Project/Application.Designer.vb create mode 100644 ApplicationCrèche 1/My Project/Application.myapp create mode 100644 ApplicationCrèche 1/My Project/AssemblyInfo.vb create mode 100644 ApplicationCrèche 1/My Project/Resources.Designer.vb create mode 100644 ApplicationCrèche 1/My Project/Resources.resx create mode 100644 ApplicationCrèche 1/My Project/Settings.Designer.vb create mode 100644 ApplicationCrèche 1/My Project/Settings.settings create mode 100644 ApplicationCrèche 1/Resources/AddSheet.png create mode 100644 ApplicationCrèche 1/Resources/AddSheet1.png create mode 100644 ApplicationCrèche 1/Resources/AddSheet2.png create mode 100644 ApplicationCrèche 1/Resources/AddSheet21.png create mode 100644 ApplicationCrèche 1/Resources/CancelSheet.png create mode 100644 ApplicationCrèche 1/Resources/CloseFolder.png create mode 100644 ApplicationCrèche 1/Resources/CloseSheet2.png create mode 100644 ApplicationCrèche 1/Resources/CloseSheetbook.png create mode 100644 ApplicationCrèche 1/Resources/CloseWindow.png create mode 100644 ApplicationCrèche 1/Resources/DeleteSheet.png create mode 100644 ApplicationCrèche 1/Resources/DeleteSheet1.png create mode 100644 ApplicationCrèche 1/Resources/DeleteSheet2.png create mode 100644 ApplicationCrèche 1/Resources/DeleteSheet3.png create mode 100644 ApplicationCrèche 1/Resources/EditSheet2.ico create mode 100644 ApplicationCrèche 1/Resources/EditSheet2.png create mode 100644 ApplicationCrèche 1/Resources/EditSheet21.png create mode 100644 ApplicationCrèche 1/Resources/GoLink.png create mode 100644 ApplicationCrèche 1/Resources/GumSheet.png create mode 100644 ApplicationCrèche 1/Resources/NewCollection.png create mode 100644 ApplicationCrèche 1/Resources/NewSheet2.ico create mode 100644 ApplicationCrèche 1/Resources/NewSheet2.png create mode 100644 ApplicationCrèche 1/Resources/NewSheetbook.png create mode 100644 ApplicationCrèche 1/Resources/NewSheetbook2.png create mode 100644 ApplicationCrèche 1/Resources/NormalSheetLight.ico create mode 100644 ApplicationCrèche 1/Resources/NormalSheetLight.png create mode 100644 ApplicationCrèche 1/Resources/OpenFolder.png create mode 100644 ApplicationCrèche 1/Resources/OpenFolder2.png create mode 100644 ApplicationCrèche 1/Resources/OpenSheetbook.png create mode 100644 ApplicationCrèche 1/Resources/OpenedSheetbook.png create mode 100644 ApplicationCrèche 1/Resources/PingedWindows.png create mode 100644 ApplicationCrèche 1/Resources/RPNM Save.png create mode 100644 ApplicationCrèche 1/Resources/SaveAsFloppy.png create mode 100644 ApplicationCrèche 1/Resources/SaveFloppy.png create mode 100644 ApplicationCrèche 1/Resources/SaveMultiFloppy.png create mode 100644 ApplicationCrèche 1/Resources/SelectSheet.png create mode 100644 ApplicationCrèche 1/Resources/UnpingedWindows.png create mode 100644 ApplicationCrèche 1/Resources/ValidedSheet.png create mode 100644 ApplicationCrèche 1/Resources/WarningSheet2Light.png create mode 100644 ApplicationCrèche 1/Resources/WarningSheetFrench.png create mode 100644 ApplicationCrèche 1/Resources/WarningSheetLight.png create mode 100644 ApplicationCrèche 1/Resources/WindowList.png create mode 100644 ApplicationCrèche 1/Resources/WindowList1.png create mode 100644 ApplicationCrèche 1/Resources/WrongSheetLight.png create mode 100644 ApplicationCrèche 1/Ressources/AddSheet.png create mode 100644 ApplicationCrèche 1/Ressources/AddSheet2.png create mode 100644 ApplicationCrèche 1/Ressources/CancelSheet.png create mode 100644 ApplicationCrèche 1/Ressources/CloseFolder.png create mode 100644 ApplicationCrèche 1/Ressources/CloseSheet2.png create mode 100644 ApplicationCrèche 1/Ressources/CloseSheetbook.png create mode 100644 ApplicationCrèche 1/Ressources/DeleteSheet.png create mode 100644 ApplicationCrèche 1/Ressources/DeleteSheet2.png create mode 100644 ApplicationCrèche 1/Ressources/DeleteSheet3.png create mode 100644 ApplicationCrèche 1/Ressources/EditSheet2.png create mode 100644 ApplicationCrèche 1/Ressources/GoLink.png create mode 100644 ApplicationCrèche 1/Ressources/GumSheet.png create mode 100644 ApplicationCrèche 1/Ressources/NewCollection.png create mode 100644 ApplicationCrèche 1/Ressources/NewSheet2.png create mode 100644 ApplicationCrèche 1/Ressources/NewSheetbook.png create mode 100644 ApplicationCrèche 1/Ressources/NewSheetbook2.png create mode 100644 ApplicationCrèche 1/Ressources/NormalSheetLight.png create mode 100644 ApplicationCrèche 1/Ressources/OpenFolder.png create mode 100644 ApplicationCrèche 1/Ressources/OpenFolder2.png create mode 100644 ApplicationCrèche 1/Ressources/OpenSheetbook.png create mode 100644 ApplicationCrèche 1/Ressources/OpenedSheetbook.png create mode 100644 ApplicationCrèche 1/Ressources/RPNM Save.png create mode 100644 ApplicationCrèche 1/Ressources/RPNM.psd create mode 100644 ApplicationCrèche 1/Ressources/SaveAsFloppy.png create mode 100644 ApplicationCrèche 1/Ressources/SaveFloppy.png create mode 100644 ApplicationCrèche 1/Ressources/SaveMultiFloppy.png create mode 100644 ApplicationCrèche 1/Ressources/ValidedSheet.png create mode 100644 ApplicationCrèche 1/Ressources/WarningSheet2Light.png create mode 100644 ApplicationCrèche 1/Ressources/WarningSheetFrench.png create mode 100644 ApplicationCrèche 1/Ressources/WarningSheetLight.png create mode 100644 ApplicationCrèche 1/Ressources/WrongSheetLight.png create mode 100644 ApplicationCrèche 1/TestFriends.vb create mode 100644 LICENSE create mode 100644 Local.testsettings create mode 100644 TestProjectCreche/BabySitterTest.vb create mode 100644 TestProjectCreche/ChildTest.vb create mode 100644 TestProjectCreche/MeetTest.vb create mode 100644 TestProjectCreche/My Project/AssemblyInfo.vb create mode 100644 TestProjectCreche/MyProjectTest.vb create mode 100644 TestProjectCreche/MySettingsPropertyTest.vb create mode 100644 TestProjectCreche/ParentTest.vb create mode 100644 TestProjectCreche/PersonTest.vb create mode 100644 TestProjectCreche/ResourcesTest.vb create mode 100644 TestProjectCreche/SQLManagerTest.vb create mode 100644 TestProjectCreche/TestProjectCreche.vbproj create mode 100644 TraceAndTestImpact.testsettings diff --git a/ApplicationCrèche 1.sln b/ApplicationCrèche 1.sln new file mode 100644 index 0000000..74d2e15 --- /dev/null +++ b/ApplicationCrèche 1.sln @@ -0,0 +1,58 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ApplicationCrèche 1", "ApplicationCrèche 1\ApplicationCrèche 1.vbproj", "{B4F616BE-465C-48AC-85E6-672DA34168F3}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{07793840-34C0-4C10-80B4-522B7746CF01}" + ProjectSection(SolutionItems) = preProject + ApplicationCrèche 1.vsmdi = ApplicationCrèche 1.vsmdi + Database\Crib.mdf = Database\Crib.mdf + Database\Crib_log.LDF = Database\Crib_log.LDF + Local.testsettings = Local.testsettings + TraceAndTestImpact.testsettings = TraceAndTestImpact.testsettings + EndProjectSection +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "TestProjectCreche", "TestProjectCreche\TestProjectCreche.vbproj", "{9ECEEE15-A011-4654-AA8D-28E3889EB563}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B4F616BE-465C-48AC-85E6-672DA34168F3}.Debug|Any CPU.ActiveCfg = Debug|x86 + {B4F616BE-465C-48AC-85E6-672DA34168F3}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {B4F616BE-465C-48AC-85E6-672DA34168F3}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {B4F616BE-465C-48AC-85E6-672DA34168F3}.Debug|x86.ActiveCfg = Debug|x86 + {B4F616BE-465C-48AC-85E6-672DA34168F3}.Debug|x86.Build.0 = Debug|x86 + {B4F616BE-465C-48AC-85E6-672DA34168F3}.Release|Any CPU.ActiveCfg = Release|x86 + {B4F616BE-465C-48AC-85E6-672DA34168F3}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {B4F616BE-465C-48AC-85E6-672DA34168F3}.Release|Mixed Platforms.Build.0 = Release|x86 + {B4F616BE-465C-48AC-85E6-672DA34168F3}.Release|x86.ActiveCfg = Release|x86 + {B4F616BE-465C-48AC-85E6-672DA34168F3}.Release|x86.Build.0 = Release|x86 + {9ECEEE15-A011-4654-AA8D-28E3889EB563}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9ECEEE15-A011-4654-AA8D-28E3889EB563}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9ECEEE15-A011-4654-AA8D-28E3889EB563}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {9ECEEE15-A011-4654-AA8D-28E3889EB563}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {9ECEEE15-A011-4654-AA8D-28E3889EB563}.Debug|x86.ActiveCfg = Debug|Any CPU + {9ECEEE15-A011-4654-AA8D-28E3889EB563}.Debug|x86.Build.0 = Debug|Any CPU + {9ECEEE15-A011-4654-AA8D-28E3889EB563}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9ECEEE15-A011-4654-AA8D-28E3889EB563}.Release|Any CPU.Build.0 = Release|Any CPU + {9ECEEE15-A011-4654-AA8D-28E3889EB563}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {9ECEEE15-A011-4654-AA8D-28E3889EB563}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {9ECEEE15-A011-4654-AA8D-28E3889EB563}.Release|x86.ActiveCfg = Release|Any CPU + {9ECEEE15-A011-4654-AA8D-28E3889EB563}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(TestCaseManagementSettings) = postSolution + CategoryFile = ApplicationCrèche 1.vsmdi + EndGlobalSection +EndGlobal diff --git a/ApplicationCrèche 1.vsmdi b/ApplicationCrèche 1.vsmdi new file mode 100644 index 0000000..a0b72c2 --- /dev/null +++ b/ApplicationCrèche 1.vsmdi @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/ApplicationCrèche 1/App.config b/ApplicationCrèche 1/App.config new file mode 100644 index 0000000..8581b3b --- /dev/null +++ b/ApplicationCrèche 1/App.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/ApplicationCrèche 1/ApplicationCrèche 1.vbproj b/ApplicationCrèche 1/ApplicationCrèche 1.vbproj new file mode 100644 index 0000000..4af1ba0 --- /dev/null +++ b/ApplicationCrèche 1/ApplicationCrèche 1.vbproj @@ -0,0 +1,298 @@ + + + + Debug + x86 + + + 2.0 + {B4F616BE-465C-48AC-85E6-672DA34168F3} + WinExe + ApplicationCrèche_1.My.MyApplication + ApplicationCrèche_1 + ApplicationCrèche 1 + 512 + WindowsForms + v3.5 + false + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + x86 + true + full + true + true + bin\Debug\ + ApplicationCrèche 1.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + x86 + pdbonly + false + true + true + bin\Release\ + ApplicationCrèche 1.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + On + + + Binary + + + Off + + + On + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + True + True + CrecheDataSet.xsd + + + + FormBabySitterID.vb + + + Form + + + FormList.vb + + + Form + + + FormChildID.vb + + + Form + + + FormID.vb + + + Form + + + Form + + + FormMain.vb + Form + + + FormParentID.vb + + + Form + + + + + + + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + FormBabySitterID.vb + + + FormList.vb + + + FormChildID.vb + + + FormID.vb + + + FormMain.vb + + + FormMain.vb + + + FormMain.vb + + + FormParentID.vb + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + + + + + CrecheDataSet.xsd + + + MSDataSetGenerator + CrecheDataSet.Designer.vb + Designer + + + CrecheDataSet.xsd + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + SQL Server Compact 3.5 SP2 + true + + + False + Windows Installer 3.1 + true + + + + + + Always + + + Always + Creche.mdf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ApplicationCrèche 1/ClassDiagram1.cd b/ApplicationCrèche 1/ClassDiagram1.cd new file mode 100644 index 0000000..3322750 --- /dev/null +++ b/ApplicationCrèche 1/ClassDiagram1.cd @@ -0,0 +1,133 @@ + + + + + + gAAQQAQAECAMAQIBQACAAIADAACABAAAEAAQAgAACgA= + Forms\FormBabySitterID.vb + + + + + + QBkVSgACXHIAAQABQECRAYhSAgAAIAAAAAIBAgASAIA= + Forms\FormChildID.vb + + + + + + AAAAAIIgECAAAwAAQQKAARCCAAAAAQAAAgAAEAAAgAA= + Forms\FormID.vb + + + + + + A0AUAEgABCASgAIIEICSwACiTMAACUUEgAIIBBACIAE= + Forms\FormList.vb + + + + + + gyRIAGACCHIgQoCEoBDGAIoniEIAAAkCAEAhQJeAgGk= + Forms\FormMain.vb + + + + + + AAAQQACEVKAQAQAAQACAAQACABgAAAAAgAAAAgAAAAA= + Forms\FormParentID.vb + + + + + + AAAAAAAAQAAAAAAAIEgAAAAIAAAAAAAgAAACAAAAAAA= + Model\BabySitter.vb + + + + + + AAAAAAAQAAACMAAEAAAAABAIAAAAAAAAAAAAAEAAAAA= + Model\Child.vb + + + + + + AAAAIAAAGAACAAAAIABAJAAgAAAAACBAgAAAAAAAAgA= + Model\Meet.vb + + + + + + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAABA= + Model\Parent.vb + + + + + + AAEAEAAAAAhAAAAAAAFAhAAAAAIAAAAAAAAAAEAAAgA= + Model\Person.vb + + + + + + AkIEAAACBAASAAIEHBRCgAAAAAAAAQAAoGAAgIAQAAA= + DataManager\SQLManager.vb + + + + + + AAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAA= + + + + + + AAAAAAAAAAgAAAQAABAAIAAABAABAAAAAAAAAABAAAA= + + + + + + AAAAAAAAAgAQAAAAAAAABAAAAAAAAAAAAAAAAAAAAAA= + Forms\ListEnums.vb + + + + + + AIAAAgAAAAAAAIAAAAAAQAAAAAAAAAAAAAAAAAAAAAA= + Forms\ListEnums.vb + + + + + + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAQAA= + Forms\SharedRessources.vb + + + + + + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAA= + + + + + + GEAAEQAAEEQBIACwAKABEAADIYCRAICAACQABEAAAIA= + + + + \ No newline at end of file diff --git a/ApplicationCrèche 1/DBString.ini b/ApplicationCrèche 1/DBString.ini new file mode 100644 index 0000000..e58281d --- /dev/null +++ b/ApplicationCrèche 1/DBString.ini @@ -0,0 +1 @@ +Data Source=.\SQLEXPRESS8;Initial Catalog=Creche;Integrated Security=True;Pooling=False \ No newline at end of file diff --git a/ApplicationCrèche 1/DataManager/ImaginaryModelGenerator.vb b/ApplicationCrèche 1/DataManager/ImaginaryModelGenerator.vb new file mode 100644 index 0000000..eb3d828 --- /dev/null +++ b/ApplicationCrèche 1/DataManager/ImaginaryModelGenerator.vb @@ -0,0 +1,26 @@ +Public Class ImaginaryModelGenerator + + Public bs1 As BabySitter + Public bs2 As BabySitter + Public m1 As Meet + Public c1 As Child + Public c2 As Child + Public p1 As Parent + Public p2 As Parent + + Public Sub New() + bs1 = New BabySitter(1, "bs1", "bs1", "1111") + bs2 = New BabySitter(2, "bs2", "bs2", "2222") + + m1 = New Meet() + m1.monday = True + m1.sunday = True + + c1 = New Child(1, "c1", "c1", "", New Date(), m1) + c2 = New Child(2, "c2", "c2", "", New Date(), m1) + + p1 = New Parent(1, "p1", "p1", "1111", "1111") + p2 = New Parent(2, "p2", "p2", "2222", "2222") + End Sub + +End Class diff --git a/ApplicationCrèche 1/DataManager/SQLManager.vb b/ApplicationCrèche 1/DataManager/SQLManager.vb new file mode 100644 index 0000000..1115c7d --- /dev/null +++ b/ApplicationCrèche 1/DataManager/SQLManager.vb @@ -0,0 +1,943 @@ +Imports System.Data.SqlClient +Imports System.IO + +Public Class SQLManager + Shared DBConnexion As SqlConnection + + Shared Sub New() + Dim fileName As String = "DBString.ini" + Dim exePath As String = Application.StartupPath() + Dim filePath As String = exePath & "\" & fileName + If File.Exists(filePath) Then + Dim txtReader As StreamReader + Dim StrContents As String + Try + txtReader = New StreamReader(filePath) + StrContents = txtReader.ReadLine() + Catch ex As Exception + MsgBox("The application was unable to load the database connexion string from the file : " & vbNewLine & filePath & vbNewLine & "Please check if the database is launched and loaded, and the initialisation file containt a operationnal connexion string." & vbNewLine & "The program will close.", MsgBoxStyle.OkOnly & MsgBoxStyle.Critical, "Impossible to connect to the database") + End + End Try + Try + DBConnexion = New SqlConnection(StrContents) + Catch ex As Exception + MsgBox(ex.Message, MsgBoxStyle.OkOnly & MsgBoxStyle.Critical) + End Try + Else + Dim txtReader As StreamWriter + Try + File.Create(filePath) + txtReader = New StreamWriter(filePath) + txtReader.WriteLine("Data Source=TIMONIUM\SQLEXPRESS8;Initial Catalog=Creche;Integrated Security=True;Pooling=False") + Catch ex As Exception + MsgBox(ex.Message & vbNewLine & "The program will close.", MsgBoxStyle.OkOnly & MsgBoxStyle.Critical, "Impossible to start") + End + End Try + MsgBox("The application was unable to find the connexion string file at " & vbNewLine & filePath & vbNewLine & "Please check if the fill exists and contains a valid database connexion string.", MsgBoxStyle.OkOnly & MsgBoxStyle.Critical, "File not found") + End + End If + DBConnexion.Open() + End Sub + + + ' ----- DB Methods for Children -----' + ''' + ''' Get a all information about a Child whose his ID is passed as a parameter + ''' + ''' The id of the child to get from the database + ''' a Child as complete as possible + ''' + Public Function getChildByID(id As Integer) As Child + Dim aChild As Child = Nothing + Dim request As SqlCommand = New SqlCommand() + Dim results As SqlDataReader + Dim FK_Parent1id As UInteger + Dim FK_Parent2id As UInteger + + request.Connection = DBConnexion + request.CommandText = "SELECT * FROM Child WHERE idChild = @id" + request.Parameters.Add("@id", SqlDbType.Int).Value = id + results = request.ExecuteReader() + 'While (results.Read()) + ' Console.WriteLine(results.GetInt32(2)) + 'End While + If (results.HasRows) Then + results.Read() + If results.IsDBNull(0) Then + FK_Parent1id = 0 + Else + FK_Parent1id = results.GetInt32(0) + End If + If results.IsDBNull(1) Then + FK_Parent2id = 0 + Else + FK_Parent2id = results.GetInt32(1) + End If + + aChild = New Child(results.GetInt32(2)) + aChild.firstname = results.GetString(3) + aChild.lastname = results.GetString(4) + aChild.gender = results.GetBoolean(5) + aChild.bornDate = results.GetDateTime(6) + aChild.address = results.GetString(7) + results.Close() + Else + Throw New IndexOutOfRangeException("The specified index does not exist on the database") + End If + + If FK_Parent1id <> 0 Then + aChild.parent1 = Me.getParentByID(FK_Parent1id) + End If + If FK_Parent2id <> 0 Then + aChild.parent2 = Me.getParentByID(FK_Parent2id) + End If + aChild.meet = Me.getMeetByChildId(id) + + 'request.CommandText = "SELECT * FROM Parent WHERE idParent = @id" + 'request.Parameters("@id").Value = FK_Parent1id + 'results = request.ExecuteReader() + 'If (results.HasRows) Then + ' results.Read() + ' Dim parent1 As Parent = New Parent(results.GetInt32(0)) + ' parent1.firstname = results.GetString(1) + ' parent1.lastname = results.GetString(2) + ' parent1.gender = results.GetBoolean(3) + ' parent1.phone = results.GetString(4) + ' parent1.address = results.GetString(5) + ' aChild.parent1 = parent1 + ' results.Close() + ' Console.WriteLine(parent1.toString()) + 'Else + ' aChild.parent1 = Nothing + 'End If + + 'request.CommandText = "SELECT * FROM Parent WHERE idParent = @id" + 'request.Parameters("@id").Value = FK_Parent2id + 'results = request.ExecuteReader() + 'If (results.HasRows) Then + ' results.Read() + ' Dim parent2 As Parent = New Parent(results.GetInt32(0)) + ' parent2.firstname = results.GetString(1) + ' parent2.lastname = results.GetString(2) + ' parent2.gender = results.GetBoolean(3) + ' parent2.phone = results.GetString(4) + ' parent2.address = results.GetString(5) + ' aChild.parent2 = parent2 + ' results.Close() + ' Console.WriteLine(parent2.toString()) + 'Else + ' aChild.parent2 = Nothing + 'End If + + If Not results.IsClosed Then results.Close() + Return aChild + End Function + + ''' + ''' Send requests to the database to compose a list of all the children + ''' + ''' A list of all the children + ''' + Public Function getChildren() As List(Of Child) + Dim request As SqlCommand = New SqlCommand() + request.Connection = DBConnexion + request.CommandText = "SELECT idChild FROM Child" + + Dim results As SqlDataReader + results = request.ExecuteReader() + Dim allID As List(Of Integer) = New List(Of Integer) + While (results.Read()) + allID.Add(results.GetInt32(0)) + End While + results.Close() + + Dim AllChildren As List(Of Child) = New List(Of Child) + For Each id As Integer In allID + AllChildren.Add(getChildByID(id)) + Next + + Return AllChildren + End Function + + ''' + ''' Add a Child to the database with all needed data + ''' + ''' The child to add to the database + ''' Currently, it only add a new children, no parents, no meet. + Public Function addChild(aChild As Child) As Integer + Dim request As SqlCommand = New SqlCommand() + request.Connection = DBConnexion + request.CommandText = "INSERT INTO Child (FK_idParent1, FK_idParent2, ChildFirstName, ChildLastName, ChildGender, ChildBornDate, ChildCareAddress) VALUES (@idp1, @idp2, @chfn, @chln, @chgd, @chbd, @chds)" + + If Not aChild.parent1 Is Nothing Then + request.Parameters.Add("@idp1", SqlDbType.Int).Value = aChild.parent1.id + Else + request.Parameters.Add("@idp1", SqlDbType.Int).Value = DBNull.Value + End If + + If Not aChild.parent2 Is Nothing Then + request.Parameters.Add("@idp2", SqlDbType.Int).Value = aChild.parent2.id + Else + request.Parameters.Add("@idp2", SqlDbType.Int).Value = DBNull.Value + End If + + request.Parameters.Add("@chfn", SqlDbType.NVarChar).Value = aChild.firstname + request.Parameters.Add("@chln", SqlDbType.NVarChar).Value = aChild.lastname + request.Parameters.Add("@chgd", SqlDbType.Bit).Value = aChild.gender + request.Parameters.Add("@chbd", SqlDbType.Date).Value = aChild.bornDate + request.Parameters.Add("@chds", SqlDbType.NVarChar).Value = aChild.address + request.ExecuteReader().Close() + + 'If Not aChild.meet Is Nothing And aChild.meet.id = 0 Then + ' addMeet(aChild.meet, aChild.id) + 'End If + + request.CommandText = "SELECT idChild FROM Child where ChildFirstName = @chfn AND ChildLastName = @chln AND ChildGender = @chgd AND ChildBornDate = @chbd AND ChildCareAddress = @chds" + Dim results As SqlDataReader + results = request.ExecuteReader() + results.Read() + Dim idChild As Integer = results.GetInt32(0) + results.Close() + Return idChild + End Function + + ''' + ''' Edit the specified Child in the database + ''' + ''' The child to edit (The most important is it's ID) + ''' + Public Sub editChild(aChild As Child) + Dim request As SqlCommand = New SqlCommand() + request.Connection = DBConnexion + request.CommandText = "UPDATE Child SET FK_idParent1 = @idp1, FK_idParent2 = @idp2, ChildFirstName = @chfn, ChildLastName = @chln, ChildGender = @chgd, ChildBornDate = @chbd, ChildCareAddress = @chds WHERE idChild = @chid" + request.Parameters.Add("@chid", SqlDbType.Int).Value = aChild.id + + If Not aChild.parent1 Is Nothing Then + request.Parameters.Add("@idp1", SqlDbType.Int).Value = aChild.parent1.id + Else + request.Parameters.Add("@idp1", SqlDbType.Int).Value = DBNull.Value + End If + + If Not aChild.parent2 Is Nothing Then + request.Parameters.Add("@idp2", SqlDbType.Int).Value = aChild.parent2.id + Else + request.Parameters.Add("@idp2", SqlDbType.Int).Value = DBNull.Value + End If + + request.Parameters.Add("@chfn", SqlDbType.NVarChar).Value = aChild.firstname + request.Parameters.Add("@chln", SqlDbType.NVarChar).Value = aChild.lastname + request.Parameters.Add("@chgd", SqlDbType.Bit).Value = aChild.gender + request.Parameters.Add("@chbd", SqlDbType.Date).Value = aChild.bornDate + request.Parameters.Add("@chds", SqlDbType.NVarChar).Value = aChild.address + request.ExecuteReader().Close() + End Sub + + ''' + ''' Delete the Child in the Database based on his id. + ''' + ''' The id of the Child to delete + ''' The Child is deleted with the corresponding meet. + Public Sub deleteChildByID(id As Integer) + Dim request As SqlCommand = New SqlCommand() + request.Connection = DBConnexion + + ' Delete the associated Meet of the child. + request.CommandText = "SELECT idMeet FROM Meet WHERE FK_idChild = @chidmeet" + request.Parameters.Add("@chidmeet", SqlDbType.Int).Value = id + Dim result As SqlDataReader = request.ExecuteReader() + + Dim idmeet As Integer = Nothing + If result.HasRows() Then + result.Read() + idmeet = result.GetInt32(0) + result.Close() + End If + + ' if there is no meet asociated, we can delete child safely from de db. + ' else, we delete meeet first. + If Not idmeet = Nothing Then + deleteMeet(idmeet) + End If + If Not result.IsClosed Then result.Close() + + ' Then delete the child from the database. + request = New SqlCommand() + request.Connection = DBConnexion + request.CommandText = "DELETE FROM Child WHERE idChild = @chid" + request.Parameters.Add("@chid", SqlDbType.Int).Value = id + request.ExecuteReader.Close() + End Sub + + Function getChildByMeetID(id As Integer) As Child + Dim request As SqlCommand = New SqlCommand() + request.Connection = DBConnexion + request.CommandText = "SELECT FK_idChild FROM Meet WHERE idMeet = @id" + request.Parameters.Add("@id", SqlDbType.Int).Value = id + Dim results As SqlDataReader + results = request.ExecuteReader() + + Dim aChild As Child = Nothing + If results.HasRows Then + results.Read() + Dim idChild As UInteger = results.GetValue(0) + results.Close() + aChild = getChildByID(idChild) + End If + If Not results.IsClosed Then results.Close() + Return aChild + End Function + + ' ----- DB Methods for Parents -----' + ''' + ''' Get all information about a PArent whose his ID is passed as a parameter + ''' + ''' The id of the Parent to get from the database + ''' a Parent + ''' + Public Function getParentByID(id As Integer) As Parent + Dim request As SqlCommand = New SqlCommand() + request.Connection = DBConnexion + request.CommandText = "SELECT * FROM Parent WHERE idParent = @id" + request.Parameters.Add("@id", SqlDbType.Int).Value = id + Dim results As SqlDataReader + results = request.ExecuteReader() + + Dim aParent As Parent = Nothing + If results.HasRows Then + results.Read() + aParent = New Parent(results.GetInt32(0)) + aParent.firstname = results.GetString(1) + aParent.lastname = results.GetString(2) + aParent.phone = results.GetString(4) + aParent.gender = results.GetBoolean(3) + aParent.address = results.GetString(5) + results.Close() + End If + If Not results.IsClosed Then results.Close() + Return aParent + End Function + + ''' + ''' Send requests to the database to compose a list of all the parents + ''' + ''' The list containing all parents + ''' + Public Function getParents() As List(Of Parent) + Dim request As SqlCommand = New SqlCommand() + request.Connection = DBConnexion + request.CommandText = "SELECT idParent FROM Parent" + + Dim results As SqlDataReader + results = request.ExecuteReader() + Dim allID As List(Of Integer) = New List(Of Integer) + While (results.Read()) + allID.Add(results.GetInt32(0)) + End While + results.Close() + + Dim AllParent As List(Of Parent) = New List(Of Parent) + For Each id As Integer In allID + AllParent.Add(getParentByID(id)) + Next + + Return AllParent + End Function + + ''' + ''' Get a list of children for the parent where the id is passed as a parameter + ''' + ''' the id of the parent + ''' a list of childrens of this parent + ''' + Public Function getChildenOf(id As Integer) As List(Of Child) + Dim request As SqlCommand = New SqlCommand() + request.Connection = DBConnexion + request.CommandText = "SELECT idChild FROM Child WHERE FK_idParent1 = @id OR FK_idParent2 = @id" + request.Parameters.Add("@id", SqlDbType.Int).Value = id + + Dim results As SqlDataReader + results = request.ExecuteReader() + Dim allId As List(Of Integer) = New List(Of Integer) + While results.Read + allId.Add(results.GetInt32(0)) + End While + results.Close() + + Dim theChildren As List(Of Child) = New List(Of Child) + For Each Childid As Integer In allId + Dim aChild As Child = getChildByID(Childid) + theChildren.Add(aChild) + Next + + Return theChildren + End Function + + ''' + ''' Add a Parent to the database with all needed data + ''' + ''' the parent to add into the database + ''' + Public Function addParent(parent As Parent) As Integer + Dim request As SqlCommand = New SqlCommand() + request.Connection = DBConnexion + request.CommandText = "INSERT INTO Parent (ParentFirstName, ParentLastName, ParentGender, ParentPhone, ParentAddress) VALUES (@pfn, @pln, @pgd, @pph, @pds)" + + request.Parameters.Add("@pfn", SqlDbType.NVarChar).Value = parent.firstname + request.Parameters.Add("@pln", SqlDbType.NVarChar).Value = parent.lastname + request.Parameters.Add("@pgd", SqlDbType.Bit).Value = parent.gender + request.Parameters.Add("@pph", SqlDbType.NVarChar).Value = parent.phone + request.Parameters.Add("@pds", SqlDbType.NVarChar).Value = parent.address + request.ExecuteReader().Close() + + request.CommandText = "SELECT idParent FROM Parent WHERE ParentFirstName = @pfn AND ParentLastName = @pln AND ParentGender = @pgd AND ParentPhone = @pph AND ParentAddress = @pds" + Dim results As SqlDataReader + results = request.ExecuteReader() + results.Read() + Dim idParent As Integer = results.GetInt32(0) + results.Close() + Return idParent + End Function + + ''' + ''' Edit the specified Parent in the database + ''' + ''' The parent to edit in the database (The most important is ot's ID) + ''' + Public Sub editParent(parent As Parent) + Dim request As SqlCommand = New SqlCommand() + request.Connection = DBConnexion + request.CommandText = "UPDATE Parent SET ParentFirstName = @pfn, ParentLastName = @pln, ParentGender = @pgd, ParentPhone = @pph, ParentAddress = @pds WHERE idParent = @pid" + + request.Parameters.Add("@pid", SqlDbType.Int).Value = parent.id + request.Parameters.Add("@pfn", SqlDbType.NVarChar).Value = parent.firstname + request.Parameters.Add("@pln", SqlDbType.NVarChar).Value = parent.lastname + request.Parameters.Add("@pgd", SqlDbType.Bit).Value = parent.gender + request.Parameters.Add("@pph", SqlDbType.NVarChar).Value = parent.phone + request.Parameters.Add("@pds", SqlDbType.NVarChar).Value = parent.address + request.ExecuteReader().Close() + End Sub + + ''' + ''' Delete the Parent in the Database based on the id. + ''' + ''' The id of the Parent to delete + ''' Delete only the Parent without nothing more + Public Sub deleteParentByID(id As Integer) + Dim request As SqlCommand = New SqlCommand() + request.Connection = DBConnexion + request.CommandText = "SELECT idChild FROM Child WHERE FK_idParent1 = @pid OR FK_idParent2 = @pid " + request.Parameters.Add("@pid", SqlDbType.Int).Value = id + Dim result As SqlDataReader = request.ExecuteReader + + If result.HasRows Then + Dim allChildID As List(Of Integer) = New List(Of Integer) + While result.Read + allChildID.Add(result.GetInt32(0)) + End While + result.Close() + + Dim allChild As List(Of Child) = New List(Of Child) + For Each idChild As Integer In allChildID + allChild.Add(getChildByID(idChild)) + Next + + For Each Child As Child In allChild + + If Not Child.parent1 Is Nothing AndAlso Child.parent1.id = id Then + request = New SqlCommand() + request.Connection = DBConnexion + request.CommandText = "UPDATE Child SET FK_idParent1 = @pfk WHERE idChild = @cid" + request.Parameters.Add("@pfk", SqlDbType.Int).Value = DBNull.Value + request.Parameters.Add("@cid", SqlDbType.Int).Value = Child.id + request.ExecuteReader.Close() + End If + If Not Child.parent2 Is Nothing AndAlso Child.parent2.id = id Then + request = New SqlCommand() + request.Connection = DBConnexion + request.CommandText = "UPDATE Child SET FK_idParent2 = @pfk WHERE idChild = @cid" + request.Parameters.Add("@pfk", SqlDbType.Int).Value = DBNull.Value + request.Parameters.Add("@cid", SqlDbType.Int).Value = Child.id + request.ExecuteReader.Close() + End If + Next + End If + + request = New SqlCommand() + request.Connection = DBConnexion + request.CommandText = "DELETE FROM Parent WHERE idParent = @pid" + request.Parameters.Add("@pid", SqlDbType.Int).Value = id + request.ExecuteReader.Close() + End Sub + + ' ----- DB Methods for Babysitter -----' + + ''' + ''' Get all information about a Babysitter whose his ID is passed as a parameter + ''' + ''' The id of the child to get from the database + ''' A Babysitter as complete as possible + ''' If the babysitter have Meets the function also these meets into the Babysitters objet, or Nohting insead. + Public Function getBabysitterByID(id As Integer) As BabySitter + Dim request As SqlCommand = New SqlCommand() + request.Connection = DBConnexion + request.CommandText = "SELECT * FROM Babysitter WHERE idBS = @id" + request.Parameters.Add("@id", SqlDbType.Int).Value = id + Dim results As SqlDataReader + results = request.ExecuteReader() + + Dim aSB As BabySitter + If results.HasRows Then + results.Read() + aSB = New BabySitter(results.GetInt32(3)) + aSB.firstname = results.GetString(4) + aSB.lastname = results.GetString(5) + aSB.gender = results.GetBoolean(6) + aSB.address = results.GetString(7) + aSB.phone1 = results.GetString(8) + + Dim nbMeet1 As Integer + Dim nbMeet2 As Integer + Dim nbMeet3 As Integer + + If Not results.IsDBNull(0) Then + nbMeet1 = results.GetInt32(0) + Else + nbMeet1 = Nothing + End If + If Not results.IsDBNull(1) Then + nbMeet2 = results.GetInt32(1) + Else + nbMeet2 = Nothing + End If + If Not results.IsDBNull(2) Then + nbMeet3 = results.GetInt32(2) + Else + nbMeet3 = Nothing + End If + + If Not results.IsDBNull(9) Then + aSB.phone2 = results.GetString(9) + Else + aSB.phone2 = Nothing + End If + results.Close() + + If Not nbMeet1 = Nothing Then + aSB.meet1 = Me.getMeetByID(nbMeet1) + End If + If Not nbMeet2 = Nothing Then + aSB.meet2 = Me.getMeetByID(nbMeet2) + End If + If Not nbMeet3 = Nothing Then + aSB.meet3 = Me.getMeetByID(nbMeet3) + End If + + Else + Throw New IndexOutOfRangeException("The specified index does not exist on the database") + End If + + Return aSB + End Function + + ''' + ''' Send requests to the database to compose a liste of all the babysitters + ''' + ''' A List(of BabySitters) + ''' Use getBabysitter(id) + Public Function getBabysitters() As List(Of BabySitter) + Dim request As SqlCommand = New SqlCommand() + request.Connection = DBConnexion + request.CommandText = "SELECT idBS FROM Babysitter" + + Dim results As SqlDataReader + results = request.ExecuteReader() + Dim allID As List(Of Integer) = New List(Of Integer) + While (results.Read()) + allID.Add(results.GetInt32(0)) + End While + results.Close() + + Dim AllBS As List(Of BabySitter) = New List(Of BabySitter) + For Each id As Integer In allID + Try + AllBS.Add(getBabysitterByID(id)) + Catch ex As SqlException + Console.WriteLine("SQLManager") + Console.WriteLine(ex.Message) + End Try + Next + Return AllBS + End Function + + ''' + ''' Get a babysitter based on the Meet ID provided as a parameter + ''' + ''' The ID of the meet + ''' A babysitter if a meet is founded in the Database, or Nothing else. + ''' If a meet has no babysitter in the database, the meet is immediately deleted. + Public Function getBabysitterByMeetID(id As Integer) As BabySitter + Dim request As SqlCommand = New SqlCommand() + request.Connection = DBConnexion + request.CommandText = "SELECT * FROM Babysitter WHERE FK_idMeet1 = @id OR FK_idMeet2 = @id OR FK_idMeet3 = @id" + request.Parameters.Add("@id", SqlDbType.Int).Value = id + Dim results As SqlDataReader + results = request.ExecuteReader() + Dim aSB As BabySitter = Nothing + If results.HasRows Then + results.Read() + + aSB = New BabySitter(results.GetInt32(3)) + aSB.firstname = results.GetString(4) + aSB.lastname = results.GetString(5) + aSB.gender = results.GetBoolean(6) + aSB.address = results.GetString(7) + aSB.phone1 = results.GetString(8) + If Not results.IsDBNull(9) Then + aSB.phone2 = results.GetString(9) + Else + aSB.phone2 = Nothing + End If + results.Close() + End If + Return aSB + End Function + + ''' + ''' Get all availables babysitters from the databases. + ''' + ''' z List(of Babysitter) + ''' Babysitters that have less than 3 meets + Public Function getAvailableBabysitters() As List(Of BabySitter) + Dim request As SqlCommand = New SqlCommand() + request.Connection = DBConnexion + request.CommandText = "SELECT idBS FROM Babysitter WHERE FK_idMeet1 IS NULL OR FK_idMeet2 IS NULL OR FK_idMeet3 IS NULL" + + Dim results As SqlDataReader + results = request.ExecuteReader() + Dim allID As List(Of Integer) = New List(Of Integer) + While (results.Read()) + allID.Add(results.GetInt32(0)) + End While + results.Close() + + Dim AllBS As List(Of BabySitter) = New List(Of BabySitter) + For Each id As Integer In allID + Try + AllBS.Add(getBabysitterByID(id)) + Catch ex As SqlException + Console.WriteLine("SQLManager") + Console.WriteLine(ex.Message) + End Try + Next + Return AllBS + End Function + + ''' + ''' Add a Babysitter to the database. + ''' + ''' + ''' + ''' + Public Function addBabysitter(aBS As BabySitter) As Integer + Dim request As SqlCommand = New SqlCommand() + request.Connection = DBConnexion + request.CommandText = "INSERT INTO Babysitter (BSFirstName, BSLastName, BSGender, BSAddress, BSPhone1, BSPhone2) VALUES (@bsfn, @bsln, @bsgd, @bsds, @bsp1, @bsp2)" + + request.Parameters.Add("@bsfn", SqlDbType.NVarChar).Value = aBS.firstname + request.Parameters.Add("@bsln", SqlDbType.NVarChar).Value = aBS.lastname + request.Parameters.Add("@bsgd", SqlDbType.Bit).Value = aBS.gender + request.Parameters.Add("@bsp1", SqlDbType.NVarChar).Value = aBS.phone1 + request.Parameters.Add("@bsds", SqlDbType.NVarChar).Value = aBS.address + If Not aBS.phone2 Is Nothing Then + request.Parameters.Add("@bsp2", SqlDbType.NVarChar).Value = aBS.phone2 + Else + request.Parameters.Add("@bsp2", SqlDbType.NVarChar).Value = DBNull.Value + End If + request.ExecuteReader().Close() + + request.CommandText = "SELECT idBS FROM babysitter WHERE BSFirstName = @bsfn AND BSLastName = @bsln AND BSGender = @bsgd AND BSAddress = @bsds" + Dim results As SqlDataReader + results = request.ExecuteReader() + results.Read() + Dim idBS As Integer = results.GetInt32(0) + results.Close() + Return idBS + End Function + + ''' + ''' Edit a BabySitter with the givent babysitter + ''' + ''' The babysitter with new information. The ID of the babysitter is mandatory. + ''' The meet is not managed here. see updateBabysitterMeets + Public Sub editBabysitter(aBS As BabySitter) + Dim request As SqlCommand = New SqlCommand() + request.Connection = DBConnexion + request.CommandText = "UPDATE Babysitter SET BSFirstName = @bsfn, BSLastName = @bsln, BSGender = @bsg, BSAddress = @bsad, BSPhone1 = @bsph1, BSPhone2 = @bsph2 WHERE idBS = @bsid" + + 'If Not aBS.meet1 Is Nothing Then + ' request.Parameters.Add("@bsfk1", SqlDbType.Int).Value = aBS.meet1.id + 'End If + 'If Not aBS.meet2 Is Nothing Then + ' request.Parameters.Add("@fkbs2", SqlDbType.Int).Value = aBS.meet2.id + 'End If + 'If Not aBS.meet3 Is Nothing Then + ' request.Parameters.Add("@fkbs3", SqlDbType.Int).Value = aBS.meet3.id + 'End If + request.Parameters.Add("@bsfn", SqlDbType.NVarChar).Value = aBS.firstname + request.Parameters.Add("@bsln", SqlDbType.NVarChar).Value = aBS.lastname + request.Parameters.Add("@bsg", SqlDbType.Bit).Value = aBS.gender + request.Parameters.Add("@bsad", SqlDbType.NVarChar).Value = aBS.address + request.Parameters.Add("@bsph1", SqlDbType.NVarChar).Value = aBS.phone1 + If Not aBS.phone2 Is Nothing Then + request.Parameters.Add("@bsph2", SqlDbType.NVarChar).Value = aBS.phone2 + Else + request.Parameters.Add("@bsph2", SqlDbType.NVarChar).Value = DBNull.Value + End If + request.Parameters.Add("@bsid", SqlDbType.Int).Value = aBS.id + request.ExecuteReader().Close() + End Sub + + ''' + ''' Update the relationshop between a babysitter and a meet. Many parameters can be added, making this method powerfull : + ''' - The meet and a babysitter to add : The meet is associated to the babysitter (BSID) in one of the 3 avalaible meeting (BSPod). + ''' - The meet and a babysitter to remove : The meet can be nothing, one of the 3 babisitter's meets is removed. + ''' - The meet and both. The meet is removed from one babyssiter and then added to another babysitter. + ''' + ''' The ID of the meet + ''' The ID of the babyssiter who recieved the meet. This parameter is mandatory with the next one. + ''' The firts avalaible empty meet of the babysitter where the meet Id will be placed. This parameter is mandatory with the previous one. + ''' The ID of the babyssiter where the meet is to remove. This parameter is mandatory with the next one. + ''' The firts avalaible empty meet of the babysitter where the meet Id will be removed. This parameter is mandatory with the previous one. + ''' TO get the first empty meet of a babysitter, see getFirstFreeMeetOf method + Public Sub updateBabysitterMeets(meetNumber As UShort, Optional BSIDAdd As Integer = 0, Optional BSPosAdd As Integer = 0, Optional BSIDRemove As Integer = 0, Optional BSPosRemove As Integer = 0) + Dim request As SqlCommand = New SqlCommand() + request.Connection = DBConnexion + If BSPosRemove >= 1 And BSPosRemove <= 4 Then + Select Case BSPosRemove + 'Case 1 + ' request.CommandText = "UPDATE Babysitter SET FK_idMeet1 = @bsfkR WHERE idBS = @bsidR" + Case 2 + request.CommandText = "UPDATE Babysitter SET FK_idMeet1 = @bsfkR WHERE idBS = @bsidR" + Case 3 + request.CommandText = "UPDATE Babysitter SET FK_idMeet2 = @bsfkR WHERE idBS = @bsidR" + Case 4 + request.CommandText = "UPDATE Babysitter SET FK_idMeet3 = @bsfkR WHERE idBS = @bsidR" + End Select + 'request.Parameters.Add("@bsPosR", SqlDbType.Int).Value = BSPosRemove + request.Parameters.Add("@bsfkR", SqlDbType.Int).Value = DBNull.Value + request.Parameters.Add("@bsidR", SqlDbType.Int).Value = BSIDRemove + + request.ExecuteReader().Close() + End If + + If BSPosAdd >= 1 And BSPosAdd <= 3 Then + Select Case BSPosAdd + Case 1 + request.CommandText = "UPDATE Babysitter SET FK_idMeet1 = @bsfkA WHERE idBS = @bsidA" + Case 2 + request.CommandText = "UPDATE Babysitter SET FK_idMeet2 = @bsfkA WHERE idBS = @bsidA" + Case 3 + request.CommandText = "UPDATE Babysitter SET FK_idMeet3 = @bsfkA WHERE idBS = @bsidA" + End Select + 'request.Parameters.Add("@bsPosA", SqlDbType.Int).Value = BSPosAdd + request.Parameters.Add("@bsfkA", SqlDbType.Int).Value = meetNumber + request.Parameters.Add("@bsidA", SqlDbType.Int).Value = BSIDAdd + + request.ExecuteReader().Close() + End If + End Sub + + ''' + ''' Delete a babysitter and associated Meets from the database + ''' + ''' The id of the babysiter to delete + ''' Be aware that some child will loose their Meet. + Public Sub deleteBabysitterByID(id As Integer) + Dim aBS As BabySitter = getBabysitterByID(id) + + If Not aBS.meet1 Is Nothing Then deleteMeet(aBS.meet1.id) + If Not aBS.meet2 Is Nothing Then deleteMeet(aBS.meet2.id) + If Not aBS.meet3 Is Nothing Then deleteMeet(aBS.meet3.id) + + Dim request As SqlCommand = New SqlCommand() + request.Connection = DBConnexion + request.CommandText = "DELETE FROM Babysitter WHERE idBS = @BSid" + request.Parameters.Add("@BSid", SqlDbType.Int).Value = id + request.ExecuteReader.Close() + + End Sub + + '----- DB Methods for Meet -----' + ''' + ''' Get a meet by its ID + ''' + ''' + ''' a meet or nothing + ''' + Public Function getMeetByID(id As Integer) As Meet + Dim request As SqlCommand = New SqlCommand() + request.Connection = DBConnexion + request.CommandText = "SELECT * FROM Meet WHERE idMeet = @id" + request.Parameters.Add("@id", SqlDbType.Int).Value = id + Dim results As SqlDataReader + results = request.ExecuteReader() + + Dim aMeet As Meet = Nothing + If (results.HasRows) Then + results.Read() + aMeet = New Meet(results.GetInt32(1)) + aMeet.monday = results.GetBoolean(2) + aMeet.tuesday = results.GetBoolean(3) + aMeet.wednesday = results.GetBoolean(4) + aMeet.thursday = results.GetBoolean(5) + aMeet.friday = results.GetBoolean(6) + aMeet.saturday = results.GetBoolean(7) + aMeet.sunday = results.GetBoolean(8) + results.Close() + End If + If Not results.IsClosed Then results.Close() + Return aMeet + End Function + + ''' + ''' Get a meet for a given Child ID + ''' + ''' The Id of the Child associated with the meet + ''' The corresponding meet or nothing if the child has no meet + ''' + Public Function getMeetByChildId(id As Integer) As Meet + Dim request As SqlCommand = New SqlCommand() + request.Connection = DBConnexion + request.CommandText = "SELECT * FROM Meet WHERE FK_idChild = @id" + request.Parameters.Add("@id", SqlDbType.Int).Value = id + Dim results As SqlDataReader + results = request.ExecuteReader() + + Dim aMeet As Meet = Nothing + If (results.HasRows) Then + results.Read() + aMeet = New Meet(results.GetInt32(1)) + aMeet.monday = results.GetBoolean(2) + aMeet.tuesday = results.GetBoolean(3) + aMeet.wednesday = results.GetBoolean(4) + aMeet.thursday = results.GetBoolean(5) + aMeet.friday = results.GetBoolean(6) + aMeet.saturday = results.GetBoolean(7) + aMeet.sunday = results.GetBoolean(8) + results.Close() + End If + + If Not results.IsClosed Then results.Close() + Return aMeet + End Function + + ''' + ''' Edit this meet by updating his values + ''' + ''' The meet to edit with new modifications + ''' The Meet Id is mandatory + Public Sub editMeet(aMeet As Meet) + Dim request As SqlCommand = New SqlCommand() + request.Connection = DBConnexion + request.CommandText = "UPDATE Meet SET Monday = @mon, Tuesday = @tue, Wednesday = @wed, Thursday = @thr, Friday = @fri, Saturday = @sat, Sunday = @sun WHERE idMeet = @idm" + + request.Parameters.Add("@mon", SqlDbType.Bit).Value = aMeet.monday + request.Parameters.Add("@tue", SqlDbType.Bit).Value = aMeet.tuesday + request.Parameters.Add("@wed", SqlDbType.Bit).Value = aMeet.wednesday + request.Parameters.Add("@thr", SqlDbType.Bit).Value = aMeet.thursday + request.Parameters.Add("@fri", SqlDbType.Bit).Value = aMeet.friday + request.Parameters.Add("@sat", SqlDbType.Bit).Value = aMeet.saturday + request.Parameters.Add("@sun", SqlDbType.Bit).Value = aMeet.sunday + request.Parameters.Add("@idm", SqlDbType.Int).Value = aMeet.id + request.ExecuteReader().Close() + + End Sub + + ''' + ''' Add a meet to the database. + ''' + ''' The meet to add + ''' The id of the child associated + ''' + ''' + Public Function addMeet(aMeet As Meet, childID As Integer) As Integer + Dim request As SqlCommand = New SqlCommand() + request.Connection = DBConnexion + request.CommandText = "INSERT INTO Meet (FK_idChild, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday) VALUES (@idc, @mon, @tue, @wed, @thr, @fri, @sat, @sun)" + + request.Parameters.Add("@mon", SqlDbType.Bit).Value = aMeet.monday + request.Parameters.Add("@tue", SqlDbType.Bit).Value = aMeet.tuesday + request.Parameters.Add("@wed", SqlDbType.Bit).Value = aMeet.wednesday + request.Parameters.Add("@thr", SqlDbType.Bit).Value = aMeet.thursday + request.Parameters.Add("@fri", SqlDbType.Bit).Value = aMeet.friday + request.Parameters.Add("@sat", SqlDbType.Bit).Value = aMeet.saturday + request.Parameters.Add("@sun", SqlDbType.Bit).Value = aMeet.sunday + request.Parameters.Add("@idc", SqlDbType.Int).Value = childID + request.ExecuteReader().Close() + + request.CommandText = "SELECT idMeet FROM Meet WHERE FK_idChild = @idch" + request.Parameters.Add("@idch", SqlDbType.Int).Value = childID + Dim results As SqlDataReader + results = request.ExecuteReader() + results.Read() + Dim idBS As Integer = results.GetInt32(0) + results.Close() + Return idBS + End Function + + ''' + ''' Delete the Meet where the id is given. Also update the associated Babysitter + ''' + ''' The id of the meet to delete + ''' Be aware of the difference between the Child ID (Foreing Key) and the Meet ID. + Public Sub deleteMeet(id As Integer) + Dim request As SqlCommand = New SqlCommand() + request.Connection = DBConnexion + + ' First wee search wich babysitter has the meet. + request.CommandText = "SELECT FK_idMeet1, FK_idMeet2, FK_idMeet3, idBS FROM Babysitter WHERE FK_idMeet1 = @id OR FK_idMeet2 = @id OR FK_idMeet3 = @id" + request.Parameters.Add("@id", SqlDbType.Int).Value = id + + Dim results As SqlDataReader + results = request.ExecuteReader() + + ' Then we delete this meet from it. + 'If there is no bs associated with this meet, we can delete it from the db + If results.HasRows Then + results.Read() + Dim idBS As Integer = results.GetInt32(3) + Dim wantedID As UShort = 0 + If Not results.IsDBNull(0) AndAlso id = results.GetInt32(0) Then + wantedID = 1 + ElseIf Not results.IsDBNull(1) AndAlso id = results.GetInt32(1) Then + wantedID = 2 + ElseIf Not results.IsDBNull(2) AndAlso id = results.GetInt32(2) Then + wantedID = 3 + End If + + results.Close() + + Select Case wantedID + Case 1 + request.CommandText = "UPDATE Babysitter SET FK_idMeet1 = @bsfk WHERE idBS = @bsid" + Case 2 + request.CommandText = "UPDATE Babysitter SET FK_idMeet2 = @bsfk WHERE idBS = @bsid" + Case 3 + request.CommandText = "UPDATE Babysitter SET FK_idMeet3 = @bsfk WHERE idBS = @bsid" + End Select + request.Parameters.Add("@bsfk", SqlDbType.Int).Value = DBNull.Value + request.Parameters.Add("@bsid", SqlDbType.Int).Value = idBS + request.ExecuteReader().Close() + End If + + 'Finaly, the meet has no more constraint in the database, we can safely delete it. + request.CommandText = "DELETE FROM Meet WHERE idMeet = @chid" + request.Parameters.Add("@chid", SqlDbType.Int).Value = id + request.ExecuteReader.Close() + End Sub + + + + + +End Class \ No newline at end of file diff --git a/ApplicationCrèche 1/Database/CrecheDataSet.Designer.vb b/ApplicationCrèche 1/Database/CrecheDataSet.Designer.vb new file mode 100644 index 0000000..cdc72dc --- /dev/null +++ b/ApplicationCrèche 1/Database/CrecheDataSet.Designer.vb @@ -0,0 +1,242 @@ +'------------------------------------------------------------------------------ +' +' Ce code a été généré par un outil. +' Version du runtime :4.0.30319.18033 +' +' Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +' le code est régénéré. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +''' +'''Represents a strongly typed in-memory cache of data. +''' + _ +Partial Public Class CrecheDataSet + Inherits Global.System.Data.DataSet + + Private _schemaSerializationMode As Global.System.Data.SchemaSerializationMode = Global.System.Data.SchemaSerializationMode.IncludeSchema + + _ + Public Sub New() + MyBase.New + Me.BeginInit + Me.InitClass + Dim schemaChangedHandler As Global.System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler + AddHandler MyBase.Relations.CollectionChanged, schemaChangedHandler + Me.EndInit + End Sub + + _ + Protected Sub New(ByVal info As Global.System.Runtime.Serialization.SerializationInfo, ByVal context As Global.System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context, false) + If (Me.IsBinarySerialized(info, context) = true) Then + Me.InitVars(false) + Dim schemaChangedHandler1 As Global.System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler Me.Tables.CollectionChanged, schemaChangedHandler1 + AddHandler Me.Relations.CollectionChanged, schemaChangedHandler1 + Return + End If + Dim strSchema As String = CType(info.GetValue("XmlSchema", GetType(String)),String) + If (Me.DetermineSchemaSerializationMode(info, context) = Global.System.Data.SchemaSerializationMode.IncludeSchema) Then + Dim ds As Global.System.Data.DataSet = New Global.System.Data.DataSet() + ds.ReadXmlSchema(New Global.System.Xml.XmlTextReader(New Global.System.IO.StringReader(strSchema))) + Me.DataSetName = ds.DataSetName + Me.Prefix = ds.Prefix + Me.Namespace = ds.Namespace + Me.Locale = ds.Locale + Me.CaseSensitive = ds.CaseSensitive + Me.EnforceConstraints = ds.EnforceConstraints + Me.Merge(ds, false, Global.System.Data.MissingSchemaAction.Add) + Me.InitVars + Else + Me.ReadXmlSchema(New Global.System.Xml.XmlTextReader(New Global.System.IO.StringReader(strSchema))) + End If + Me.GetSerializationData(info, context) + Dim schemaChangedHandler As Global.System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler + AddHandler Me.Relations.CollectionChanged, schemaChangedHandler + End Sub + + _ + Public Overrides Property SchemaSerializationMode() As Global.System.Data.SchemaSerializationMode + Get + Return Me._schemaSerializationMode + End Get + Set + Me._schemaSerializationMode = value + End Set + End Property + + _ + Public Shadows ReadOnly Property Tables() As Global.System.Data.DataTableCollection + Get + Return MyBase.Tables + End Get + End Property + + _ + Public Shadows ReadOnly Property Relations() As Global.System.Data.DataRelationCollection + Get + Return MyBase.Relations + End Get + End Property + + _ + Protected Overrides Sub InitializeDerivedDataSet() + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + _ + Public Overrides Function Clone() As Global.System.Data.DataSet + Dim cln As CrecheDataSet = CType(MyBase.Clone,CrecheDataSet) + cln.InitVars + cln.SchemaSerializationMode = Me.SchemaSerializationMode + Return cln + End Function + + _ + Protected Overrides Function ShouldSerializeTables() As Boolean + Return false + End Function + + _ + Protected Overrides Function ShouldSerializeRelations() As Boolean + Return false + End Function + + _ + Protected Overrides Sub ReadXmlSerializable(ByVal reader As Global.System.Xml.XmlReader) + If (Me.DetermineSchemaSerializationMode(reader) = Global.System.Data.SchemaSerializationMode.IncludeSchema) Then + Me.Reset + Dim ds As Global.System.Data.DataSet = New Global.System.Data.DataSet() + ds.ReadXml(reader) + Me.DataSetName = ds.DataSetName + Me.Prefix = ds.Prefix + Me.Namespace = ds.Namespace + Me.Locale = ds.Locale + Me.CaseSensitive = ds.CaseSensitive + Me.EnforceConstraints = ds.EnforceConstraints + Me.Merge(ds, false, Global.System.Data.MissingSchemaAction.Add) + Me.InitVars + Else + Me.ReadXml(reader) + Me.InitVars + End If + End Sub + + _ + Protected Overrides Function GetSchemaSerializable() As Global.System.Xml.Schema.XmlSchema + Dim stream As Global.System.IO.MemoryStream = New Global.System.IO.MemoryStream() + Me.WriteXmlSchema(New Global.System.Xml.XmlTextWriter(stream, Nothing)) + stream.Position = 0 + Return Global.System.Xml.Schema.XmlSchema.Read(New Global.System.Xml.XmlTextReader(stream), Nothing) + End Function + + _ + Friend Overloads Sub InitVars() + Me.InitVars(true) + End Sub + + _ + Friend Overloads Sub InitVars(ByVal initTable As Boolean) + End Sub + + _ + Private Sub InitClass() + Me.DataSetName = "CrecheDataSet" + Me.Prefix = "" + Me.Namespace = "http://tempuri.org/CrecheDataSet.xsd" + Me.EnforceConstraints = true + Me.SchemaSerializationMode = Global.System.Data.SchemaSerializationMode.IncludeSchema + End Sub + + _ + Private Sub SchemaChanged(ByVal sender As Object, ByVal e As Global.System.ComponentModel.CollectionChangeEventArgs) + If (e.Action = Global.System.ComponentModel.CollectionChangeAction.Remove) Then + Me.InitVars + End If + End Sub + + _ + Public Shared Function GetTypedDataSetSchema(ByVal xs As Global.System.Xml.Schema.XmlSchemaSet) As Global.System.Xml.Schema.XmlSchemaComplexType + Dim ds As CrecheDataSet = New CrecheDataSet() + Dim type As Global.System.Xml.Schema.XmlSchemaComplexType = New Global.System.Xml.Schema.XmlSchemaComplexType() + Dim sequence As Global.System.Xml.Schema.XmlSchemaSequence = New Global.System.Xml.Schema.XmlSchemaSequence() + Dim any As Global.System.Xml.Schema.XmlSchemaAny = New Global.System.Xml.Schema.XmlSchemaAny() + any.Namespace = ds.Namespace + sequence.Items.Add(any) + type.Particle = sequence + Dim dsSchema As Global.System.Xml.Schema.XmlSchema = ds.GetSchemaSerializable + If xs.Contains(dsSchema.TargetNamespace) Then + Dim s1 As Global.System.IO.MemoryStream = New Global.System.IO.MemoryStream() + Dim s2 As Global.System.IO.MemoryStream = New Global.System.IO.MemoryStream() + Try + Dim schema As Global.System.Xml.Schema.XmlSchema = Nothing + dsSchema.Write(s1) + Dim schemas As Global.System.Collections.IEnumerator = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator + Do While schemas.MoveNext + schema = CType(schemas.Current,Global.System.Xml.Schema.XmlSchema) + s2.SetLength(0) + schema.Write(s2) + If (s1.Length = s2.Length) Then + s1.Position = 0 + s2.Position = 0 + + Do While ((s1.Position <> s1.Length) _ + AndAlso (s1.ReadByte = s2.ReadByte)) + + + Loop + If (s1.Position = s1.Length) Then + Return type + End If + End If + + Loop + Finally + If (Not (s1) Is Nothing) Then + s1.Close + End If + If (Not (s2) Is Nothing) Then + s2.Close + End If + End Try + End If + xs.Add(dsSchema) + Return type + End Function +End Class diff --git a/ApplicationCrèche 1/Database/CrecheDataSet.xsc b/ApplicationCrèche 1/Database/CrecheDataSet.xsc new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/ApplicationCrèche 1/Database/CrecheDataSet.xsc @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ApplicationCrèche 1/Database/CrecheDataSet.xsd b/ApplicationCrèche 1/Database/CrecheDataSet.xsd new file mode 100644 index 0000000..658619b --- /dev/null +++ b/ApplicationCrèche 1/Database/CrecheDataSet.xsd @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ApplicationCrèche 1/Database/CrecheDataSet.xss b/ApplicationCrèche 1/Database/CrecheDataSet.xss new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/ApplicationCrèche 1/Database/CrecheDataSet.xss @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ApplicationCrèche 1/Forms/FormAddBS.Designer.vb b/ApplicationCrèche 1/Forms/FormAddBS.Designer.vb new file mode 100644 index 0000000..6cb3817 --- /dev/null +++ b/ApplicationCrèche 1/Forms/FormAddBS.Designer.vb @@ -0,0 +1,218 @@ + _ +Partial Class FormAddBS + Inherits System.Windows.Forms.Form + + 'Form remplace la méthode Dispose pour nettoyer la liste des composants. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Requise par le Concepteur Windows Form + Private components As System.ComponentModel.IContainer + + 'REMARQUE : la procédure suivante est requise par le Concepteur Windows Form + 'Elle peut être modifiée à l'aide du Concepteur Windows Form. + 'Ne la modifiez pas à l'aide de l'éditeur de code. + _ + Private Sub InitializeComponent() + Me.RBFemale = New System.Windows.Forms.RadioButton() + Me.RBMale = New System.Windows.Forms.RadioButton() + Me.LabelGender = New System.Windows.Forms.Label() + Me.TBAddress = New System.Windows.Forms.TextBox() + Me.TBLastName = New System.Windows.Forms.TextBox() + Me.TBFirstName = New System.Windows.Forms.TextBox() + Me.LabelLastName = New System.Windows.Forms.Label() + Me.LabelFirstName = New System.Windows.Forms.Label() + Me.TBPhone2 = New System.Windows.Forms.TextBox() + Me.TBPhone1 = New System.Windows.Forms.TextBox() + Me.LabelPhone2 = New System.Windows.Forms.Label() + Me.LabelPhone1 = New System.Windows.Forms.Label() + Me.LabelAddress = New System.Windows.Forms.Label() + Me.ButtonCancel = New System.Windows.Forms.Button() + Me.ButtonAdd = New System.Windows.Forms.Button() + Me.SuspendLayout() + ' + 'RBFemale + ' + Me.RBFemale.AutoSize = True + Me.RBFemale.Location = New System.Drawing.Point(171, 68) + Me.RBFemale.Name = "RBFemale" + Me.RBFemale.Size = New System.Drawing.Size(61, 17) + Me.RBFemale.TabIndex = 3 + Me.RBFemale.TabStop = True + Me.RBFemale.Text = "Female" + Me.RBFemale.UseVisualStyleBackColor = True + ' + 'RBMale + ' + Me.RBMale.AutoSize = True + Me.RBMale.Location = New System.Drawing.Point(80, 68) + Me.RBMale.Name = "RBMale" + Me.RBMale.Size = New System.Drawing.Size(50, 17) + Me.RBMale.TabIndex = 2 + Me.RBMale.TabStop = True + Me.RBMale.Text = "Male" + Me.RBMale.UseVisualStyleBackColor = True + ' + 'LabelGender + ' + Me.LabelGender.AutoSize = True + Me.LabelGender.Location = New System.Drawing.Point(12, 70) + Me.LabelGender.Name = "LabelGender" + Me.LabelGender.Size = New System.Drawing.Size(48, 13) + Me.LabelGender.TabIndex = 20 + Me.LabelGender.Text = "Gender:" + ' + 'TBAddress + ' + Me.TBAddress.Location = New System.Drawing.Point(12, 111) + Me.TBAddress.Multiline = True + Me.TBAddress.Name = "TBAddress" + Me.TBAddress.Size = New System.Drawing.Size(258, 87) + Me.TBAddress.TabIndex = 4 + ' + 'TBLastName + ' + Me.TBLastName.Location = New System.Drawing.Point(80, 40) + Me.TBLastName.Name = "TBLastName" + Me.TBLastName.Size = New System.Drawing.Size(190, 22) + Me.TBLastName.TabIndex = 1 + ' + 'TBFirstName + ' + Me.TBFirstName.Location = New System.Drawing.Point(80, 12) + Me.TBFirstName.Name = "TBFirstName" + Me.TBFirstName.Size = New System.Drawing.Size(190, 22) + Me.TBFirstName.TabIndex = 0 + ' + 'LabelLastName + ' + Me.LabelLastName.AutoSize = True + Me.LabelLastName.Location = New System.Drawing.Point(12, 43) + Me.LabelLastName.Name = "LabelLastName" + Me.LabelLastName.Size = New System.Drawing.Size(62, 13) + Me.LabelLastName.TabIndex = 16 + Me.LabelLastName.Text = "Last Name:" + ' + 'LabelFirstName + ' + Me.LabelFirstName.AutoSize = True + Me.LabelFirstName.Location = New System.Drawing.Point(12, 15) + Me.LabelFirstName.Name = "LabelFirstName" + Me.LabelFirstName.Size = New System.Drawing.Size(63, 13) + Me.LabelFirstName.TabIndex = 15 + Me.LabelFirstName.Text = "First name:" + ' + 'TBPhone2 + ' + Me.TBPhone2.Location = New System.Drawing.Point(67, 239) + Me.TBPhone2.Name = "TBPhone2" + Me.TBPhone2.Size = New System.Drawing.Size(203, 22) + Me.TBPhone2.TabIndex = 6 + ' + 'TBPhone1 + ' + Me.TBPhone1.Location = New System.Drawing.Point(67, 211) + Me.TBPhone1.Name = "TBPhone1" + Me.TBPhone1.Size = New System.Drawing.Size(203, 22) + Me.TBPhone1.TabIndex = 5 + ' + 'LabelPhone2 + ' + Me.LabelPhone2.AutoSize = True + Me.LabelPhone2.Location = New System.Drawing.Point(12, 242) + Me.LabelPhone2.Name = "LabelPhone2" + Me.LabelPhone2.Size = New System.Drawing.Size(52, 13) + Me.LabelPhone2.TabIndex = 25 + Me.LabelPhone2.Text = "Phone 2:" + ' + 'LabelPhone1 + ' + Me.LabelPhone1.AutoSize = True + Me.LabelPhone1.Location = New System.Drawing.Point(12, 214) + Me.LabelPhone1.Name = "LabelPhone1" + Me.LabelPhone1.Size = New System.Drawing.Size(52, 13) + Me.LabelPhone1.TabIndex = 24 + Me.LabelPhone1.Text = "Phone 1:" + ' + 'LabelAddress + ' + Me.LabelAddress.AutoSize = True + Me.LabelAddress.Location = New System.Drawing.Point(12, 95) + Me.LabelAddress.Name = "LabelAddress" + Me.LabelAddress.Size = New System.Drawing.Size(51, 13) + Me.LabelAddress.TabIndex = 23 + Me.LabelAddress.Text = "Address:" + ' + 'ButtonCancel + ' + Me.ButtonCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonCancel.Location = New System.Drawing.Point(196, 282) + Me.ButtonCancel.Name = "ButtonCancel" + Me.ButtonCancel.Size = New System.Drawing.Size(75, 23) + Me.ButtonCancel.TabIndex = 8 + Me.ButtonCancel.Text = "Cancel" + Me.ButtonCancel.UseVisualStyleBackColor = True + ' + 'ButtonAdd + ' + Me.ButtonAdd.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonAdd.Location = New System.Drawing.Point(115, 282) + Me.ButtonAdd.Name = "ButtonAdd" + Me.ButtonAdd.Size = New System.Drawing.Size(75, 23) + Me.ButtonAdd.TabIndex = 7 + Me.ButtonAdd.Text = "Add" + Me.ButtonAdd.UseVisualStyleBackColor = True + ' + 'FormAddBS + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(283, 317) + Me.Controls.Add(Me.ButtonAdd) + Me.Controls.Add(Me.ButtonCancel) + Me.Controls.Add(Me.TBPhone2) + Me.Controls.Add(Me.TBPhone1) + Me.Controls.Add(Me.LabelPhone2) + Me.Controls.Add(Me.LabelPhone1) + Me.Controls.Add(Me.LabelAddress) + Me.Controls.Add(Me.RBFemale) + Me.Controls.Add(Me.RBMale) + Me.Controls.Add(Me.LabelGender) + Me.Controls.Add(Me.TBAddress) + Me.Controls.Add(Me.TBLastName) + Me.Controls.Add(Me.TBFirstName) + Me.Controls.Add(Me.LabelLastName) + Me.Controls.Add(Me.LabelFirstName) + Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle + Me.MaximizeBox = False + Me.Name = "FormAddBS" + Me.Text = "FormAddBS" + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents RBFemale As System.Windows.Forms.RadioButton + Friend WithEvents RBMale As System.Windows.Forms.RadioButton + Friend WithEvents LabelGender As System.Windows.Forms.Label + Friend WithEvents TBAddress As System.Windows.Forms.TextBox + Friend WithEvents TBLastName As System.Windows.Forms.TextBox + Friend WithEvents TBFirstName As System.Windows.Forms.TextBox + Friend WithEvents LabelLastName As System.Windows.Forms.Label + Friend WithEvents LabelFirstName As System.Windows.Forms.Label + Friend WithEvents TBPhone2 As System.Windows.Forms.TextBox + Friend WithEvents TBPhone1 As System.Windows.Forms.TextBox + Friend WithEvents LabelPhone2 As System.Windows.Forms.Label + Friend WithEvents LabelPhone1 As System.Windows.Forms.Label + Friend WithEvents LabelAddress As System.Windows.Forms.Label + Friend WithEvents ButtonCancel As System.Windows.Forms.Button + Friend WithEvents ButtonAdd As System.Windows.Forms.Button +End Class diff --git a/ApplicationCrèche 1/Forms/FormAddBS.resx b/ApplicationCrèche 1/Forms/FormAddBS.resx new file mode 100644 index 0000000..7080a7d --- /dev/null +++ b/ApplicationCrèche 1/Forms/FormAddBS.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/ApplicationCrèche 1/Forms/FormAddBS.vb b/ApplicationCrèche 1/Forms/FormAddBS.vb new file mode 100644 index 0000000..52b1333 --- /dev/null +++ b/ApplicationCrèche 1/Forms/FormAddBS.vb @@ -0,0 +1,3 @@ +Public Class FormAddBS + +End Class \ No newline at end of file diff --git a/ApplicationCrèche 1/Forms/FormBabySitterID.Designer.vb b/ApplicationCrèche 1/Forms/FormBabySitterID.Designer.vb new file mode 100644 index 0000000..65ba765 --- /dev/null +++ b/ApplicationCrèche 1/Forms/FormBabySitterID.Designer.vb @@ -0,0 +1,240 @@ + _ +Partial Class FormBabySitterID + Inherits ApplicationCrèche_1.FormID + + 'Form remplace la méthode Dispose pour nettoyer la liste des composants. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + MyBase.Dispose(disposing) + End Sub + + 'Requise par le Concepteur Windows Form + Private components As System.ComponentModel.IContainer + + 'REMARQUE : la procédure suivante est requise par le Concepteur Windows Form + 'Elle peut être modifiée à l'aide du Concepteur Windows Form. + 'Ne la modifiez pas à l'aide de l'éditeur de code. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(FormBabySitterID)) + Me.LabelAddress = New System.Windows.Forms.Label() + Me.LabelPhone1 = New System.Windows.Forms.Label() + Me.LabelPhone2 = New System.Windows.Forms.Label() + Me.TBPhone1 = New System.Windows.Forms.TextBox() + Me.TBPhone2 = New System.Windows.Forms.TextBox() + Me.Label4 = New System.Windows.Forms.Label() + Me.Label5 = New System.Windows.Forms.Label() + Me.Keep3 = New System.Windows.Forms.Label() + Me.Keep2 = New System.Windows.Forms.Label() + Me.Keep1 = New System.Windows.Forms.Label() + Me.Keep4 = New System.Windows.Forms.Label() + Me.Keep7 = New System.Windows.Forms.Label() + Me.Keep6 = New System.Windows.Forms.Label() + Me.Keep5 = New System.Windows.Forms.Label() + Me.SuspendLayout() + ' + 'ButtonEdit + ' + Me.ButtonEdit.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText + ' + 'ButtonClose + ' + ' + 'LabelAddress + ' + Me.LabelAddress.AutoSize = True + Me.LabelAddress.Location = New System.Drawing.Point(12, 166) + Me.LabelAddress.Name = "LabelAddress" + Me.LabelAddress.Size = New System.Drawing.Size(51, 13) + Me.LabelAddress.TabIndex = 15 + Me.LabelAddress.Text = "Address:" + ' + 'LabelPhone1 + ' + Me.LabelPhone1.AutoSize = True + Me.LabelPhone1.Location = New System.Drawing.Point(12, 285) + Me.LabelPhone1.Name = "LabelPhone1" + Me.LabelPhone1.Size = New System.Drawing.Size(52, 13) + Me.LabelPhone1.TabIndex = 16 + Me.LabelPhone1.Text = "Phone 1:" + ' + 'LabelPhone2 + ' + Me.LabelPhone2.AutoSize = True + Me.LabelPhone2.Location = New System.Drawing.Point(12, 313) + Me.LabelPhone2.Name = "LabelPhone2" + Me.LabelPhone2.Size = New System.Drawing.Size(52, 13) + Me.LabelPhone2.TabIndex = 0 + Me.LabelPhone2.Text = "Phone 2:" + ' + 'TBPhone1 + ' + Me.TBPhone1.Location = New System.Drawing.Point(67, 282) + Me.TBPhone1.Name = "TBPhone1" + Me.TBPhone1.Size = New System.Drawing.Size(203, 22) + Me.TBPhone1.TabIndex = 5 + ' + 'TBPhone2 + ' + Me.TBPhone2.Location = New System.Drawing.Point(67, 310) + Me.TBPhone2.Name = "TBPhone2" + Me.TBPhone2.Size = New System.Drawing.Size(203, 22) + Me.TBPhone2.TabIndex = 6 + ' + 'Label4 + ' + Me.Label4.AutoSize = True + Me.Label4.Font = New System.Drawing.Font("Segoe UI", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label4.Location = New System.Drawing.Point(12, 9) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(83, 30) + Me.Label4.TabIndex = 2 + Me.Label4.Text = "Identity" + ' + 'Label5 + ' + Me.Label5.AutoSize = True + Me.Label5.Font = New System.Drawing.Font("Segoe UI", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label5.Location = New System.Drawing.Point(276, 9) + Me.Label5.Name = "Label5" + Me.Label5.Size = New System.Drawing.Size(94, 30) + Me.Label5.TabIndex = 1 + Me.Label5.Text = "Planning" + ' + 'Keep3 + ' + Me.Keep3.AutoSize = True + Me.Keep3.Enabled = False + Me.Keep3.Location = New System.Drawing.Point(293, 121) + Me.Keep3.Name = "Keep3" + Me.Keep3.Size = New System.Drawing.Size(67, 13) + Me.Keep3.TabIndex = 22 + Me.Keep3.Text = "Wednesday" + ' + 'Keep2 + ' + Me.Keep2.AutoSize = True + Me.Keep2.Enabled = False + Me.Keep2.Location = New System.Drawing.Point(293, 89) + Me.Keep2.Name = "Keep2" + Me.Keep2.Size = New System.Drawing.Size(48, 13) + Me.Keep2.TabIndex = 23 + Me.Keep2.Text = "Tuesday" + ' + 'Keep1 + ' + Me.Keep1.AutoSize = True + Me.Keep1.Enabled = False + Me.Keep1.Location = New System.Drawing.Point(293, 57) + Me.Keep1.Name = "Keep1" + Me.Keep1.Size = New System.Drawing.Size(49, 13) + Me.Keep1.TabIndex = 24 + Me.Keep1.Text = "Monday" + ' + 'Keep4 + ' + Me.Keep4.AutoSize = True + Me.Keep4.Enabled = False + Me.Keep4.Location = New System.Drawing.Point(293, 153) + Me.Keep4.Name = "Keep4" + Me.Keep4.Size = New System.Drawing.Size(53, 13) + Me.Keep4.TabIndex = 25 + Me.Keep4.Text = "Thursday" + ' + 'Keep7 + ' + Me.Keep7.AutoSize = True + Me.Keep7.Enabled = False + Me.Keep7.Location = New System.Drawing.Point(293, 249) + Me.Keep7.Name = "Keep7" + Me.Keep7.Size = New System.Drawing.Size(45, 13) + Me.Keep7.TabIndex = 26 + Me.Keep7.Text = "Sunday" + ' + 'Keep6 + ' + Me.Keep6.AutoSize = True + Me.Keep6.Enabled = False + Me.Keep6.Location = New System.Drawing.Point(293, 217) + Me.Keep6.Name = "Keep6" + Me.Keep6.Size = New System.Drawing.Size(52, 13) + Me.Keep6.TabIndex = 27 + Me.Keep6.Text = "Saturday" + ' + 'Keep5 + ' + Me.Keep5.AutoSize = True + Me.Keep5.Enabled = False + Me.Keep5.Location = New System.Drawing.Point(293, 185) + Me.Keep5.Name = "Keep5" + Me.Keep5.Size = New System.Drawing.Size(38, 13) + Me.Keep5.TabIndex = 28 + Me.Keep5.Text = "Friday" + ' + 'FormBabySitterID + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.ClientSize = New System.Drawing.Size(544, 381) + Me.Controls.Add(Me.Keep1) + Me.Controls.Add(Me.Keep2) + Me.Controls.Add(Me.Keep3) + Me.Controls.Add(Me.Keep4) + Me.Controls.Add(Me.Keep5) + Me.Controls.Add(Me.Keep6) + Me.Controls.Add(Me.Keep7) + Me.Controls.Add(Me.Label5) + Me.Controls.Add(Me.Label4) + Me.Controls.Add(Me.TBPhone2) + Me.Controls.Add(Me.TBPhone1) + Me.Controls.Add(Me.LabelPhone2) + Me.Controls.Add(Me.LabelPhone1) + Me.Controls.Add(Me.LabelAddress) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MinimumSize = New System.Drawing.Size(550, 410) + Me.Name = "FormBabySitterID" + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "BabySitter ID" + Me.Controls.SetChildIndex(Me.ButtonEdit, 0) + Me.Controls.SetChildIndex(Me.ButtonClose, 0) + Me.Controls.SetChildIndex(Me.TBFirstName, 0) + Me.Controls.SetChildIndex(Me.TBLastName, 0) + Me.Controls.SetChildIndex(Me.TBAddress, 0) + Me.Controls.SetChildIndex(Me.RBMale, 0) + Me.Controls.SetChildIndex(Me.RBFemale, 0) + Me.Controls.SetChildIndex(Me.LabelAddress, 0) + Me.Controls.SetChildIndex(Me.LabelPhone1, 0) + Me.Controls.SetChildIndex(Me.LabelPhone2, 0) + Me.Controls.SetChildIndex(Me.TBPhone1, 0) + Me.Controls.SetChildIndex(Me.TBPhone2, 0) + Me.Controls.SetChildIndex(Me.Label4, 0) + Me.Controls.SetChildIndex(Me.Label5, 0) + Me.Controls.SetChildIndex(Me.Keep7, 0) + Me.Controls.SetChildIndex(Me.Keep6, 0) + Me.Controls.SetChildIndex(Me.Keep5, 0) + Me.Controls.SetChildIndex(Me.Keep4, 0) + Me.Controls.SetChildIndex(Me.Keep3, 0) + Me.Controls.SetChildIndex(Me.Keep2, 0) + Me.Controls.SetChildIndex(Me.Keep1, 0) + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents LabelAddress As System.Windows.Forms.Label + Friend WithEvents LabelPhone1 As System.Windows.Forms.Label + Friend WithEvents LabelPhone2 As System.Windows.Forms.Label + Friend WithEvents TBPhone1 As System.Windows.Forms.TextBox + Friend WithEvents TBPhone2 As System.Windows.Forms.TextBox + Friend WithEvents Label4 As System.Windows.Forms.Label + Friend WithEvents Label5 As System.Windows.Forms.Label + Friend WithEvents Keep3 As System.Windows.Forms.Label + Friend WithEvents Keep2 As System.Windows.Forms.Label + Friend WithEvents Keep1 As System.Windows.Forms.Label + Friend WithEvents Keep4 As System.Windows.Forms.Label + Friend WithEvents Keep7 As System.Windows.Forms.Label + Friend WithEvents Keep6 As System.Windows.Forms.Label + Friend WithEvents Keep5 As System.Windows.Forms.Label + +End Class diff --git a/ApplicationCrèche 1/Forms/FormBabySitterID.resx b/ApplicationCrèche 1/Forms/FormBabySitterID.resx new file mode 100644 index 0000000..83b96cf --- /dev/null +++ b/ApplicationCrèche 1/Forms/FormBabySitterID.resx @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAEBAAAAEAIAB+AQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAAQAAAAEAgGAAAAH/P/YQAAAAlw + SFlzAAALEwAACxMBAJqcGAAAATBJREFUOI2dkz1Ow0AQRp+Do5QcgxZxAFquQMMB0nIBGpo0tJEQB0Di + EIgL0CPR0SChQBA4/tnMNxS7mCDHJMLSalce7/Ob2dkMGAA7QJZG3+NpGODu7gA5MARGaR78ARAQgDrN + LWD0cH/17jJwEcEeVdIaNxRKqsWcg6PJboKpNXAZe/uHPxvW2Msabm8uSabVdyQHBrjAnfFw0ut//nTC + 4qMipdnWKo+m8c/TcLrWINQNs+cZZtaJ5QBZ2jQeXvQanD0ek3kXnscUY2CTAb2ArQ2673+lsNEgnlx/ + CpsM+lPYsgbZmlgEyADHXSyb0PmoqQOSpePuAmTLBbKGt5dXQt0FSEZZlMgcYiF8FRCaYs7d9ZTis0RL + tS0d281xOZKQCVYuEsSWHPGP2+juAvgCwODN5kOjKQoAAAAASUVORK5CYII= + + + \ No newline at end of file diff --git a/ApplicationCrèche 1/Forms/FormBabySitterID.vb b/ApplicationCrèche 1/Forms/FormBabySitterID.vb new file mode 100644 index 0000000..0eddd5c --- /dev/null +++ b/ApplicationCrèche 1/Forms/FormBabySitterID.vb @@ -0,0 +1,242 @@ +Imports ApplicationCrèche_1.IDFormMode + +Public Class FormBabySitterID + ' ----- Attributes ----- + Private actualFormMode As IDFormMode + + ' ----- Initialisators ----- + Private Sub FormBabySitterID_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load + + End Sub + + Public Sub New(aFormMode As IDFormMode, Optional aBS As BabySitter = Nothing) + Console.WriteLine("FormBabySitterID : Begining of a new instance") + ' Cet appel est requis par le concepteur. + InitializeComponent() + + ' Ajoutez une initialisation quelconque après l'appel InitializeComponent(). + If aFormMode = CREATOR Or aBS Is Nothing Then + ChangeMode(CREATOR) + Else + ChangeMode(aFormMode, aBS) + End If + End Sub + + ' ----- Methodes ----- + Private Function getBSFromIntern() As BabySitter + Dim newBS As BabySitter = New BabySitter(Me.Tag) + newBS.firstname = TBFirstName.Text + newBS.lastname = TBLastName.Text + newBS.gender = RBMale.Checked + newBS.address = TBAddress.Text + newBS.phone1 = TBPhone1.Text + If Not String.IsNullOrEmpty(TBPhone2.Text) Then + newBS.phone2 = TBPhone2.Text + End If + + Return newBS + End Function + + Private Function updateBSFromExtern(aBS As BabySitter) As Boolean + If Not aBS Is Nothing Then + ' Fill up controls with all the data we have. + Me.TBFirstName.Text = aBS.firstname 'Firstname + Me.TBLastName.Text = aBS.lastname 'Lastname + If aBS.gender Then 'Gender + Me.RBMale.Checked = True + Else + Me.RBFemale.Checked = True + End If + Me.TBAddress.Text = aBS.address + Me.TBPhone1.Text = aBS.phone1 + Me.TBPhone2.Text = aBS.phone2 + Me.Tag = aBS.id + If Not aBS.meet1 Is Nothing Then + Dim child1 As Child = dbdata.getChildByMeetID(aBS.meet1.id) + updateMeet(child1) + End If + If Not aBS.meet2 Is Nothing Then + Dim child2 As Child = dbdata.getChildByMeetID(aBS.meet2.id) + updateMeet(child2) + End If + If Not aBS.meet3 Is Nothing Then + Dim child3 As Child = dbdata.getChildByMeetID(aBS.meet3.id) + updateMeet(child3) + End If + Return True + End If + Return False + End Function + + Private Sub updateMeet(aChild As Child) + + If aChild.meet.monday Then + Keep1.Enabled = aChild.meet.monday + Keep1.Text &= " : " & aChild.firstname & " " & aChild.lastname + End If + + If aChild.meet.tuesday Then + Keep2.Enabled = aChild.meet.tuesday + Keep2.Text &= " : " & aChild.firstname & " " & aChild.lastname + End If + + If aChild.meet.wednesday Then + Keep3.Enabled = aChild.meet.wednesday + Keep3.Text &= " : " & aChild.firstname & " " & aChild.lastname + End If + + If aChild.meet.thursday Then + Keep4.Enabled = aChild.meet.thursday + Keep4.Text &= " : " & aChild.firstname & " " & aChild.lastname + End If + + If aChild.meet.friday Then + Keep5.Enabled = aChild.meet.friday + Keep5.Text &= " : " & aChild.firstname & " " & aChild.lastname + End If + + If aChild.meet.saturday Then + Keep6.Enabled = aChild.meet.saturday + Keep6.Text &= " : " & aChild.firstname & " " & aChild.lastname + End If + + If aChild.meet.sunday Then + Keep7.Enabled = aChild.meet.sunday + Keep7.Text &= " : " & aChild.firstname & " " & aChild.lastname + End If + End Sub + + + Private Sub ChangeMode(aFormMode As IDFormMode, Optional aBS As BabySitter = Nothing) + updateBSFromExtern(aBS) + If aFormMode = IDFormMode.CREATOR Then ' CREATOR MODE + Me.actualFormMode = CREATOR + Console.WriteLine("FormBabySitterID : Switch to CREATOR Mode") + + 'Change of the main triggers labels + title + Me.Text = "New babysitter" + Me.ButtonClose.Text = "Cancel" + Me.ButtonEdit.Text = "Save" + Me.RBMale.Checked = True + Me.Tag = 0 + Me.ButtonEdit.Image = My.Resources.AddSheet2 + + ElseIf aFormMode = IDFormMode.VIEWER And Not aBS Is Nothing Then ' VIEW MODE + Me.actualFormMode = VIEWER + Console.WriteLine("FormBabySitterID : Switch to VIEWER Mode") + + 'We change the main triggers labels + title + Me.Text = aBS.firstname + " " + aBS.lastname + Me.ButtonClose.Text = "Close" + Me.ButtonEdit.Text = "Edit" + Me.ButtonEdit.Image = My.Resources.EditSheet2 + + 'Activate most important security aspect (not show a window that can mat a save somewhere else) + TBAddress.Enabled = False + TBFirstName.Enabled = False + TBLastName.Enabled = False + TBPhone1.Enabled = False + TBPhone2.Enabled = False + RBFemale.Enabled = False + RBMale.Enabled = False + + ElseIf aFormMode = IDFormMode.EDITOR Then ' EDITOR MODE WITH THE CURRENT BS + Console.WriteLine("FormBabySitterID : Switch to Editor Mode") + Me.actualFormMode = EDITOR + + 'We change the main triggers labels + title + Me.Text = Me.TBFirstName.Text + " " + Me.TBLastName.Text + " (Edit)" + Me.ButtonClose.Text = "Cancel" + Me.ButtonEdit.Text = "Update" + Me.ButtonEdit.Image = My.Resources.ValidedSheet + + 'Turn off anti edit security + TBAddress.Enabled = True + TBFirstName.Enabled = True + TBLastName.Enabled = True + TBPhone1.Enabled = True + TBPhone2.Enabled = True + RBFemale.Enabled = True + RBMale.Enabled = True + + Else + Console.WriteLine("FormChildId : No correct mode has been found.") + End If + + End Sub + + ' ----- Handles and Listeners ----- + Protected Overrides Sub ButtonEdit_Click(sender As System.Object, e As System.EventArgs) + Dim Validated As Boolean = True + If Me.actualFormMode = VIEWER Then 'EDIT' + Me.ChangeMode(EDITOR) + ElseIf Me.actualFormMode = CREATOR Then 'SAVE' + ' Error Provider + If String.IsNullOrEmpty(TBFirstName.Text) Then + ErrorProvider1.SetError(TBFirstName, "The first name field could not be empty." & vbNewLine & "Please fill this field.") + Validated = False + End If + If String.IsNullOrEmpty(TBLastName.Text) Then + ErrorProvider1.SetError(TBLastName, "The last name field could not be empty." & vbNewLine & "Please fill this field.") + Validated = False + End If + If String.IsNullOrEmpty(TBPhone1.Text) Then + ErrorProvider1.SetError(TBPhone1, "At least on phone number is required." & vbNewLine & "Please put a phone number here.") + Validated = False + End If + If String.IsNullOrEmpty(TBAddress.Text) Then + ErrorProvider1.SetError(LabelAddress, "The address field could not be empty." & vbNewLine & "Please fill this field.") + Validated = False + End If + + If Not Validated Then + Exit Sub + End If + + 'Validation + Dim aBS As BabySitter = getBSFromIntern() + dbdata.addBabysitter(aBS) + Me.DialogResult = Windows.Forms.DialogResult.OK + Me.Hide() + + ElseIf Me.actualFormMode = EDITOR Then 'UPDATE' + ' Error Provider + If String.IsNullOrEmpty(TBFirstName.Text) Then + ErrorProvider1.SetError(TBFirstName, "The first name field could not be empty." & vbNewLine & "Please fill this field.") + Validated = False + End If + If String.IsNullOrEmpty(TBLastName.Text) Then + ErrorProvider1.SetError(TBLastName, "The last name field could not be empty." & vbNewLine & "Please fill this field.") + Validated = False + End If + If String.IsNullOrEmpty(TBPhone1.Text) Then + ErrorProvider1.SetError(TBPhone1, "At least on phone number is required." & vbNewLine & "Please put a phone number here.") + Validated = False + End If + If String.IsNullOrEmpty(TBAddress.Text) Then + ErrorProvider1.SetError(LabelAddress, "The address field could not be empty." & vbNewLine & "Please fill this field.") + Validated = False + End If + + + If Not Validated Then + Exit Sub + End If + + + 'Validation + Dim aBS As BabySitter = getBSFromIntern() + dbdata.editBabysitter(aBS) + Me.DialogResult = Windows.Forms.DialogResult.OK + Me.Hide() + + End If + End Sub + + Private Sub ButtonClose_Click_1(sender As System.Object, e As System.EventArgs) Handles ButtonClose.Click + Console.WriteLine("FormBabySitterID : Closing instance") + Me.Close() + Me.Finalize() + End Sub + +End Class diff --git a/ApplicationCrèche 1/Forms/FormChildID.Designer.vb b/ApplicationCrèche 1/Forms/FormChildID.Designer.vb new file mode 100644 index 0000000..c4f3fd4 --- /dev/null +++ b/ApplicationCrèche 1/Forms/FormChildID.Designer.vb @@ -0,0 +1,350 @@ + _ +Partial Class FormChildID + Inherits ApplicationCrèche_1.FormID + + 'Form remplace la méthode Dispose pour nettoyer la liste des composants. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + MyBase.Dispose(disposing) + End Sub + + 'Requise par le Concepteur Windows Form + Private components As System.ComponentModel.IContainer + + 'REMARQUE : la procédure suivante est requise par le Concepteur Windows Form + 'Elle peut être modifiée à l'aide du Concepteur Windows Form. + 'Ne la modifiez pas à l'aide de l'éditeur de code. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(FormChildID)) + Me.GroupBox2 = New System.Windows.Forms.GroupBox() + Me.LabelBS = New System.Windows.Forms.LinkLabel() + Me.ButtonBS = New System.Windows.Forms.Button() + Me.CBSunday = New System.Windows.Forms.CheckBox() + Me.CBSaturday = New System.Windows.Forms.CheckBox() + Me.CBFriday = New System.Windows.Forms.CheckBox() + Me.CBThursday = New System.Windows.Forms.CheckBox() + Me.CBWednesday = New System.Windows.Forms.CheckBox() + Me.CBTuesday = New System.Windows.Forms.CheckBox() + Me.CBMonday = New System.Windows.Forms.CheckBox() + Me.ButtonParent1 = New System.Windows.Forms.Button() + Me.ButtonParent2 = New System.Windows.Forms.Button() + Me.LabelAddress = New System.Windows.Forms.Label() + Me.LabelIdentity = New System.Windows.Forms.Label() + Me.LabelPlanning = New System.Windows.Forms.Label() + Me.LabelAge = New System.Windows.Forms.Label() + Me.DTPBord = New System.Windows.Forms.DateTimePicker() + Me.LabelBornDate = New System.Windows.Forms.Label() + Me.LabelParent1 = New System.Windows.Forms.LinkLabel() + Me.LabelParent2 = New System.Windows.Forms.LinkLabel() + Me.GroupBox2.SuspendLayout() + Me.SuspendLayout() + ' + 'ButtonEdit + ' + Me.ButtonEdit.Image = Global.ApplicationCrèche_1.My.Resources.Resources.EditSheet2 + Me.ButtonEdit.TabIndex = 11 + Me.ButtonEdit.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText + ' + 'ButtonClose + ' + Me.ButtonClose.TabIndex = 12 + ' + 'TBAddress + ' + Me.TBAddress.TabIndex = 5 + ' + 'GroupBox2 + ' + Me.GroupBox2.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.GroupBox2.Controls.Add(Me.LabelBS) + Me.GroupBox2.Controls.Add(Me.ButtonBS) + Me.GroupBox2.Controls.Add(Me.CBSunday) + Me.GroupBox2.Controls.Add(Me.CBSaturday) + Me.GroupBox2.Controls.Add(Me.CBFriday) + Me.GroupBox2.Controls.Add(Me.CBThursday) + Me.GroupBox2.Controls.Add(Me.CBWednesday) + Me.GroupBox2.Controls.Add(Me.CBTuesday) + Me.GroupBox2.Controls.Add(Me.CBMonday) + Me.GroupBox2.Location = New System.Drawing.Point(280, 46) + Me.GroupBox2.Name = "GroupBox2" + Me.GroupBox2.Size = New System.Drawing.Size(252, 223) + Me.GroupBox2.TabIndex = 10 + Me.GroupBox2.TabStop = False + Me.GroupBox2.Text = "Day of week" + ' + 'LabelBS + ' + Me.LabelBS.ActiveLinkColor = System.Drawing.SystemColors.Highlight + Me.LabelBS.DisabledLinkColor = System.Drawing.Color.Black + Me.LabelBS.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline + Me.LabelBS.LinkColor = System.Drawing.SystemColors.HotTrack + Me.LabelBS.Location = New System.Drawing.Point(6, 139) + Me.LabelBS.Name = "LabelBS" + Me.LabelBS.Size = New System.Drawing.Size(240, 37) + Me.LabelBS.TabIndex = 7 + Me.LabelBS.TabStop = True + Me.LabelBS.Text = "Select a babysitter below" + Me.LabelBS.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'ButtonBS + ' + Me.ButtonBS.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonBS.Image = Global.ApplicationCrèche_1.My.Resources.Resources.OpenFolder2 + Me.ButtonBS.Location = New System.Drawing.Point(63, 186) + Me.ButtonBS.Name = "ButtonBS" + Me.ButtonBS.Size = New System.Drawing.Size(126, 23) + Me.ButtonBS.TabIndex = 8 + Me.ButtonBS.Text = "Browse..." + Me.ButtonBS.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText + Me.ButtonBS.UseVisualStyleBackColor = True + ' + 'CBSunday + ' + Me.CBSunday.AutoSize = True + Me.CBSunday.Location = New System.Drawing.Point(137, 79) + Me.CBSunday.Name = "CBSunday" + Me.CBSunday.Size = New System.Drawing.Size(64, 17) + Me.CBSunday.TabIndex = 5 + Me.CBSunday.Text = "Sunday" + Me.CBSunday.UseVisualStyleBackColor = True + ' + 'CBSaturday + ' + Me.CBSaturday.AutoSize = True + Me.CBSaturday.Location = New System.Drawing.Point(137, 50) + Me.CBSaturday.Name = "CBSaturday" + Me.CBSaturday.Size = New System.Drawing.Size(71, 17) + Me.CBSaturday.TabIndex = 3 + Me.CBSaturday.Text = "Saturday" + Me.CBSaturday.UseVisualStyleBackColor = True + ' + 'CBFriday + ' + Me.CBFriday.AutoSize = True + Me.CBFriday.Location = New System.Drawing.Point(137, 21) + Me.CBFriday.Name = "CBFriday" + Me.CBFriday.Size = New System.Drawing.Size(57, 17) + Me.CBFriday.TabIndex = 1 + Me.CBFriday.Text = "Friday" + Me.CBFriday.UseVisualStyleBackColor = True + ' + 'CBThursday + ' + Me.CBThursday.AutoSize = True + Me.CBThursday.Location = New System.Drawing.Point(6, 108) + Me.CBThursday.Name = "CBThursday" + Me.CBThursday.Size = New System.Drawing.Size(72, 17) + Me.CBThursday.TabIndex = 6 + Me.CBThursday.Text = "Thursday" + Me.CBThursday.UseVisualStyleBackColor = True + ' + 'CBWednesday + ' + Me.CBWednesday.AutoSize = True + Me.CBWednesday.Location = New System.Drawing.Point(6, 79) + Me.CBWednesday.Name = "CBWednesday" + Me.CBWednesday.Size = New System.Drawing.Size(86, 17) + Me.CBWednesday.TabIndex = 4 + Me.CBWednesday.Text = "Wednesday" + Me.CBWednesday.UseVisualStyleBackColor = True + ' + 'CBTuesday + ' + Me.CBTuesday.AutoSize = True + Me.CBTuesday.Location = New System.Drawing.Point(6, 50) + Me.CBTuesday.Name = "CBTuesday" + Me.CBTuesday.Size = New System.Drawing.Size(67, 17) + Me.CBTuesday.TabIndex = 2 + Me.CBTuesday.Text = "Tuesday" + Me.CBTuesday.UseVisualStyleBackColor = True + ' + 'CBMonday + ' + Me.CBMonday.AutoSize = True + Me.CBMonday.Location = New System.Drawing.Point(6, 21) + Me.CBMonday.Name = "CBMonday" + Me.CBMonday.Size = New System.Drawing.Size(68, 17) + Me.CBMonday.TabIndex = 0 + Me.CBMonday.Text = "Monday" + Me.CBMonday.UseVisualStyleBackColor = True + ' + 'ButtonParent1 + ' + Me.ButtonParent1.Image = Global.ApplicationCrèche_1.My.Resources.Resources.OpenFolder2 + Me.ButtonParent1.Location = New System.Drawing.Point(12, 282) + Me.ButtonParent1.Name = "ButtonParent1" + Me.ButtonParent1.Size = New System.Drawing.Size(125, 23) + Me.ButtonParent1.TabIndex = 6 + Me.ButtonParent1.Text = "Browse parent 1..." + Me.ButtonParent1.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText + Me.ButtonParent1.UseVisualStyleBackColor = True + ' + 'ButtonParent2 + ' + Me.ButtonParent2.Image = Global.ApplicationCrèche_1.My.Resources.Resources.OpenFolder2 + Me.ButtonParent2.Location = New System.Drawing.Point(12, 311) + Me.ButtonParent2.Name = "ButtonParent2" + Me.ButtonParent2.Size = New System.Drawing.Size(125, 23) + Me.ButtonParent2.TabIndex = 8 + Me.ButtonParent2.Text = "Browse parent 2..." + Me.ButtonParent2.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText + Me.ButtonParent2.UseVisualStyleBackColor = True + ' + 'LabelAddress + ' + Me.LabelAddress.AutoSize = True + Me.LabelAddress.Location = New System.Drawing.Point(12, 166) + Me.LabelAddress.Name = "LabelAddress" + Me.LabelAddress.Size = New System.Drawing.Size(107, 13) + Me.LabelAddress.TabIndex = 14 + Me.LabelAddress.Text = "Adress of childcare:" + ' + 'LabelIdentity + ' + Me.LabelIdentity.AutoSize = True + Me.LabelIdentity.Font = New System.Drawing.Font("Segoe UI", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.LabelIdentity.Location = New System.Drawing.Point(12, 9) + Me.LabelIdentity.Name = "LabelIdentity" + Me.LabelIdentity.Size = New System.Drawing.Size(83, 30) + Me.LabelIdentity.TabIndex = 15 + Me.LabelIdentity.Text = "Identity" + ' + 'LabelPlanning + ' + Me.LabelPlanning.AutoSize = True + Me.LabelPlanning.Font = New System.Drawing.Font("Segoe UI", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.LabelPlanning.Location = New System.Drawing.Point(275, 9) + Me.LabelPlanning.Name = "LabelPlanning" + Me.LabelPlanning.Size = New System.Drawing.Size(94, 30) + Me.LabelPlanning.TabIndex = 16 + Me.LabelPlanning.Text = "Planning" + ' + 'LabelAge + ' + Me.LabelAge.AutoSize = True + Me.LabelAge.Location = New System.Drawing.Point(197, 140) + Me.LabelAge.Name = "LabelAge" + Me.LabelAge.Size = New System.Drawing.Size(54, 13) + Me.LabelAge.TabIndex = 5 + Me.LabelAge.Text = "AgeLabel" + ' + 'DTPBord + ' + Me.DTPBord.Format = System.Windows.Forms.DateTimePickerFormat.[Short] + Me.DTPBord.Location = New System.Drawing.Point(80, 136) + Me.DTPBord.Name = "DTPBord" + Me.DTPBord.Size = New System.Drawing.Size(96, 22) + Me.DTPBord.TabIndex = 4 + ' + 'LabelBornDate + ' + Me.LabelBornDate.AutoSize = True + Me.LabelBornDate.Location = New System.Drawing.Point(12, 140) + Me.LabelBornDate.Name = "LabelBornDate" + Me.LabelBornDate.Size = New System.Drawing.Size(58, 13) + Me.LabelBornDate.TabIndex = 17 + Me.LabelBornDate.Text = "Borndate:" + ' + 'LabelParent1 + ' + Me.LabelParent1.ActiveLinkColor = System.Drawing.SystemColors.Highlight + Me.LabelParent1.DisabledLinkColor = System.Drawing.Color.Black + Me.LabelParent1.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.LabelParent1.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline + Me.LabelParent1.LinkColor = System.Drawing.SystemColors.HotTrack + Me.LabelParent1.Location = New System.Drawing.Point(143, 282) + Me.LabelParent1.Name = "LabelParent1" + Me.LabelParent1.Size = New System.Drawing.Size(389, 23) + Me.LabelParent1.TabIndex = 7 + Me.LabelParent1.TabStop = True + Me.LabelParent1.Text = "subscrib a new parent" + Me.LabelParent1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.LabelParent1.VisitedLinkColor = System.Drawing.SystemColors.HotTrack + ' + 'LabelParent2 + ' + Me.LabelParent2.ActiveLinkColor = System.Drawing.SystemColors.Highlight + Me.LabelParent2.DisabledLinkColor = System.Drawing.Color.Black + Me.LabelParent2.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline + Me.LabelParent2.LinkColor = System.Drawing.SystemColors.HotTrack + Me.LabelParent2.Location = New System.Drawing.Point(143, 311) + Me.LabelParent2.Name = "LabelParent2" + Me.LabelParent2.Size = New System.Drawing.Size(389, 23) + Me.LabelParent2.TabIndex = 9 + Me.LabelParent2.TabStop = True + Me.LabelParent2.Text = "subscrib a new parent" + Me.LabelParent2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.LabelParent2.VisitedLinkColor = System.Drawing.SystemColors.HotTrack + ' + 'FormChildID + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.ClientSize = New System.Drawing.Size(544, 381) + Me.Controls.Add(Me.LabelParent2) + Me.Controls.Add(Me.LabelParent1) + Me.Controls.Add(Me.DTPBord) + Me.Controls.Add(Me.LabelAge) + Me.Controls.Add(Me.LabelPlanning) + Me.Controls.Add(Me.LabelIdentity) + Me.Controls.Add(Me.LabelAddress) + Me.Controls.Add(Me.LabelBornDate) + Me.Controls.Add(Me.ButtonParent2) + Me.Controls.Add(Me.ButtonParent1) + Me.Controls.Add(Me.GroupBox2) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MinimumSize = New System.Drawing.Size(550, 410) + Me.Name = "FormChildID" + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Child ID" + Me.Controls.SetChildIndex(Me.ButtonEdit, 0) + Me.Controls.SetChildIndex(Me.ButtonClose, 0) + Me.Controls.SetChildIndex(Me.TBFirstName, 0) + Me.Controls.SetChildIndex(Me.TBLastName, 0) + Me.Controls.SetChildIndex(Me.TBAddress, 0) + Me.Controls.SetChildIndex(Me.RBMale, 0) + Me.Controls.SetChildIndex(Me.RBFemale, 0) + Me.Controls.SetChildIndex(Me.GroupBox2, 0) + Me.Controls.SetChildIndex(Me.ButtonParent1, 0) + Me.Controls.SetChildIndex(Me.ButtonParent2, 0) + Me.Controls.SetChildIndex(Me.LabelBornDate, 0) + Me.Controls.SetChildIndex(Me.LabelAddress, 0) + Me.Controls.SetChildIndex(Me.LabelIdentity, 0) + Me.Controls.SetChildIndex(Me.LabelPlanning, 0) + Me.Controls.SetChildIndex(Me.LabelAge, 0) + Me.Controls.SetChildIndex(Me.DTPBord, 0) + Me.Controls.SetChildIndex(Me.LabelParent1, 0) + Me.Controls.SetChildIndex(Me.LabelParent2, 0) + Me.GroupBox2.ResumeLayout(False) + Me.GroupBox2.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents GroupBox2 As System.Windows.Forms.GroupBox + Friend WithEvents CBMonday As System.Windows.Forms.CheckBox + Friend WithEvents CBSunday As System.Windows.Forms.CheckBox + Friend WithEvents CBSaturday As System.Windows.Forms.CheckBox + Friend WithEvents CBFriday As System.Windows.Forms.CheckBox + Friend WithEvents CBThursday As System.Windows.Forms.CheckBox + Friend WithEvents CBWednesday As System.Windows.Forms.CheckBox + Friend WithEvents CBTuesday As System.Windows.Forms.CheckBox + Friend WithEvents ButtonParent1 As System.Windows.Forms.Button + Friend WithEvents ButtonParent2 As System.Windows.Forms.Button + Friend WithEvents ButtonBS As System.Windows.Forms.Button + Friend WithEvents LabelAddress As System.Windows.Forms.Label + Friend WithEvents LabelIdentity As System.Windows.Forms.Label + Friend WithEvents LabelPlanning As System.Windows.Forms.Label + Friend WithEvents LabelAge As System.Windows.Forms.Label + Friend WithEvents DTPBord As System.Windows.Forms.DateTimePicker + Friend WithEvents LabelBornDate As System.Windows.Forms.Label + Friend WithEvents LabelParent1 As System.Windows.Forms.LinkLabel + Friend WithEvents LabelParent2 As System.Windows.Forms.LinkLabel + Friend WithEvents LabelBS As System.Windows.Forms.LinkLabel + +End Class diff --git a/ApplicationCrèche 1/Forms/FormChildID.resx b/ApplicationCrèche 1/Forms/FormChildID.resx new file mode 100644 index 0000000..83b96cf --- /dev/null +++ b/ApplicationCrèche 1/Forms/FormChildID.resx @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAEBAAAAEAIAB+AQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAAQAAAAEAgGAAAAH/P/YQAAAAlw + SFlzAAALEwAACxMBAJqcGAAAATBJREFUOI2dkz1Ow0AQRp+Do5QcgxZxAFquQMMB0nIBGpo0tJEQB0Di + EIgL0CPR0SChQBA4/tnMNxS7mCDHJMLSalce7/Ob2dkMGAA7QJZG3+NpGODu7gA5MARGaR78ARAQgDrN + LWD0cH/17jJwEcEeVdIaNxRKqsWcg6PJboKpNXAZe/uHPxvW2Msabm8uSabVdyQHBrjAnfFw0ut//nTC + 4qMipdnWKo+m8c/TcLrWINQNs+cZZtaJ5QBZ2jQeXvQanD0ek3kXnscUY2CTAb2ArQ2673+lsNEgnlx/ + CpsM+lPYsgbZmlgEyADHXSyb0PmoqQOSpePuAmTLBbKGt5dXQt0FSEZZlMgcYiF8FRCaYs7d9ZTis0RL + tS0d281xOZKQCVYuEsSWHPGP2+juAvgCwODN5kOjKQoAAAAASUVORK5CYII= + + + \ No newline at end of file diff --git a/ApplicationCrèche 1/Forms/FormChildID.vb b/ApplicationCrèche 1/Forms/FormChildID.vb new file mode 100644 index 0000000..f6647ef --- /dev/null +++ b/ApplicationCrèche 1/Forms/FormChildID.vb @@ -0,0 +1,517 @@ +Imports ApplicationCrèche_1.IDFormMode + +Public Class FormChildID + Inherits FormID + ' ----- Private Attributes ----- + Private actualFormMode As IDFormMode + Private meetID As Integer + Private oldBSID As Integer + Private newBSID As Integer + + ' ----- Initialisators ----- + + Private Sub FormChildID_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load + + End Sub + + Public Sub New(aFormMode As IDFormMode, Optional aChild As Child = Nothing) + Console.WriteLine("FormChildID : Begining of a new instance") + ' Cet appel est requis par le concepteur. + InitializeComponent() + + ' Ajoutez une initialisation quelconque après l'appel InitializeComponent(). + If aFormMode = CREATOR Or aChild Is Nothing Then + ChangeMode(CREATOR) + oldBSID = 0 + meetID = 0 + Else + ChangeMode(aFormMode, aChild) + If Not aChild.meet Is Nothing Then + oldBSID = dbdata.getBabysitterByMeetID(aChild.meet.id).id + End If + End If + End Sub + + ' ----- Methods ------ + Private Function refreshBS(aBS As BabySitter) + If Not aBS Is Nothing Then + Me.LabelBS.Text = aBS.firstname + " " + aBS.lastname + " | " + aBS.phone1 + newBSID = aBS.id + Return True + Else + LabelBS.Text = "" + newBSID = Nothing + End If + Return False + End Function + + Public Function refreshParent1(aParent As Parent) As Boolean + If Not aParent Is Nothing Then + Me.LabelParent1.Text = aParent.firstname + " " + aParent.lastname + " | " + aParent.phone + Me.LabelParent1.Tag = aParent.id + Return True + Else + Me.LabelParent2.Tag = 0 + Me.LabelParent2.Text = "subscrib a new parent" + End If + Return False + End Function + + Public Function refreshParent2(aParent As Parent) As Boolean + If Not aParent Is Nothing Then + Me.LabelParent2.Text = aParent.firstname + " " + aParent.lastname + " | " + aParent.phone + Me.LabelParent2.Tag = aParent.id + Return True + Else + Me.LabelParent2.Tag = 0 + Me.LabelParent2.Text = "subscrib a new parent" + End If + Return False + End Function + + Private Sub setupCheckboxes(aMeet As Meet) + CBFriday.Checked = aMeet.friday + CBMonday.Checked = aMeet.monday + CBWednesday.Checked = aMeet.wednesday + CBSaturday.Checked = aMeet.saturday + CBSunday.Checked = aMeet.sunday + CBThursday.Checked = aMeet.thursday + CBTuesday.Checked = aMeet.tuesday + meetID = aMeet.id + End Sub + + ''' + ''' Get the meet from the form. If the meet is loaded from the database, his ID is added. Else the meet have an id = to 0 + ''' + ''' The current meet + ''' The meet number is based on the old recorded BabySitter ID (oldBSID) + Private Function getMeet() As Meet + Dim aMeet As Meet = Nothing + If oldBSID = 0 Then + aMeet = New Meet(0) + Else + aMeet = New Meet(CInt(meetID)) + End If + aMeet.monday = CBMonday.Checked + aMeet.tuesday = CBTuesday.Checked + aMeet.wednesday = CBWednesday.Checked + aMeet.thursday = CBThursday.Checked + aMeet.friday = CBFriday.Checked + aMeet.saturday = CBSaturday.Checked + aMeet.sunday = CBSunday.Checked + Return aMeet + End Function + + ''' + ''' Get the Child with all informations that the user have filled up. + ''' + ''' a Child with the ID 0 if it is a new child or this current ID. + ''' + Public Function getChildFromIntern() As Child + Dim newChild As Child = New Child(Me.Tag) + newChild.firstname = TBFirstName.Text + newChild.lastname = TBLastName.Text + newChild.gender = RBMale.Checked + newChild.address = TBAddress.Text + newChild.bornDate = DTPBord.Value + If Not LabelParent1.Tag Is Nothing Then + newChild.parent1 = dbdata.getParentByID(LabelParent1.Tag) + End If + If Not LabelParent2.Tag Is Nothing Then + newChild.parent2 = dbdata.getParentByID(LabelParent2.Tag) + End If + + newChild.meet = getMeet() + + Return (newChild) + End Function + + ''' + ''' Fill all controls with information given as a Child + ''' + ''' The child to load + ''' false is the parameter is nothing else true. + ''' + Private Function updateChildFromExtern(aChild As Child) As Boolean + ' Fill up controls with all the data we have. + If Not aChild Is Nothing Then + Me.Tag = aChild.id + 'Me.Text = aChild.firstname + " " + aChild.lastname + Me.TBFirstName.Text = aChild.firstname 'Firstname + Me.TBLastName.Text = aChild.lastname 'Lastname + If aChild.gender Then 'Gender + Me.RBMale.Checked = True + Else + Me.RBFemale.Checked = True + End If + Me.DTPBord.Value = aChild.bornDate 'BornDate + Me.LabelAge.Text = DateDiff(DateInterval.Year, aChild.bornDate, Date.Now).ToString + " year(s) old" 'Age + Me.TBAddress.Text = aChild.address 'Address + If Not aChild.parent1 Is Nothing Then 'Parent1 Info + Me.LabelParent1.Text = aChild.parent1.firstname + " " + aChild.parent1.lastname + " | " + aChild.parent1.phone + Me.LabelParent1.Tag = aChild.parent1.id + Else + Me.LabelParent1.Text = "subscrib a new parent" + End If + If Not aChild.parent2 Is Nothing Then 'Parent2 Info + Me.LabelParent2.Text = aChild.parent2.firstname + " " + aChild.parent2.lastname + " | " + aChild.parent2.phone + Me.LabelParent2.Tag = aChild.parent2.id + Else + Me.LabelParent2.Text = "subscrib a new parent" + End If + 'Title + If actualFormMode = VIEWER Then + Me.Text = aChild.firstname + " " + aChild.lastname + Else + Me.Text = aChild.firstname + " " + aChild.lastname + " (Edit)" + End If + ' A babysitter is loader only if the child have a meet + If Not aChild.meet Is Nothing Then + Dim aBS As BabySitter = dbdata.getBabysitterByMeetID(aChild.meet.id) + refreshBS(aBS) 'The babysitter id is stored with data + setupCheckboxes(aChild.meet) 'The meet id is stored with data + End If + + Return True + End If + Return False + End Function + + ''' + ''' Polyvalence Mechanism. Change the 'MODE' of the windows + ''' + ''' The new mode like EDITOR or CREATOR + ''' Some new info about the child. + ''' + Private Sub ChangeMode(aFormMode As IDFormMode, Optional aChild As Child = Nothing) + If aFormMode = IDFormMode.CREATOR Then ' CREATOR MODE + Me.actualFormMode = CREATOR + Console.WriteLine("FormChildID : Switch to CREATOR Mode") + + 'Change of the main triggers labels + title + 'Me.Icon + Me.Text = "New child" + Me.ButtonClose.Text = "Cancel" + Me.ButtonEdit.Text = "Save" + Me.RBMale.Checked = True + Me.LabelAge.Text = "" + Me.ButtonEdit.Image = My.Resources.AddSheet2 + + Me.Tag = 0 + ElseIf aFormMode = IDFormMode.VIEWER And Not aChild Is Nothing Then ' VIEW MODE + Me.actualFormMode = VIEWER + Console.WriteLine("FormChildID : Switch to VIEWER Mode") + + 'We change the main triggers labels + title + Me.ButtonClose.Text = "Close" + Me.ButtonEdit.Text = "Edit" + Me.ButtonEdit.Image = My.Resources.EditSheet2 + + 'Activate most important security aspect (not show a window that can mat a save somewhere else) + ButtonParent1.Enabled = False + ButtonParent2.Enabled = False + ButtonBS.Enabled = False + LabelParent1.Enabled = False + LabelParent2.Enabled = False + TBFirstName.Enabled = False + TBLastName.Enabled = False + DTPBord.Enabled = False + RBFemale.Enabled = False + RBMale.Enabled = False + TBAddress.Enabled = False + CBFriday.Enabled = False + CBMonday.Enabled = False + CBSaturday.Enabled = False + CBSunday.Enabled = False + CBThursday.Enabled = False + CBTuesday.Enabled = False + CBWednesday.Enabled = False + LabelBS.Enabled = False + ButtonBS.Enabled = False + + ElseIf aFormMode = IDFormMode.EDITOR Then ' EDITOR MODE WITH THE CURRENT CHILD + Console.WriteLine("FormChildID : Switch to Editor Mode") + Me.actualFormMode = EDITOR + + ''We change the main triggers labels + title + Me.ButtonClose.Text = "Cancel" + Me.ButtonEdit.Text = "Update" + Me.ButtonEdit.Image = My.Resources.ValidedSheet + Me.Text = TBFirstName.Text + " " + TBLastName.Text + " (Edit)" + + 'Turn off anti edit security + ButtonParent1.Enabled = True + ButtonParent2.Enabled = True + ButtonBS.Enabled = True + LabelParent1.Enabled = True + LabelParent2.Enabled = True + TBFirstName.Enabled = True + TBLastName.Enabled = True + DTPBord.Enabled = True + RBFemale.Enabled = True + RBMale.Enabled = True + TBAddress.Enabled = True + CBFriday.Enabled = True + CBMonday.Enabled = True + CBSaturday.Enabled = True + CBSunday.Enabled = True + CBThursday.Enabled = True + CBTuesday.Enabled = True + CBWednesday.Enabled = True + LabelBS.Enabled = True + ButtonBS.Enabled = True + + Else + Console.WriteLine("FormChildId : No correct mode has been found.") + End If + ' Fill up controls with all the data we have. + updateChildFromExtern(aChild) + End Sub + + ' ----- Handles and Listerners ----- + 'Edit and click + Protected Overrides Sub ButtonEdit_Click(sender As System.Object, e As System.EventArgs) + Dim Validated As Boolean = True + If Me.actualFormMode = VIEWER Then 'EDIT' + Me.ChangeMode(EDITOR) + ElseIf Me.actualFormMode = CREATOR Then 'SAVE' + ' Error Provider + If String.IsNullOrEmpty(TBFirstName.Text) Then + ErrorProvider1.SetError(TBFirstName, "The first name field could not be empty." & vbNewLine & "Please fill this field.") + Validated = False + End If + If String.IsNullOrEmpty(TBLastName.Text) Then + ErrorProvider1.SetError(TBLastName, "The last name field could not be empty." & vbNewLine & "Please fill this field.") + Validated = False + End If + If Date.Compare(DTPBord.Value, Today) > 0 Then + ErrorProvider1.SetError(DTPBord, "The date of born is in the futur." & vbNewLine & "Please insert a valid born date.") + Validated = False + End If + 'If Date.Compare(Today, DTPBord.Value) = 0 Then + ' ErrorProvider1.SetError(DTPBord, "The date of born could not be today" & vbNewLine & "Please insert a born date in the past") + ' Validated = False + 'End If + If String.IsNullOrEmpty(TBAddress.Text) Then + ErrorProvider1.SetError(LabelAddress, "The address field could not be empty." & vbNewLine & "Please fill this field.") + Validated = False + End If + If (CBMonday.Checked = True Or + CBTuesday.Checked = True Or + CBWednesday.Checked = True Or + CBThursday.Checked = True Or + CBFriday.Checked = True Or + CBSunday.Checked = True Or + CBSunday.Checked = True) And + newBSID = 0 Then + + ErrorProvider1.SetError(ButtonBS, "There is no babysitter for the current planning" & vbNewLine & "Please select a baysitter on the list or uncheck all the days.") + Validated = False + End If + + If Not Validated Then + Exit Sub + End If + + ' Record + + + Dim aChild As Child = getChildFromIntern() ' We save the child on the database + Me.Tag = dbdata.addChild(aChild) ' The new ID of the child is stored in the Me.tag + If newBSID <> 0 Then + ' save of the child + meetID = dbdata.addMeet(aChild.meet, Me.Tag) + ' then update of the babysitter + dbdata.updateBabysitterMeets(meetID, newBSID, getFirstFreeMeetOf(newBSID)) + End If + + Me.DialogResult = Windows.Forms.DialogResult.OK + Me.Hide() + + ElseIf Me.actualFormMode = EDITOR Then 'UPDATE' + ' Error Provider + If String.IsNullOrEmpty(TBFirstName.Text) Then + ErrorProvider1.SetError(TBFirstName, "The first name field could not be empty." & vbNewLine & "Please fill this field.") + Validated = False + End If + If String.IsNullOrEmpty(TBLastName.Text) Then + ErrorProvider1.SetError(TBLastName, "The last name field could not be empty." & vbNewLine & "Please fill this field.") + Validated = False + End If + If Date.Compare(DTPBord.Value, Today) > 0 Then + ErrorProvider1.SetError(DTPBord, "The date of born is in the futur." & vbNewLine & "Please insert a valid born date.") + Validated = False + End If + 'If Date.Compare(Today, DTPBord.Value) = 0 Then + ' ErrorProvider1.SetError(DTPBord, "The date of born could not be today" & vbNewLine & "Please insert a born date in the past") + ' Validated = False + 'End If + If String.IsNullOrEmpty(TBAddress.Text) Then + ErrorProvider1.SetError(LabelAddress, "The address field could not be empty." & vbNewLine & "Please fill this field.") + Validated = False + End If + If (CBMonday.Checked = True Or + CBTuesday.Checked = True Or + CBWednesday.Checked = True Or + CBThursday.Checked = True Or + CBFriday.Checked = True Or + CBSunday.Checked = True Or + CBSunday.Checked = True) And + newBSID = 0 Then + + ErrorProvider1.SetError(ButtonBS, "There is no babysitter for the current planning" & vbNewLine & "Please select a baysitter on the list or uncheck all the days.") + Validated = False + End If + + If Not Validated Then + Exit Sub + End If + + ' Record + Dim aChild As Child = getChildFromIntern() + dbdata.editChild(aChild) 'Update of the child data + 'Case 1, there is no choosen BS + If newBSID <> oldBSID And newBSID = 0 Then + dbdata.updateBabysitterMeets(0, , , oldBSID, getFirstFreeMeetOf(oldBSID)) 'The babysitter gain a free meet space + dbdata.deleteMeet(meetID) ' No BS, no keep + + ElseIf newBSID = oldBSID And oldBSID <> 0 Then + 'Case 2 : The same BS is here + Dim aMeet As Meet = aChild.meet 'The meet could have change or not between the database and the form, no problem. The Id stay the same. + dbdata.editMeet(aMeet) + ' No neet to update the BS, because the meet ID stay the same. + ElseIf newBSID <> oldBSID And newBSID <> 0 And oldBSID <> 0 Then + ' Case 3 : There is a change between old BS and new BS + Dim aMeet As Meet = aChild.meet 'The meet have change between the database and the form but the Id stay the same. + dbdata.editMeet(aMeet) + dbdata.updateBabysitterMeets(meetID, newBSID, getFirstFreeMeetOf(newBSID), oldBSID, getFirstFreeMeetOf(oldBSID)) 'So we need to remove the id from the old BS and add it to the new BS + ElseIf newBSID <> 0 And oldBSID = 0 Then + ' Case 4 : add a new BS on a existing child + Dim aMeet As Meet = aChild.meet + meetID = dbdata.addMeet(aMeet, aChild.id) + Dim aBS As BabySitter = dbdata.getBabysitterByID(newBSID) + dbdata.updateBabysitterMeets(meetID, newBSID, getFirstFreeMeetOf(newBSID)) + End If + + + Me.DialogResult = Windows.Forms.DialogResult.OK + Me.Hide() + Else + 'Don't know how to go here... + Console.WriteLine("FormChildID : Is in standart mode !") + End If + End Sub + + 'Cancel + Protected Overrides Sub ButtonClose_Click(sender As System.Object, e As System.EventArgs) + Console.WriteLine("FormChildID : Closing instance") + Me.DialogResult = Windows.Forms.DialogResult.Cancel + Me.Hide() + End Sub + + ' Parents selector + Private Sub ButtonParent1_Click(sender As System.Object, e As System.EventArgs) Handles ButtonParent1.Click + Dim listofParentForm As FormList = New FormList(PersonType.Parent, ListFormMode.Selector) + Dim conclusion As DialogResult = listofParentForm.ShowDialog() + Console.WriteLine("Returned in : " + conclusion.ToString) + If (conclusion = Windows.Forms.DialogResult.OK) Then + Dim aParent As Parent = dbdata.getParentByID(listofParentForm.Tag) + Console.WriteLine("FormChildID : receving " + aParent.toString) + refreshParent1(aParent) + Else + If dbdata.getParentByID(listofParentForm.Tag) Is Nothing Then + refreshParent2(Nothing) + End If + End If + listofParentForm.Dispose() + End Sub + + Private Sub LabelParent1_LinkClicked(sender As System.Object, e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LabelParent1.LinkClicked + Dim aParentForm As FormParentID + If Me.LabelParent1.Tag <> 0 Then + Dim theParent As Parent = dbdata.getParentByID(Me.LabelParent1.Tag) + aParentForm = New FormParentID(EDITOR, theParent) + Else + aParentForm = New FormParentID(CREATOR) + End If + + Dim conclusion As DialogResult = aParentForm.ShowDialog() + If (conclusion = Windows.Forms.DialogResult.OK) Then + Dim aParent As Parent = dbdata.getParentByID(aParentForm.Tag) + Console.WriteLine("FormChildID : receving " + aParent.toString) + refreshParent1(aParent) + End If + aParentForm.Dispose() + End Sub + + Private Sub ButtonParent2_Click(sender As System.Object, e As System.EventArgs) Handles ButtonParent2.Click + Dim listofParentForm As FormList = New FormList(PersonType.Parent, ListFormMode.Selector) + Dim conclusion As DialogResult = listofParentForm.ShowDialog() + Console.WriteLine("Returned in : " + conclusion.ToString) + If (conclusion = Windows.Forms.DialogResult.OK) Then + Dim aParent As Parent = dbdata.getParentByID(listofParentForm.Tag) + Console.WriteLine("FormChildID : receving " + aParent.toString) + refreshParent2(aParent) + Else + If dbdata.getParentByID(listofParentForm.Tag) Is Nothing Then + refreshParent2(Nothing) + End If + End If + listofParentForm.Dispose() + End Sub + + Private Sub LabelParent2_LinkClicked(sender As System.Object, e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LabelParent2.LinkClicked + Dim aParentForm As FormParentID + If Me.LabelParent1.Tag <> 0 Then + Dim theParent As Parent = dbdata.getParentByID(Me.LabelParent2.Tag) + aParentForm = New FormParentID(EDITOR, theParent) + Else + aParentForm = New FormParentID(CREATOR) + End If + Dim conclusion As DialogResult = aParentForm.ShowDialog() + Console.WriteLine("Returned in : " + conclusion.ToString) + If (conclusion = Windows.Forms.DialogResult.OK) Then + Dim aParent As Parent = dbdata.getParentByID(aParentForm.Tag) + Console.WriteLine("FormChildID : receving " + aParent.toString) + refreshParent2(aParent) + End If + aParentForm.Dispose() + End Sub + + + Private Sub ButtonBS_Click(sender As System.Object, e As System.EventArgs) Handles ButtonBS.Click + Dim aMeet As Meet = getMeet() + + Dim listBD As FormList = New FormList(PersonType.BabySitter, ListFormMode.SelectFiltered, aMeet) + Dim conclusion As DialogResult = listBD.ShowDialog() + If conclusion = Windows.Forms.DialogResult.OK Then + Dim aBS As BabySitter = dbdata.getBabysitterByID(listBD.Tag) + Console.WriteLine("FormChildID : receving " + aBS.toString) + refreshBS(aBS) + End If + listBD.Dispose() + End Sub + + Private Sub LinkLabelBS_LinkClicked(sender As System.Object, e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LabelBS.LinkClicked + If newBSID <> 0 Then + Dim aBS As BabySitter = dbdata.getBabysitterByID(newBSID) + Dim bsForm As FormBabySitterID = New FormBabySitterID(VIEWER, aBS) + Dim conclusion As DialogResult = bsForm.ShowDialog() + End If + End Sub + + Private Sub DTPBord_ValueChanged(sender As System.Object, e As System.EventArgs) Handles DTPBord.ValueChanged + Me.LabelAge.Text = DateDiff(DateInterval.Year, DTPBord.Value, Date.Now).ToString + " year(s) old" 'Age + ErrorProvider1.SetError(DTPBord, "") + End Sub + + Private Sub CBWednesday_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CBMonday.CheckedChanged, CBTuesday.CheckedChanged, CBWednesday.CheckedChanged, CBThursday.CheckedChanged, CBFriday.CheckedChanged, CBSaturday.CheckedChanged, CBSunday.CheckedChanged + + If Me.Visible = True Then + 'On réintialise la babysitter + refreshBS(Nothing) + End If + ErrorProvider1.SetError(ButtonBS, "") + End Sub + +End Class diff --git a/ApplicationCrèche 1/Forms/FormID.Designer.vb b/ApplicationCrèche 1/Forms/FormID.Designer.vb new file mode 100644 index 0000000..d52f2a0 --- /dev/null +++ b/ApplicationCrèche 1/Forms/FormID.Designer.vb @@ -0,0 +1,173 @@ + _ +Partial Class FormID + Inherits System.Windows.Forms.Form + + 'Form remplace la méthode Dispose pour nettoyer la liste des composants. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Requise par le Concepteur Windows Form + Private components As System.ComponentModel.IContainer + + 'REMARQUE : la procédure suivante est requise par le Concepteur Windows Form + 'Elle peut être modifiée à l'aide du Concepteur Windows Form. + 'Ne la modifiez pas à l'aide de l'éditeur de code. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Me.ButtonEdit = New System.Windows.Forms.Button() + Me.ButtonClose = New System.Windows.Forms.Button() + Me.LabelFirstName = New System.Windows.Forms.Label() + Me.LabelLastName = New System.Windows.Forms.Label() + Me.TBFirstName = New System.Windows.Forms.TextBox() + Me.TBLastName = New System.Windows.Forms.TextBox() + Me.TBAddress = New System.Windows.Forms.TextBox() + Me.Label3 = New System.Windows.Forms.Label() + Me.RBMale = New System.Windows.Forms.RadioButton() + Me.RBFemale = New System.Windows.Forms.RadioButton() + Me.ErrorProvider1 = New System.Windows.Forms.ErrorProvider(Me.components) + CType(Me.ErrorProvider1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'ButtonEdit + ' + Me.ButtonEdit.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonEdit.Location = New System.Drawing.Point(376, 346) + Me.ButtonEdit.Name = "ButtonEdit" + Me.ButtonEdit.Size = New System.Drawing.Size(75, 23) + Me.ButtonEdit.TabIndex = 20 + Me.ButtonEdit.Text = "Edit" + Me.ButtonEdit.UseVisualStyleBackColor = True + ' + 'ButtonClose + ' + Me.ButtonClose.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonClose.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.ButtonClose.Location = New System.Drawing.Point(457, 346) + Me.ButtonClose.Name = "ButtonClose" + Me.ButtonClose.Size = New System.Drawing.Size(75, 23) + Me.ButtonClose.TabIndex = 21 + Me.ButtonClose.Text = "Close" + Me.ButtonClose.UseVisualStyleBackColor = True + ' + 'LabelFirstName + ' + Me.LabelFirstName.AutoSize = True + Me.LabelFirstName.Location = New System.Drawing.Point(12, 60) + Me.LabelFirstName.Name = "LabelFirstName" + Me.LabelFirstName.Size = New System.Drawing.Size(63, 13) + Me.LabelFirstName.TabIndex = 7 + Me.LabelFirstName.Text = "First name:" + ' + 'LabelLastName + ' + Me.LabelLastName.AutoSize = True + Me.LabelLastName.Location = New System.Drawing.Point(12, 88) + Me.LabelLastName.Name = "LabelLastName" + Me.LabelLastName.Size = New System.Drawing.Size(61, 13) + Me.LabelLastName.TabIndex = 8 + Me.LabelLastName.Text = "Last name:" + ' + 'TBFirstName + ' + Me.TBFirstName.Location = New System.Drawing.Point(80, 57) + Me.TBFirstName.Name = "TBFirstName" + Me.TBFirstName.Size = New System.Drawing.Size(165, 22) + Me.TBFirstName.TabIndex = 0 + ' + 'TBLastName + ' + Me.TBLastName.Location = New System.Drawing.Point(80, 85) + Me.TBLastName.Name = "TBLastName" + Me.TBLastName.Size = New System.Drawing.Size(165, 22) + Me.TBLastName.TabIndex = 1 + ' + 'TBAddress + ' + Me.TBAddress.Location = New System.Drawing.Point(12, 182) + Me.TBAddress.Multiline = True + Me.TBAddress.Name = "TBAddress" + Me.TBAddress.Size = New System.Drawing.Size(258, 87) + Me.TBAddress.TabIndex = 4 + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Location = New System.Drawing.Point(12, 115) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(48, 13) + Me.Label3.TabIndex = 9 + Me.Label3.Text = "Gender:" + ' + 'RBMale + ' + Me.RBMale.AutoSize = True + Me.RBMale.Location = New System.Drawing.Point(80, 113) + Me.RBMale.Name = "RBMale" + Me.RBMale.Size = New System.Drawing.Size(50, 17) + Me.RBMale.TabIndex = 2 + Me.RBMale.TabStop = True + Me.RBMale.Text = "Male" + Me.RBMale.UseVisualStyleBackColor = True + ' + 'RBFemale + ' + Me.RBFemale.AutoSize = True + Me.RBFemale.Location = New System.Drawing.Point(171, 113) + Me.RBFemale.Name = "RBFemale" + Me.RBFemale.Size = New System.Drawing.Size(61, 17) + Me.RBFemale.TabIndex = 3 + Me.RBFemale.TabStop = True + Me.RBFemale.Text = "Female" + Me.RBFemale.UseVisualStyleBackColor = True + ' + 'ErrorProvider1 + ' + Me.ErrorProvider1.ContainerControl = Me + ' + 'FormID + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.CancelButton = Me.ButtonClose + Me.ClientSize = New System.Drawing.Size(544, 381) + Me.Controls.Add(Me.RBFemale) + Me.Controls.Add(Me.RBMale) + Me.Controls.Add(Me.Label3) + Me.Controls.Add(Me.TBAddress) + Me.Controls.Add(Me.TBLastName) + Me.Controls.Add(Me.TBFirstName) + Me.Controls.Add(Me.LabelLastName) + Me.Controls.Add(Me.LabelFirstName) + Me.Controls.Add(Me.ButtonClose) + Me.Controls.Add(Me.ButtonEdit) + Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle + Me.MaximizeBox = False + Me.Name = "FormID" + Me.Text = "FormID" + CType(Me.ErrorProvider1, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents LabelFirstName As System.Windows.Forms.Label + Friend WithEvents LabelLastName As System.Windows.Forms.Label + Friend WithEvents Label3 As System.Windows.Forms.Label + Protected WithEvents ButtonEdit As System.Windows.Forms.Button + Protected WithEvents ButtonClose As System.Windows.Forms.Button + Protected WithEvents TBFirstName As System.Windows.Forms.TextBox + Protected WithEvents TBLastName As System.Windows.Forms.TextBox + Protected WithEvents TBAddress As System.Windows.Forms.TextBox + Protected WithEvents RBMale As System.Windows.Forms.RadioButton + Protected WithEvents RBFemale As System.Windows.Forms.RadioButton + Friend WithEvents ErrorProvider1 As System.Windows.Forms.ErrorProvider +End Class diff --git a/ApplicationCrèche 1/Forms/FormID.resx b/ApplicationCrèche 1/Forms/FormID.resx new file mode 100644 index 0000000..0b28ef2 --- /dev/null +++ b/ApplicationCrèche 1/Forms/FormID.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/ApplicationCrèche 1/Forms/FormID.vb b/ApplicationCrèche 1/Forms/FormID.vb new file mode 100644 index 0000000..cc96a28 --- /dev/null +++ b/ApplicationCrèche 1/Forms/FormID.vb @@ -0,0 +1,26 @@ +Public Class FormID + + Protected Overridable Sub ButtonEdit_Click(sender As System.Object, e As System.EventArgs) Handles ButtonEdit.Click + + End Sub + + Protected Overridable Sub ButtonClose_Click(sender As System.Object, e As System.EventArgs) Handles ButtonClose.Click + + End Sub + + Private Sub FormID_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load + + End Sub + + Protected Overridable Sub TBFirstName_TextChanged(sender As System.Object, e As System.EventArgs) Handles TBFirstName.TextChanged + ErrorProvider1.SetError(TBAddress, "") + End Sub + + Protected Overridable Sub TBLastName_TextChanged(sender As System.Object, e As System.EventArgs) Handles TBLastName.TextChanged + ErrorProvider1.SetError(TBLastName, "") + End Sub + + Protected Overridable Sub TBAddress_TextChanged(sender As System.Object, e As System.EventArgs) Handles TBAddress.TextChanged + ErrorProvider1.SetError(TBAddress, "") + End Sub +End Class \ No newline at end of file diff --git a/ApplicationCrèche 1/Forms/FormList.Designer.vb b/ApplicationCrèche 1/Forms/FormList.Designer.vb new file mode 100644 index 0000000..d507c16 --- /dev/null +++ b/ApplicationCrèche 1/Forms/FormList.Designer.vb @@ -0,0 +1,245 @@ + _ +Partial Class FormList + Inherits System.Windows.Forms.Form + + 'Form remplace la méthode Dispose pour nettoyer la liste des composants. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Requise par le Concepteur Windows Form + Private components As System.ComponentModel.IContainer + + 'REMARQUE : la procédure suivante est requise par le Concepteur Windows Form + 'Elle peut être modifiée à l'aide du Concepteur Windows Form. + 'Ne la modifiez pas à l'aide de l'éditeur de code. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(FormList)) + Me.ToolStrip = New System.Windows.Forms.ToolStrip() + Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator() + Me.ListView = New System.Windows.Forms.ListView() + Me.ColumnHeader = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader1 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.CMSSep = New System.Windows.Forms.ToolStripSeparator() + Me.ToolStripSeparator2 = New System.Windows.Forms.ToolStripSeparator() + Me.CMSSelect = New System.Windows.Forms.ToolStripMenuItem() + Me.CMSShow = New System.Windows.Forms.ToolStripMenuItem() + Me.CMSEdit = New System.Windows.Forms.ToolStripMenuItem() + Me.CMSDelete = New System.Windows.Forms.ToolStripMenuItem() + Me.TSButtonAdd = New System.Windows.Forms.ToolStripButton() + Me.TSButtonSelect = New System.Windows.Forms.ToolStripButton() + Me.TSButtonShow = New System.Windows.Forms.ToolStripButton() + Me.TSButtonEdit = New System.Windows.Forms.ToolStripButton() + Me.TSButtonDelete = New System.Windows.Forms.ToolStripButton() + Me.TSButtonClose = New System.Windows.Forms.ToolStripButton() + Me.TSPin = New System.Windows.Forms.ToolStripButton() + Me.ToolStrip.SuspendLayout() + Me.ContextMenuStrip1.SuspendLayout() + Me.SuspendLayout() + ' + 'ToolStrip + ' + Me.ToolStrip.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden + Me.ToolStrip.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSButtonAdd, Me.ToolStripSeparator1, Me.TSButtonSelect, Me.TSButtonShow, Me.TSButtonEdit, Me.TSButtonDelete, Me.TSButtonClose, Me.ToolStripSeparator2, Me.TSPin}) + Me.ToolStrip.Location = New System.Drawing.Point(0, 0) + Me.ToolStrip.Name = "ToolStrip" + Me.ToolStrip.Size = New System.Drawing.Size(309, 25) + Me.ToolStrip.TabIndex = 0 + Me.ToolStrip.Text = "ToolStrip1" + ' + 'ToolStripSeparator1 + ' + Me.ToolStripSeparator1.Name = "ToolStripSeparator1" + Me.ToolStripSeparator1.Size = New System.Drawing.Size(6, 25) + ' + 'ListView + ' + Me.ListView.AllowColumnReorder = True + Me.ListView.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader, Me.ColumnHeader1}) + Me.ListView.ContextMenuStrip = Me.ContextMenuStrip1 + Me.ListView.Dock = System.Windows.Forms.DockStyle.Fill + Me.ListView.FullRowSelect = True + Me.ListView.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable + Me.ListView.Location = New System.Drawing.Point(0, 25) + Me.ListView.MultiSelect = False + Me.ListView.Name = "ListView" + Me.ListView.Size = New System.Drawing.Size(309, 386) + Me.ListView.TabIndex = 1 + Me.ListView.UseCompatibleStateImageBehavior = False + Me.ListView.View = System.Windows.Forms.View.Details + ' + 'ColumnHeader + ' + Me.ColumnHeader.Text = "Name" + Me.ColumnHeader.Width = 300 + ' + 'ColumnHeader1 + ' + Me.ColumnHeader1.Text = "Address" + Me.ColumnHeader1.Width = 161 + ' + 'ContextMenuStrip1 + ' + Me.ContextMenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.CMSSelect, Me.CMSSep, Me.CMSShow, Me.CMSEdit, Me.CMSDelete}) + Me.ContextMenuStrip1.Name = "ContextMenuStrip1" + Me.ContextMenuStrip1.Size = New System.Drawing.Size(167, 98) + ' + 'CMSSep + ' + Me.CMSSep.Name = "CMSSep" + Me.CMSSep.Size = New System.Drawing.Size(163, 6) + ' + 'ToolStripSeparator2 + ' + Me.ToolStripSeparator2.Name = "ToolStripSeparator2" + Me.ToolStripSeparator2.Size = New System.Drawing.Size(6, 25) + ' + 'CMSSelect + ' + Me.CMSSelect.Enabled = False + Me.CMSSelect.Image = Global.ApplicationCrèche_1.My.Resources.Resources.SelectSheet + Me.CMSSelect.Name = "CMSSelect" + Me.CMSSelect.Size = New System.Drawing.Size(166, 22) + Me.CMSSelect.Text = "Select" + ' + 'CMSShow + ' + Me.CMSShow.Enabled = False + Me.CMSShow.Image = Global.ApplicationCrèche_1.My.Resources.Resources.NormalSheetLight + Me.CMSShow.Name = "CMSShow" + Me.CMSShow.Size = New System.Drawing.Size(166, 22) + Me.CMSShow.Text = "Show selection..." + ' + 'CMSEdit + ' + Me.CMSEdit.Enabled = False + Me.CMSEdit.Image = Global.ApplicationCrèche_1.My.Resources.Resources.EditSheet2 + Me.CMSEdit.Name = "CMSEdit" + Me.CMSEdit.Size = New System.Drawing.Size(166, 22) + Me.CMSEdit.Text = "Edit selection..." + ' + 'CMSDelete + ' + Me.CMSDelete.Enabled = False + Me.CMSDelete.Image = Global.ApplicationCrèche_1.My.Resources.Resources.DeleteSheet2 + Me.CMSDelete.Name = "CMSDelete" + Me.CMSDelete.Size = New System.Drawing.Size(166, 22) + Me.CMSDelete.Text = "Delete selection..." + ' + 'TSButtonAdd + ' + Me.TSButtonAdd.Image = Global.ApplicationCrèche_1.My.Resources.Resources.AddSheet2 + Me.TSButtonAdd.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSButtonAdd.Name = "TSButtonAdd" + Me.TSButtonAdd.Size = New System.Drawing.Size(49, 22) + Me.TSButtonAdd.Text = "Add" + ' + 'TSButtonSelect + ' + Me.TSButtonSelect.Enabled = False + Me.TSButtonSelect.Image = Global.ApplicationCrèche_1.My.Resources.Resources.SelectSheet + Me.TSButtonSelect.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSButtonSelect.Name = "TSButtonSelect" + Me.TSButtonSelect.Size = New System.Drawing.Size(58, 22) + Me.TSButtonSelect.Text = "Select" + ' + 'TSButtonShow + ' + Me.TSButtonShow.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSButtonShow.Enabled = False + Me.TSButtonShow.Image = Global.ApplicationCrèche_1.My.Resources.Resources.NormalSheetLight + Me.TSButtonShow.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSButtonShow.Name = "TSButtonShow" + Me.TSButtonShow.Size = New System.Drawing.Size(23, 22) + Me.TSButtonShow.Text = "Show" + ' + 'TSButtonEdit + ' + Me.TSButtonEdit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSButtonEdit.Enabled = False + Me.TSButtonEdit.Image = Global.ApplicationCrèche_1.My.Resources.Resources.EditSheet2 + Me.TSButtonEdit.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSButtonEdit.Name = "TSButtonEdit" + Me.TSButtonEdit.Size = New System.Drawing.Size(23, 22) + Me.TSButtonEdit.Text = "Edit" + ' + 'TSButtonDelete + ' + Me.TSButtonDelete.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSButtonDelete.Enabled = False + Me.TSButtonDelete.Image = Global.ApplicationCrèche_1.My.Resources.Resources.DeleteSheet2 + Me.TSButtonDelete.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSButtonDelete.Name = "TSButtonDelete" + Me.TSButtonDelete.Size = New System.Drawing.Size(23, 22) + Me.TSButtonDelete.Text = "Delete" + ' + 'TSButtonClose + ' + Me.TSButtonClose.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right + Me.TSButtonClose.Image = Global.ApplicationCrèche_1.My.Resources.Resources.CloseWindow + Me.TSButtonClose.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSButtonClose.Name = "TSButtonClose" + Me.TSButtonClose.Size = New System.Drawing.Size(56, 22) + Me.TSButtonClose.Text = "Close" + ' + 'TSPin + ' + Me.TSPin.Checked = True + Me.TSPin.CheckState = System.Windows.Forms.CheckState.Checked + Me.TSPin.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.TSPin.Image = Global.ApplicationCrèche_1.My.Resources.Resources.PingedWindows + Me.TSPin.ImageTransparentColor = System.Drawing.Color.Magenta + Me.TSPin.Name = "TSPin" + Me.TSPin.Size = New System.Drawing.Size(23, 22) + Me.TSPin.Text = "Pin" + ' + 'FormList + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(309, 411) + Me.Controls.Add(Me.ListView) + Me.Controls.Add(Me.ToolStrip) + Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MinimumSize = New System.Drawing.Size(325, 450) + Me.Name = "FormList" + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "List window" + Me.ToolStrip.ResumeLayout(False) + Me.ToolStrip.PerformLayout() + Me.ContextMenuStrip1.ResumeLayout(False) + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents ToolStrip As System.Windows.Forms.ToolStrip + Friend WithEvents ListView As System.Windows.Forms.ListView + Friend WithEvents TSButtonAdd As System.Windows.Forms.ToolStripButton + Friend WithEvents TSButtonEdit As System.Windows.Forms.ToolStripButton + Friend WithEvents TSButtonClose As System.Windows.Forms.ToolStripButton + Friend WithEvents TSButtonDelete As System.Windows.Forms.ToolStripButton + Friend WithEvents ColumnHeader As System.Windows.Forms.ColumnHeader + Friend WithEvents TSButtonSelect As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripSeparator1 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents ContextMenuStrip1 As System.Windows.Forms.ContextMenuStrip + Friend WithEvents CMSSelect As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents CMSEdit As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents CMSDelete As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents CMSShow As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents TSButtonShow As System.Windows.Forms.ToolStripButton + Friend WithEvents CMSSep As System.Windows.Forms.ToolStripSeparator + Friend WithEvents ColumnHeader1 As System.Windows.Forms.ColumnHeader + Friend WithEvents TSPin As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripSeparator2 As System.Windows.Forms.ToolStripSeparator +End Class diff --git a/ApplicationCrèche 1/Forms/FormList.resx b/ApplicationCrèche 1/Forms/FormList.resx new file mode 100644 index 0000000..7f8db64 --- /dev/null +++ b/ApplicationCrèche 1/Forms/FormList.resx @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 118, 17 + + + + + AAABAAEAEBAAAAEAIADWAAAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAAQAAAAEAgGAAAAH/P/YQAAAAlw + SFlzAAALEwAACxMBAJqcGAAAAIhJREFUOI3tkz0Lg0AMhp+TG1wEf6LQSRyu3Tu6i8O1k3D+RpcOB+nS + HlYUP27o4rPkheQlCSRKRIghiXIDCtBA+ol78MBLA6mxbtjiuDR10N3tTlsVWXKg8xgNkBvrZC/GOgHy + n+6lKniKC3qJb00YYS4x1qs7nBPgAa6PfpNhgo8+ZfX3b3wDHqZpVv32WD4AAAAASUVORK5CYII= + + + \ No newline at end of file diff --git a/ApplicationCrèche 1/Forms/FormList.vb b/ApplicationCrèche 1/Forms/FormList.vb new file mode 100644 index 0000000..37aca45 --- /dev/null +++ b/ApplicationCrèche 1/Forms/FormList.vb @@ -0,0 +1,320 @@ +Public Class FormList + + ' ----- Privates Attributes ----- + Private aTypeofPerson As PersonType + Private aFormMode As ListFormMode + + ' ----- Initialisators ------ + Private Sub FormList_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load + + End Sub + + Public Sub New(aTypeOfPerson As PersonType, aFormMode As ListFormMode, Optional aMeet As Meet = Nothing) + Console.WriteLine("FormList : Begining of a new instance") + ' Cet appel est requis par le concepteur. + InitializeComponent() + + ' Ajoutez une initialisation quelconque après l'appel InitializeComponent(). + Me.aTypeofPerson = aTypeOfPerson + Me.aFormMode = aFormMode + ' If we show the list to pick up someone and return him back to the calling window + If aFormMode = ListFormMode.Selector Then + TSButtonClose.Text = "Cancel" + TSButtonSelect.Visible = True + TSPin.Visible = False + CMSSelect.Visible = True + CMSSep.Visible = True + ListView.HeaderStyle = ColumnHeaderStyle.None + ListView.Columns(0).Width = 300 + ListView.Columns(1).Width = 1 + ElseIf aFormMode = ListFormMode.Viewer Then ' If we show the list to manage peoples inside + TSButtonClose.Text = "Close" + TSButtonSelect.Visible = False + CMSSelect.Visible = False + CMSSep.Visible = False + If aTypeOfPerson = PersonType.BabySitter Then TSPin.Visible = True + ListView.HeaderStyle = ColumnHeaderStyle.None + ListView.Columns(0).Width = 300 + ListView.Columns(1).Width = 1 + ElseIf aFormMode = ListFormMode.SelectFiltered Then ' Special mode to pick up a babysitter, without the possibility to add or delete one. + TSButtonClose.Text = "Cancel" + TSButtonAdd.Visible = False + TSButtonSelect.Visible = True + TSButtonDelete.Visible = False + TSPin.Visible = False + CMSDelete.Visible = False + ListView.HeaderStyle = ColumnHeaderStyle.None + ListView.Columns(0).Width = 300 + ListView.Columns(1).Width = 1 + ElseIf aFormMode = ListFormMode.SelectWithAdress Then ' Special mode to pick up a parent address + TSButtonClose.Text = "Cancel" + TSButtonAdd.Visible = False + TSButtonSelect.Visible = True + TSButtonDelete.Visible = False + TSPin.Visible = False + ListView.HeaderStyle = ColumnHeaderStyle.Nonclickable + ListView.Columns(0).Width = 140 + ListView.Columns(1).Width = 160 + CMSDelete.Visible = False + End If + loadList(aMeet) + + If aTypeOfPerson = PersonType.BabySitter Then + Me.Text = "List of babysitters" + Me.TSButtonAdd.Text = "Add a babysitter" + ElseIf aTypeOfPerson = PersonType.Parent Then + Me.Text = "List of parent" + Me.TSButtonAdd.Text = "Add a parent" + Else + Console.WriteLine("FormList : " + aTypeOfPerson) + Me.Text = "List of " + aTypeOfPerson.ToString + End If + + End Sub + + ' ----- Methodes ----- + + Private Sub ViewSelected() + If Me.aTypeofPerson = PersonType.BabySitter Then + Dim aBS As BabySitter = dbdata.getBabysitterByID(ListView.SelectedItems(0).Tag) + Dim aFormBS As FormBabySitterID = New FormBabySitterID(IDFormMode.VIEWER, aBS) + Dim conclusion As DialogResult = aFormBS.ShowDialog() + If conclusion = Windows.Forms.DialogResult.OK Then + reloadList() + End If + aFormBS.Dispose() + ElseIf Me.aTypeofPerson = PersonType.Parent Then + Dim aParent As Parent = dbdata.getParentByID(ListView.SelectedItems(0).Tag) + Dim aFormParent As FormParentID = New FormParentID(IDFormMode.VIEWER, aParent) + Dim conclusion As DialogResult = aFormParent.ShowDialog + If conclusion = Windows.Forms.DialogResult.OK Then + reloadList() + End If + aFormParent.Dispose() + End If + End Sub + + ''' + ''' Show a window to edit the element + ''' + ''' + Private Sub EditSelected() + If Me.aTypeofPerson = PersonType.BabySitter Then + Dim aBS As BabySitter = dbdata.getBabysitterByID(ListView.SelectedItems(0).Tag) + Dim aFormBS As FormBabySitterID = New FormBabySitterID(IDFormMode.EDITOR, aBS) + Dim conclusion As DialogResult = aFormBS.ShowDialog() + If conclusion = Windows.Forms.DialogResult.OK Then + reloadList() + End If + aFormBS.Dispose() + ElseIf Me.aTypeofPerson = PersonType.Parent Then + Dim aParent As Parent = dbdata.getParentByID(ListView.SelectedItems(0).Tag) + Dim aFormParent As FormParentID = New FormParentID(IDFormMode.EDITOR, aParent) + Dim conclusion As DialogResult = aFormParent.ShowDialog + If conclusion = Windows.Forms.DialogResult.OK Then + reloadList() + End If + aFormParent.Dispose() + End If + End Sub + + ''' + ''' Return the selected element to the calling window + ''' + ''' + Private Sub ReturnSelected() + If PrepareSelected() Then + Console.WriteLine("FormList : Closing instance") + Me.DialogResult = Windows.Forms.DialogResult.OK + Me.Hide() + End If + End Sub + + Private Function PrepareSelected() As Boolean + If ListView.SelectedItems.Count > 0 Then + Me.Tag = ListView.SelectedItems(0).Tag + Return True + End If + Return False + End Function + + Private Sub reloadList() + ListView.Items.Clear() + loadList(Nothing) + End Sub + + Private Sub loadList(aMeet As Meet) + ' Babysitter + If aTypeofPerson = PersonType.BabySitter Then + ' Getting back babysitters + Dim BSList As List(Of BabySitter) = FilterList(aMeet) + + For Each aBS As BabySitter In BSList + ListView.Items.Add(aBS.firstname + " " + aBS.lastname).Tag = aBS.id + Next + ' Parent + ElseIf aTypeofPerson = PersonType.Parent Then + Dim ParentList As List(Of Parent) = dbdata.getParents() + + For Each aParent As Parent In ParentList + Dim itemChild As ListViewItem = ListView.Items.Add(aParent.firstname + " " + aParent.lastname) + If aFormMode = ListFormMode.SelectWithAdress Then itemChild.SubItems.Add(aParent.address) + itemChild.Tag = aParent.id + Next + End If + End Sub + + Private Function FilterList(wishedMeet As Meet) As List(Of BabySitter) + If wishedMeet Is Nothing Then + Return dbdata.getBabysitters() + End If + + Dim ABSList As List(Of BabySitter) = dbdata.getAvailableBabysitters() + Dim FilteredBSList As List(Of BabySitter) = New List(Of BabySitter) + For Each aBS As BabySitter In ABSList + If Not (wishedMeet.overlap(aBS.meet1) Or + wishedMeet.overlap(aBS.meet2) Or + wishedMeet.overlap(aBS.meet3)) Then + FilteredBSList.Add(aBS) + End If + Next + Return FilteredBSList + End Function + + ' ----- Handles and Listerners ----- + Private Sub DeleteSelected() + Dim msgResult As DialogResult = MsgBox("You are about to remove " & ListView.SelectedItems(0).Text & " from the software. Would you continue ?", MsgBoxStyle.YesNo, "Confirm deletion") + If msgResult = vbYes Then + If Me.aTypeofPerson = PersonType.BabySitter Then + dbdata.deleteBabysitterByID(ListView.SelectedItems(0).Tag) + ElseIf Me.aTypeofPerson = PersonType.Parent Then + dbdata.deleteParentByID(ListView.SelectedItems(0).Tag) + End If + reloadList() + End If + End Sub + + Private Sub CMSDelete_Click(sender As System.Object, e As System.EventArgs) Handles CMSDelete.Click + DeleteSelected() + End Sub + + Private Sub TSButtonDelete_Click(sender As System.Object, e As System.EventArgs) Handles TSButtonDelete.Click + DeleteSelected() + End Sub + + Private Sub TSButtonAdd_Click(sender As System.Object, e As System.EventArgs) Handles TSButtonAdd.Click + If (aTypeofPerson = PersonType.Parent) Then + Dim createParent As FormParentID = New FormParentID(IDFormMode.CREATOR) + Dim conclusion As DialogResult = createParent.ShowDialog + If conclusion = Windows.Forms.DialogResult.OK Then + reloadList() + End If + createParent.Dispose() + ElseIf aTypeofPerson = PersonType.BabySitter Then + Dim createBD As FormBabySitterID = New FormBabySitterID(IDFormMode.CREATOR) + Dim conclusion As DialogResult = createBD.ShowDialog + If conclusion = Windows.Forms.DialogResult.OK Then + reloadList() + End If + createBD.Dispose() + End If + End Sub + + Private Sub TSButtonEdit_Click(sender As System.Object, e As System.EventArgs) Handles TSButtonEdit.Click + EditSelected() + End Sub + Private Sub CMSEdit_Click(sender As System.Object, e As System.EventArgs) Handles CMSEdit.Click + EditSelected() + End Sub + + Private Sub TSButtonSelect_Click(sender As System.Object, e As System.EventArgs) Handles TSButtonSelect.Click + ReturnSelected() + End Sub + Private Sub CMSSelect_Click(sender As System.Object, e As System.EventArgs) Handles CMSSelect.Click + ReturnSelected() + End Sub + + Private Sub CMSShow_Click(sender As System.Object, e As System.EventArgs) Handles CMSShow.Click + ViewSelected() + End Sub + + Private Sub TSButtonShow_Click(sender As System.Object, e As System.EventArgs) Handles TSButtonShow.Click + ViewSelected() + End Sub + + Private Sub ListView_DoubleClick(sender As System.Object, e As System.EventArgs) Handles ListView.DoubleClick + If ListView.SelectedIndices.Count > 0 Then + If aFormMode = ListFormMode.Viewer Then + ViewSelected() + Else + ReturnSelected() + End If + End If + End Sub + + Private Sub BeforeClose() + Console.WriteLine("FormList : Closing instance") + If aFormMode = ListFormMode.Viewer Then + Me.Dispose() + Else + Me.DialogResult = Windows.Forms.DialogResult.Cancel + Me.Hide() + End If + End Sub + + 'Private Sub FormList_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing + ' BeforeClose() + 'End Sub + + Private Sub TSButtonClose_Click(sender As System.Object, e As System.EventArgs) Handles TSButtonClose.Click + BeforeClose() + End Sub + + Private Sub ListView_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListView.SelectedIndexChanged + If ListView.SelectedItems.Count <= 0 Then + TSButtonDelete.Enabled = False + TSButtonEdit.Enabled = False + TSButtonSelect.Enabled = False + TSButtonShow.Enabled = False + CMSDelete.Enabled = False + CMSEdit.Enabled = False + CMSSelect.Enabled = False + CMSShow.Enabled = False + + CMSDelete.Text = "Delete selection" + CMSEdit.Text = "Edit selection..." + CMSShow.Text = "Show selection..." + CMSSelect.Text = "Select" + Else + TSButtonDelete.Enabled = True + TSButtonEdit.Enabled = True + TSButtonSelect.Enabled = True + TSButtonShow.Enabled = True + CMSDelete.Enabled = True + CMSEdit.Enabled = True + CMSSelect.Enabled = True + CMSShow.Enabled = True + + CMSDelete.Text = "Delete " + ListView.SelectedItems(0).Text + CMSEdit.Text = "Edit " + ListView.SelectedItems(0).Text + "..." + CMSShow.Text = "Show " + ListView.SelectedItems(0).Text + "..." + CMSSelect.Text = "Select " + ListView.SelectedItems(0).Text + End If + End Sub + + + Private Sub ToolStripButton1_Click(sender As System.Object, e As System.EventArgs) Handles TSPin.Click + If TSPin.Checked Then + TSPin.Text = "Pin windows" + TSPin.Image = My.Resources.UnpingedWindows + TSPin.Checked = False + Else + TSPin.Text = "Unpin windows" + TSPin.Image = My.Resources.PingedWindows + TSPin.Checked = True + Me.Top = FormMain.Top + Me.Left = FormMain.Right + End If + End Sub + +End Class \ No newline at end of file diff --git a/ApplicationCrèche 1/Forms/FormMain.Designer.vb b/ApplicationCrèche 1/Forms/FormMain.Designer.vb new file mode 100644 index 0000000..610074d --- /dev/null +++ b/ApplicationCrèche 1/Forms/FormMain.Designer.vb @@ -0,0 +1,338 @@ + _ +Partial Class FormMain + Inherits System.Windows.Forms.Form + + 'Form remplace la méthode Dispose pour nettoyer la liste des composants. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Requise par le Concepteur Windows Form + Private components As System.ComponentModel.IContainer + + 'REMARQUE : la procédure suivante est requise par le Concepteur Windows Form + 'Elle peut être modifiée à l'aide du Concepteur Windows Form. + 'Ne la modifiez pas à l'aide de l'éditeur de code. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Me.MenuStrip1 = New System.Windows.Forms.MenuStrip() + Me.FileToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.QuitToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.EditionToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.TSNewChild = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator2 = New System.Windows.Forms.ToolStripSeparator() + Me.TSShowChild = New System.Windows.Forms.ToolStripMenuItem() + Me.TSEditChild = New System.Windows.Forms.ToolStripMenuItem() + Me.TSDeleteChild = New System.Windows.Forms.ToolStripMenuItem() + Me.ShowToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.TSBSList = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator() + Me.DetailToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ListToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.SmallIconsToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.NewSubButton = New System.Windows.Forms.ToolStripButton() + Me.BSListButton = New System.Windows.Forms.ToolStripButton() + Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator() + Me.EditChildButton = New System.Windows.Forms.ToolStripButton() + Me.ListViewMain = New System.Windows.Forms.ListView() + Me.ColumnHeaderChild = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeaderPlanning = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.CMSShowChild = New System.Windows.Forms.ToolStripMenuItem() + Me.CMSEditChild = New System.Windows.Forms.ToolStripMenuItem() + Me.CMSDeleteChild = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator4 = New System.Windows.Forms.ToolStripSeparator() + Me.DetailToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() + Me.ListToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() + Me.SmallIconsToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() + Me.MenuStrip1.SuspendLayout() + Me.ToolStrip1.SuspendLayout() + Me.ContextMenuStrip1.SuspendLayout() + Me.SuspendLayout() + ' + 'MenuStrip1 + ' + Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.FileToolStripMenuItem, Me.EditionToolStripMenuItem, Me.ShowToolStripMenuItem}) + Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) + Me.MenuStrip1.Name = "MenuStrip1" + Me.MenuStrip1.Size = New System.Drawing.Size(594, 24) + Me.MenuStrip1.TabIndex = 0 + Me.MenuStrip1.Text = "MenuStrip1" + ' + 'FileToolStripMenuItem + ' + Me.FileToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.QuitToolStripMenuItem}) + Me.FileToolStripMenuItem.Name = "FileToolStripMenuItem" + Me.FileToolStripMenuItem.Size = New System.Drawing.Size(80, 20) + Me.FileToolStripMenuItem.Text = "Application" + ' + 'QuitToolStripMenuItem + ' + Me.QuitToolStripMenuItem.Name = "QuitToolStripMenuItem" + Me.QuitToolStripMenuItem.Size = New System.Drawing.Size(97, 22) + Me.QuitToolStripMenuItem.Text = "Quit" + ' + 'EditionToolStripMenuItem + ' + Me.EditionToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSNewChild, Me.ToolStripSeparator2, Me.TSShowChild, Me.TSEditChild, Me.TSDeleteChild}) + Me.EditionToolStripMenuItem.Name = "EditionToolStripMenuItem" + Me.EditionToolStripMenuItem.Size = New System.Drawing.Size(56, 20) + Me.EditionToolStripMenuItem.Text = "Edition" + ' + 'TSNewChild + ' + Me.TSNewChild.Image = Global.ApplicationCrèche_1.My.Resources.Resources.AddSheet2 + Me.TSNewChild.Name = "TSNewChild" + Me.TSNewChild.Size = New System.Drawing.Size(197, 22) + Me.TSNewChild.Text = "Subscribe a new child..." + ' + 'ToolStripSeparator2 + ' + Me.ToolStripSeparator2.Name = "ToolStripSeparator2" + Me.ToolStripSeparator2.Size = New System.Drawing.Size(194, 6) + ' + 'TSShowChild + ' + Me.TSShowChild.Enabled = False + Me.TSShowChild.Image = Global.ApplicationCrèche_1.My.Resources.Resources.NormalSheetLight + Me.TSShowChild.Name = "TSShowChild" + Me.TSShowChild.Size = New System.Drawing.Size(197, 22) + Me.TSShowChild.Text = "Show selected child..." + ' + 'TSEditChild + ' + Me.TSEditChild.Enabled = False + Me.TSEditChild.Image = Global.ApplicationCrèche_1.My.Resources.Resources.EditSheet2 + Me.TSEditChild.Name = "TSEditChild" + Me.TSEditChild.Size = New System.Drawing.Size(197, 22) + Me.TSEditChild.Text = "Edit selected child..." + ' + 'TSDeleteChild + ' + Me.TSDeleteChild.Enabled = False + Me.TSDeleteChild.Image = Global.ApplicationCrèche_1.My.Resources.Resources.DeleteSheet2 + Me.TSDeleteChild.Name = "TSDeleteChild" + Me.TSDeleteChild.Size = New System.Drawing.Size(197, 22) + Me.TSDeleteChild.Text = "Delete selected child..." + ' + 'ShowToolStripMenuItem + ' + Me.ShowToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TSBSList, Me.ToolStripSeparator3, Me.DetailToolStripMenuItem, Me.ListToolStripMenuItem, Me.SmallIconsToolStripMenuItem}) + Me.ShowToolStripMenuItem.Name = "ShowToolStripMenuItem" + Me.ShowToolStripMenuItem.Size = New System.Drawing.Size(48, 20) + Me.ShowToolStripMenuItem.Text = "Show" + ' + 'TSBSList + ' + Me.TSBSList.Image = Global.ApplicationCrèche_1.My.Resources.Resources.WindowList1 + Me.TSBSList.Name = "TSBSList" + Me.TSBSList.Size = New System.Drawing.Size(144, 22) + Me.TSBSList.Text = "Babysitter list" + ' + 'ToolStripSeparator3 + ' + Me.ToolStripSeparator3.Name = "ToolStripSeparator3" + Me.ToolStripSeparator3.Size = New System.Drawing.Size(141, 6) + ' + 'DetailToolStripMenuItem + ' + Me.DetailToolStripMenuItem.Name = "DetailToolStripMenuItem" + Me.DetailToolStripMenuItem.Size = New System.Drawing.Size(144, 22) + Me.DetailToolStripMenuItem.Text = "Detail" + ' + 'ListToolStripMenuItem + ' + Me.ListToolStripMenuItem.Name = "ListToolStripMenuItem" + Me.ListToolStripMenuItem.Size = New System.Drawing.Size(144, 22) + Me.ListToolStripMenuItem.Text = "List" + ' + 'SmallIconsToolStripMenuItem + ' + Me.SmallIconsToolStripMenuItem.Name = "SmallIconsToolStripMenuItem" + Me.SmallIconsToolStripMenuItem.Size = New System.Drawing.Size(144, 22) + Me.SmallIconsToolStripMenuItem.Text = "Small icons" + ' + 'ToolStrip1 + ' + Me.ToolStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.NewSubButton, Me.BSListButton, Me.ToolStripSeparator1, Me.EditChildButton}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 24) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(594, 25) + Me.ToolStrip1.TabIndex = 1 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'NewSubButton + ' + Me.NewSubButton.Image = Global.ApplicationCrèche_1.My.Resources.Resources.AddSheet2 + Me.NewSubButton.ImageTransparentColor = System.Drawing.Color.Magenta + Me.NewSubButton.Name = "NewSubButton" + Me.NewSubButton.Size = New System.Drawing.Size(119, 22) + Me.NewSubButton.Text = "New subscription" + ' + 'BSListButton + ' + Me.BSListButton.Image = Global.ApplicationCrèche_1.My.Resources.Resources.WindowList1 + Me.BSListButton.ImageTransparentColor = System.Drawing.Color.Magenta + Me.BSListButton.Name = "BSListButton" + Me.BSListButton.Size = New System.Drawing.Size(97, 22) + Me.BSListButton.Text = "Babysitter list" + ' + 'ToolStripSeparator1 + ' + Me.ToolStripSeparator1.Name = "ToolStripSeparator1" + Me.ToolStripSeparator1.Size = New System.Drawing.Size(6, 25) + ' + 'EditChildButton + ' + Me.EditChildButton.Enabled = False + Me.EditChildButton.Image = Global.ApplicationCrèche_1.My.Resources.Resources.EditSheet2 + Me.EditChildButton.ImageTransparentColor = System.Drawing.Color.Magenta + Me.EditChildButton.Name = "EditChildButton" + Me.EditChildButton.Size = New System.Drawing.Size(122, 22) + Me.EditChildButton.Text = "Edit selected child" + ' + 'ListViewMain + ' + Me.ListViewMain.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ListViewMain.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeaderChild, Me.ColumnHeaderPlanning}) + Me.ListViewMain.ContextMenuStrip = Me.ContextMenuStrip1 + Me.ListViewMain.FullRowSelect = True + Me.ListViewMain.GridLines = True + Me.ListViewMain.Location = New System.Drawing.Point(12, 52) + Me.ListViewMain.MultiSelect = False + Me.ListViewMain.Name = "ListViewMain" + Me.ListViewMain.Size = New System.Drawing.Size(570, 397) + Me.ListViewMain.TabIndex = 2 + Me.ListViewMain.UseCompatibleStateImageBehavior = False + Me.ListViewMain.View = System.Windows.Forms.View.Details + ' + 'ColumnHeaderChild + ' + Me.ColumnHeaderChild.Text = "Children" + Me.ColumnHeaderChild.Width = 199 + ' + 'ColumnHeaderPlanning + ' + Me.ColumnHeaderPlanning.Text = "Planning" + Me.ColumnHeaderPlanning.Width = 364 + ' + 'ContextMenuStrip1 + ' + Me.ContextMenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.CMSShowChild, Me.CMSEditChild, Me.CMSDeleteChild, Me.ToolStripSeparator4, Me.DetailToolStripMenuItem1, Me.ListToolStripMenuItem1, Me.SmallIconsToolStripMenuItem1}) + Me.ContextMenuStrip1.Name = "ContextMenuStrip1" + Me.ContextMenuStrip1.Size = New System.Drawing.Size(168, 142) + ' + 'CMSShowChild + ' + Me.CMSShowChild.Enabled = False + Me.CMSShowChild.Image = Global.ApplicationCrèche_1.My.Resources.Resources.NormalSheetLight + Me.CMSShowChild.Name = "CMSShowChild" + Me.CMSShowChild.Size = New System.Drawing.Size(167, 22) + Me.CMSShowChild.Text = "Show this child..." + ' + 'CMSEditChild + ' + Me.CMSEditChild.Enabled = False + Me.CMSEditChild.Image = Global.ApplicationCrèche_1.My.Resources.Resources.EditSheet2 + Me.CMSEditChild.Name = "CMSEditChild" + Me.CMSEditChild.Size = New System.Drawing.Size(167, 22) + Me.CMSEditChild.Text = "Edit this child..." + ' + 'CMSDeleteChild + ' + Me.CMSDeleteChild.Enabled = False + Me.CMSDeleteChild.Image = Global.ApplicationCrèche_1.My.Resources.Resources.DeleteSheet2 + Me.CMSDeleteChild.Name = "CMSDeleteChild" + Me.CMSDeleteChild.Size = New System.Drawing.Size(167, 22) + Me.CMSDeleteChild.Text = "Delete this child..." + ' + 'ToolStripSeparator4 + ' + Me.ToolStripSeparator4.Name = "ToolStripSeparator4" + Me.ToolStripSeparator4.Size = New System.Drawing.Size(164, 6) + ' + 'DetailToolStripMenuItem1 + ' + Me.DetailToolStripMenuItem1.Name = "DetailToolStripMenuItem1" + Me.DetailToolStripMenuItem1.Size = New System.Drawing.Size(167, 22) + Me.DetailToolStripMenuItem1.Text = "Detail" + ' + 'ListToolStripMenuItem1 + ' + Me.ListToolStripMenuItem1.Name = "ListToolStripMenuItem1" + Me.ListToolStripMenuItem1.Size = New System.Drawing.Size(167, 22) + Me.ListToolStripMenuItem1.Text = "List" + ' + 'SmallIconsToolStripMenuItem1 + ' + Me.SmallIconsToolStripMenuItem1.Name = "SmallIconsToolStripMenuItem1" + Me.SmallIconsToolStripMenuItem1.Size = New System.Drawing.Size(167, 22) + Me.SmallIconsToolStripMenuItem1.Text = "Small icons" + ' + 'FormMain + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(594, 461) + Me.Controls.Add(Me.ListViewMain) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.MenuStrip1) + Me.Font = New System.Drawing.Font("Segoe UI", 8.25!) + Me.MainMenuStrip = Me.MenuStrip1 + Me.MinimumSize = New System.Drawing.Size(500, 500) + Me.Name = "FormMain" + Me.Text = "Main Window" + Me.MenuStrip1.ResumeLayout(False) + Me.MenuStrip1.PerformLayout() + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.ContextMenuStrip1.ResumeLayout(False) + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents MenuStrip1 As System.Windows.Forms.MenuStrip + Friend WithEvents FileToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents EditionToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents NewSubButton As System.Windows.Forms.ToolStripButton + Friend WithEvents BSListButton As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripSeparator1 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents EditChildButton As System.Windows.Forms.ToolStripButton + Friend WithEvents ListViewMain As System.Windows.Forms.ListView + Friend WithEvents ShowToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents QuitToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ColumnHeaderChild As System.Windows.Forms.ColumnHeader + Friend WithEvents ColumnHeaderPlanning As System.Windows.Forms.ColumnHeader + Friend WithEvents TSEditChild As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents TSDeleteChild As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents TSNewChild As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ToolStripSeparator2 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents TSBSList As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents TSShowChild As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ContextMenuStrip1 As System.Windows.Forms.ContextMenuStrip + Friend WithEvents CMSEditChild As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents CMSShowChild As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents CMSDeleteChild As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ToolStripSeparator3 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents DetailToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ListToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents SmallIconsToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ToolStripSeparator4 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents DetailToolStripMenuItem1 As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ListToolStripMenuItem1 As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents SmallIconsToolStripMenuItem1 As System.Windows.Forms.ToolStripMenuItem + +End Class diff --git a/ApplicationCrèche 1/Forms/FormMain.en.resx b/ApplicationCrèche 1/Forms/FormMain.en.resx new file mode 100644 index 0000000..88c3813 --- /dev/null +++ b/ApplicationCrèche 1/Forms/FormMain.en.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Main window + + \ No newline at end of file diff --git a/ApplicationCrèche 1/Forms/FormMain.fr-FR.resx b/ApplicationCrèche 1/Forms/FormMain.fr-FR.resx new file mode 100644 index 0000000..915d263 --- /dev/null +++ b/ApplicationCrèche 1/Forms/FormMain.fr-FR.resx @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + 144, 22 + + + 141, 6 + + + 144, 22 + + + 144, 22 + + + 144, 22 + + \ No newline at end of file diff --git a/ApplicationCrèche 1/Forms/FormMain.resx b/ApplicationCrèche 1/Forms/FormMain.resx new file mode 100644 index 0000000..1bab8f2 --- /dev/null +++ b/ApplicationCrèche 1/Forms/FormMain.resx @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 132, 17 + + + 239, 17 + + + 39 + + \ No newline at end of file diff --git a/ApplicationCrèche 1/Forms/FormMain.vb b/ApplicationCrèche 1/Forms/FormMain.vb new file mode 100644 index 0000000..729e28b --- /dev/null +++ b/ApplicationCrèche 1/Forms/FormMain.vb @@ -0,0 +1,221 @@ +Imports System.IO +Public Class FormMain + ' ----- Attributes ----- + Private BSlist As FormList + + ' ----- Initialising window ----- + Private Sub FormMain_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load + + + 'Try + + 'Catch ex As Exception + + 'End Try + + reloadChildList() + End Sub + + ' ----- Methodes ------ + Private Sub reloadChildList() + Dim allChildren As List(Of Child) = New List(Of Child) + allChildren = dbdata.getChildren() + + 'Fill ListViewMain + ListViewMain.Items.Clear() + For Each aChild As Child In allChildren + Dim childName As String + childName = aChild.firstname & " " & aChild.lastname + + Dim planning As String = "" + If Not aChild.meet Is Nothing Then + For Each dico As KeyValuePair(Of String, Boolean) In aChild.meet.weekdays + If dico.Value Then + planning += dico.Key & " " + End If + planning = StrConv(planning, VbStrConv.ProperCase) + Next + End If + + Dim itemChild As ListViewItem = ListViewMain.Items.Add(childName) + itemChild.SubItems.Add(planning) + itemChild.Tag = aChild.id + Next + End Sub + + ' ----- Handlers and Listerners ----- + Private Sub ShowBSList() + If BSlist Is Nothing Then + BSlist = New FormList(PersonType.BabySitter, ListFormMode.Viewer) + BSlist.Show() + BSlist.Height = Me.Height + BSlist.Top = Me.Top + BSlist.Left = Me.Right + ElseIf BSlist.Visible = False Then + BSlist.Dispose() + BSlist = Nothing + ShowBSList() + End If + End Sub + Private Sub BSListButton_Click(sender As System.Object, e As System.EventArgs) Handles BSListButton.Click + ShowBSList() + End Sub + Private Sub TSBSList_Click(sender As System.Object, e As System.EventArgs) Handles TSBSList.Click + ShowBSList() + End Sub + + ' add a new child + Private Sub NewChild() + ' Instanciation of a new FormChildID + Dim formAddChild As FormChildID = New FormChildID(IDFormMode.CREATOR) + ' Show of the form and retrivement of the way the form close. + Dim conclusion As DialogResult = formAddChild.ShowDialog() + ' If the user decide to abort the creation of a child, then we do nothing. + ' But if the user validate it, we manage it + If conclusion = Windows.Forms.DialogResult.OK Then + reloadChildList() + End If + + ' Dispose call the garbage collector in order to free the RAM. + 'The form don't have any existance anymore. + formAddChild.Dispose() + End Sub + Private Sub ToolStripButton1_Click(sender As System.Object, e As System.EventArgs) Handles NewSubButton.Click + NewChild() + End Sub + + ' Edit a listed child + Private Sub EditChild(Optional theFormMode As IDFormMode = IDFormMode.VIEWER) + If ListViewMain.SelectedItems.Count > 0 Then + Dim theChild As Child = dbdata.getChildByID(ListViewMain.SelectedItems(0).Tag) + Dim aFormChildID As FormChildID = New FormChildID(theFormMode, theChild) + Dim conclusion As DialogResult = aFormChildID.ShowDialog() + If conclusion = Windows.Forms.DialogResult.OK Then + reloadChildList() + End If + aFormChildID.Dispose() + End If + End Sub + Private Sub TSEditChild_Click(sender As System.Object, e As System.EventArgs) Handles TSEditChild.Click + EditChild(IDFormMode.EDITOR) + End Sub + Private Sub EditChildButton_Click(sender As System.Object, e As System.EventArgs) Handles EditChildButton.Click + EditChild(IDFormMode.EDITOR) + End Sub + Private Sub ListViewMain_DoubleClick(sender As System.Object, e As System.EventArgs) Handles ListViewMain.DoubleClick + EditChild(IDFormMode.VIEWER) + End Sub + Private Sub TSShowChild_Click(sender As System.Object, e As System.EventArgs) Handles TSShowChild.Click + EditChild(IDFormMode.VIEWER) + End Sub + Private Sub CMSEditChild_Click(sender As System.Object, e As System.EventArgs) Handles CMSEditChild.Click + EditChild(IDFormMode.EDITOR) + End Sub + Private Sub CMSShowChild_Click(sender As System.Object, e As System.EventArgs) Handles CMSShowChild.Click + EditChild(IDFormMode.VIEWER) + End Sub + + Public Sub DeleteChild() + Dim msgResult As DialogResult = MsgBox("You are about to remove " & ListViewMain.SelectedItems(0).Text & " from the software. Would you continue ?", MsgBoxStyle.YesNo, "Confirm deletion") + If msgResult = vbYes Then + dbdata.deleteChildByID(ListViewMain.SelectedItems(0).Tag) + reloadChildList() + End If + End Sub + Private Sub CMSDeleteChild_Click(sender As System.Object, e As System.EventArgs) Handles CMSDeleteChild.Click + DeleteChild() + End Sub + Private Sub TSDeleteChild_Click(sender As System.Object, e As System.EventArgs) Handles TSDeleteChild.Click + DeleteChild() + End Sub + Private Sub FormMain_Move(sender As Object, e As System.EventArgs) Handles Me.Move + If Not BSlist Is Nothing Then + If BSlist.TSPin.Checked Then + BSlist.Top = Me.Top + BSlist.Left = Me.Right + End If + End If + End Sub + + ' On selection change + Private Sub ListViewMain_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListViewMain.SelectedIndexChanged + If ListViewMain.SelectedItems.Count <= 0 Then + CMSDeleteChild.Enabled = False + TSDeleteChild.Enabled = False + EditChildButton.Enabled = False + CMSEditChild.Enabled = False + TSEditChild.Enabled = False + CMSShowChild.Enabled = False + TSShowChild.Enabled = False + + CMSShowChild.Text = "Show this child..." + CMSEditChild.Text = "Edit this child..." + CMSDeleteChild.Text = "Delete this child " + Else + CMSDeleteChild.Enabled = True + TSDeleteChild.Enabled = True + EditChildButton.Enabled = True + CMSEditChild.Enabled = True + TSEditChild.Enabled = True + CMSShowChild.Enabled = True + TSShowChild.Enabled = True + + CMSShowChild.Text = "Show " + ListViewMain.SelectedItems(0).Text + "..." + CMSEditChild.Text = "Edit " + ListViewMain.SelectedItems(0).Text + "..." + CMSDeleteChild.Text = "Delete " + ListViewMain.SelectedItems(0).Text + End If + End Sub + + ' ----- Closing programme ----- + Private Sub QuitToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles QuitToolStripMenuItem.Click + Me.Close() + End Sub + + ''' + ''' Switch to Detail view the list of Children + ''' + ''' + Private Sub ViewDetail() + ListViewMain.View = View.Details + End Sub + Private Sub DetailToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles DetailToolStripMenuItem.Click + ViewDetail() + End Sub + Private Sub DetailToolStripMenuItem1_Click(sender As System.Object, e As System.EventArgs) Handles DetailToolStripMenuItem1.Click + ViewDetail() + End Sub + + ''' + ''' Switch to List view the list of Children + ''' + ''' + Private Sub ViewList() + ListViewMain.View = View.List + End Sub + Private Sub ListToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles ListToolStripMenuItem.Click + ViewList() + End Sub + Private Sub ListToolStripMenuItem1_Click(sender As System.Object, e As System.EventArgs) Handles ListToolStripMenuItem1.Click + ViewList() + End Sub + + + ''' + ''' Switch to Small view the list of Children + ''' + ''' + Private Sub ViewSmall() + ListViewMain.View = View.SmallIcon + End Sub + Private Sub SmallIconsToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles SmallIconsToolStripMenuItem.Click + ViewSmall() + End Sub + Private Sub SmallIconsToolStripMenuItem1_Click(sender As System.Object, e As System.EventArgs) Handles SmallIconsToolStripMenuItem1.Click + ViewSmall() + End Sub + + + + + +End Class diff --git a/ApplicationCrèche 1/Forms/FormParentID.Designer.vb b/ApplicationCrèche 1/Forms/FormParentID.Designer.vb new file mode 100644 index 0000000..ad504d1 --- /dev/null +++ b/ApplicationCrèche 1/Forms/FormParentID.Designer.vb @@ -0,0 +1,164 @@ + _ +Partial Class FormParentID + Inherits ApplicationCrèche_1.FormID + + 'Form remplace la méthode Dispose pour nettoyer la liste des composants. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + MyBase.Dispose(disposing) + End Sub + + 'Requise par le Concepteur Windows Form + Private components As System.ComponentModel.IContainer + + 'REMARQUE : la procédure suivante est requise par le Concepteur Windows Form + 'Elle peut être modifiée à l'aide du Concepteur Windows Form. + 'Ne la modifiez pas à l'aide de l'éditeur de code. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(FormParentID)) + Me.Label5 = New System.Windows.Forms.Label() + Me.Label4 = New System.Windows.Forms.Label() + Me.TBPhone = New System.Windows.Forms.TextBox() + Me.LabelPhone = New System.Windows.Forms.Label() + Me.LabelAddress = New System.Windows.Forms.Label() + Me.ListView = New System.Windows.Forms.ListView() + Me.CHChildName = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ButtonPick = New System.Windows.Forms.Button() + Me.SuspendLayout() + ' + 'ButtonEdit + ' + Me.ButtonEdit.Image = Global.ApplicationCrèche_1.My.Resources.Resources.EditSheet2 + Me.ButtonEdit.TabIndex = 8 + Me.ButtonEdit.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText + ' + 'ButtonClose + ' + Me.ButtonClose.TabIndex = 9 + ' + 'TBAddress + ' + Me.TBAddress.TabIndex = 5 + ' + 'Label5 + ' + Me.Label5.AutoSize = True + Me.Label5.Font = New System.Drawing.Font("Segoe UI", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label5.Location = New System.Drawing.Point(276, 9) + Me.Label5.Name = "Label5" + Me.Label5.Size = New System.Drawing.Size(102, 30) + Me.Label5.TabIndex = 21 + Me.Label5.Text = "Child(ren)" + ' + 'Label4 + ' + Me.Label4.AutoSize = True + Me.Label4.Font = New System.Drawing.Font("Segoe UI", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label4.Location = New System.Drawing.Point(12, 9) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(83, 30) + Me.Label4.TabIndex = 20 + Me.Label4.Text = "Identity" + ' + 'TBPhone + ' + Me.TBPhone.Location = New System.Drawing.Point(80, 136) + Me.TBPhone.Name = "TBPhone" + Me.TBPhone.Size = New System.Drawing.Size(165, 22) + Me.TBPhone.TabIndex = 4 + ' + 'LabelPhone + ' + Me.LabelPhone.AutoSize = True + Me.LabelPhone.Location = New System.Drawing.Point(12, 139) + Me.LabelPhone.Name = "LabelPhone" + Me.LabelPhone.Size = New System.Drawing.Size(43, 13) + Me.LabelPhone.TabIndex = 23 + Me.LabelPhone.Text = "Phone:" + ' + 'LabelAddress + ' + Me.LabelAddress.AutoSize = True + Me.LabelAddress.Location = New System.Drawing.Point(12, 166) + Me.LabelAddress.Name = "LabelAddress" + Me.LabelAddress.Size = New System.Drawing.Size(76, 13) + Me.LabelAddress.TabIndex = 24 + Me.LabelAddress.Text = "Living adress:" + ' + 'ListView + ' + Me.ListView.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.CHChildName}) + Me.ListView.FullRowSelect = True + Me.ListView.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None + Me.ListView.Location = New System.Drawing.Point(281, 42) + Me.ListView.MultiSelect = False + Me.ListView.Name = "ListView" + Me.ListView.Size = New System.Drawing.Size(251, 298) + Me.ListView.TabIndex = 7 + Me.ListView.UseCompatibleStateImageBehavior = False + Me.ListView.View = System.Windows.Forms.View.Details + ' + 'CHChildName + ' + Me.CHChildName.Text = "Name" + Me.CHChildName.Width = 246 + ' + 'ButtonPick + ' + Me.ButtonPick.Image = Global.ApplicationCrèche_1.My.Resources.Resources.OpenFolder + Me.ButtonPick.Location = New System.Drawing.Point(157, 275) + Me.ButtonPick.Name = "ButtonPick" + Me.ButtonPick.Size = New System.Drawing.Size(113, 23) + Me.ButtonPick.TabIndex = 6 + Me.ButtonPick.Text = "Pick adress..." + Me.ButtonPick.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText + Me.ButtonPick.UseVisualStyleBackColor = True + ' + 'FormParentID + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.ClientSize = New System.Drawing.Size(544, 381) + Me.Controls.Add(Me.ButtonPick) + Me.Controls.Add(Me.ListView) + Me.Controls.Add(Me.LabelAddress) + Me.Controls.Add(Me.LabelPhone) + Me.Controls.Add(Me.TBPhone) + Me.Controls.Add(Me.Label5) + Me.Controls.Add(Me.Label4) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MinimumSize = New System.Drawing.Size(550, 410) + Me.Name = "FormParentID" + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Parent ID" + Me.Controls.SetChildIndex(Me.ButtonEdit, 0) + Me.Controls.SetChildIndex(Me.ButtonClose, 0) + Me.Controls.SetChildIndex(Me.TBFirstName, 0) + Me.Controls.SetChildIndex(Me.TBLastName, 0) + Me.Controls.SetChildIndex(Me.TBAddress, 0) + Me.Controls.SetChildIndex(Me.RBMale, 0) + Me.Controls.SetChildIndex(Me.RBFemale, 0) + Me.Controls.SetChildIndex(Me.Label4, 0) + Me.Controls.SetChildIndex(Me.Label5, 0) + Me.Controls.SetChildIndex(Me.TBPhone, 0) + Me.Controls.SetChildIndex(Me.LabelPhone, 0) + Me.Controls.SetChildIndex(Me.LabelAddress, 0) + Me.Controls.SetChildIndex(Me.ListView, 0) + Me.Controls.SetChildIndex(Me.ButtonPick, 0) + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents Label5 As System.Windows.Forms.Label + Friend WithEvents Label4 As System.Windows.Forms.Label + Friend WithEvents TBPhone As System.Windows.Forms.TextBox + Friend WithEvents LabelPhone As System.Windows.Forms.Label + Friend WithEvents LabelAddress As System.Windows.Forms.Label + Friend WithEvents ListView As System.Windows.Forms.ListView + Friend WithEvents ButtonPick As System.Windows.Forms.Button + Friend WithEvents CHChildName As System.Windows.Forms.ColumnHeader + +End Class diff --git a/ApplicationCrèche 1/Forms/FormParentID.resx b/ApplicationCrèche 1/Forms/FormParentID.resx new file mode 100644 index 0000000..83b96cf --- /dev/null +++ b/ApplicationCrèche 1/Forms/FormParentID.resx @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAEBAAAAEAIAB+AQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAAQAAAAEAgGAAAAH/P/YQAAAAlw + SFlzAAALEwAACxMBAJqcGAAAATBJREFUOI2dkz1Ow0AQRp+Do5QcgxZxAFquQMMB0nIBGpo0tJEQB0Di + EIgL0CPR0SChQBA4/tnMNxS7mCDHJMLSalce7/Ob2dkMGAA7QJZG3+NpGODu7gA5MARGaR78ARAQgDrN + LWD0cH/17jJwEcEeVdIaNxRKqsWcg6PJboKpNXAZe/uHPxvW2Msabm8uSabVdyQHBrjAnfFw0ut//nTC + 4qMipdnWKo+m8c/TcLrWINQNs+cZZtaJ5QBZ2jQeXvQanD0ek3kXnscUY2CTAb2ArQ2673+lsNEgnlx/ + CpsM+lPYsgbZmlgEyADHXSyb0PmoqQOSpePuAmTLBbKGt5dXQt0FSEZZlMgcYiF8FRCaYs7d9ZTis0RL + tS0d281xOZKQCVYuEsSWHPGP2+juAvgCwODN5kOjKQoAAAAASUVORK5CYII= + + + \ No newline at end of file diff --git a/ApplicationCrèche 1/Forms/FormParentID.vb b/ApplicationCrèche 1/Forms/FormParentID.vb new file mode 100644 index 0000000..33f2145 --- /dev/null +++ b/ApplicationCrèche 1/Forms/FormParentID.vb @@ -0,0 +1,240 @@ +Imports ApplicationCrèche_1.IDFormMode + +Public Class FormParentID + Inherits FormID + + ' ----- Private Attributes ----- + Private actualFormMode As IDFormMode + + + ' ----- Initialisators ----- + Private Sub FormParentID_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load + + End Sub + + Public Sub New(theFormMode As IDFormMode, Optional aParent As Parent = Nothing) + Console.WriteLine("FormParentID : Begining of a new instance") + ' Cet appel est requis par le concepteur. + InitializeComponent() + + ' Ajoutez une initialisation quelconque après l'appel InitializeComponent(). + If theFormMode = CREATOR Or aParent Is Nothing Then + ChangeMode(CREATOR) + Else + ChangeMode(theFormMode, aParent) + End If + End Sub + + ' ----- Methodes ----- + Private Function getParentFromIntern() As Parent + Dim newParent = New Parent(Me.Tag) + newParent.firstname = TBFirstName.Text + newParent.lastname = TBLastName.Text + newParent.address = TBAddress.Text + If (RBMale.Checked) Then + newParent.gender = True + Else + newParent.gender = False + End If + newParent.phone = TBPhone.Text + Return newParent + End Function + + Private Function updateParentFromExtern(aParent As Parent) As Boolean + If Not aParent Is Nothing Then + + ' Fill up controls with all the data we have. + Me.Tag = aParent.id + TBFirstName.Text = aParent.firstname 'Firstname + TBLastName.Text = aParent.lastname 'Lastname + If aParent.gender Then 'Gender + RBMale.Checked = True + Else + RBFemale.Checked = True + End If + TBPhone.Text = aParent.phone + TBAddress.Text = aParent.address + FillListView(aParent.id) + If ListView.Items.Count > 1 Then Label5.Text = "Children" Else Label5.Text = "Child" + If (actualFormMode = VIEWER) Then + Text = aParent.firstname + " " + aParent.lastname + Else + Text = aParent.firstname + " " + aParent.lastname + " (Edit)" + End If + Return True + End If + Return False + End Function + + Private Sub ChangeMode(aFormMode As IDFormMode, Optional aParent As Parent = Nothing) + If aFormMode = IDFormMode.CREATOR Then ' CREATOR MODE + actualFormMode = CREATOR + Console.WriteLine("FormParentID : Switch to CREATOR Mode") + + 'Change of the main triggers labels + title + Text = "New parent" + ButtonClose.Text = "Cancel" + ButtonEdit.Text = "Save" + RBMale.Checked = True + ListView.Enabled = False + Label5.Text = "" + + Me.Tag = 0 + ElseIf aFormMode = IDFormMode.VIEWER And Not aParent Is Nothing Then ' VIEW MODE + actualFormMode = VIEWER + Console.WriteLine("FormParentID : Switch to VIEWER Mode") + + 'We change the main triggers labels + ButtonClose.Text = "Close" + ButtonEdit.Text = "Edit" + Text = TBFirstName.Text + " " + TBLastName.Text + " (Edit)" + + 'Activate most important security aspect (not show a window that can mat a save somewhere else) + TBAddress.Enabled = False + TBFirstName.Enabled = False + TBLastName.Enabled = False + RBFemale.Enabled = False + RBMale.Enabled = False + TBPhone.Enabled = False + ButtonPick.Enabled = False + ListView.Enabled = False + + updateParentFromExtern(aParent) + ElseIf aFormMode = IDFormMode.EDITOR Then ' EDITOR MODE + Console.WriteLine("FormParentID : Switch to Editor Mode") + actualFormMode = EDITOR + + ''We change the main triggers labels + + ButtonClose.Text = "Cancel" + ButtonEdit.Text = "Update" + + 'Turn off anti edit security + TBAddress.Enabled = True + TBFirstName.Enabled = True + TBLastName.Enabled = True + RBFemale.Enabled = True + RBMale.Enabled = True + TBPhone.Enabled = True + ButtonPick.Enabled = True + ListView.Enabled = True + + updateParentFromExtern(aParent) + Else + Console.WriteLine("FormParentID : Return to Standart Mode !!") + End If + End Sub + + ''' + ''' Get the list of children of the actual Parent. + ''' + ''' The id of the Parent + ''' + Private Sub FillListView(id As Integer) + Dim theChildren As List(Of Child) = dbdata.getChildenOf(id) + + For Each aChild As Child In theChildren + ListView.Items.Add(aChild.firstname + " " + aChild.lastname).Tag = aChild.id + Next + ' Child or Children ? + If ListView.Items.Count <= 1 Then + Label5.Text = "Child" + Else + Label5.Text = "Children" + End If + End Sub + + + 'Edit and click + Protected Overrides Sub ButtonEdit_Click(sender As System.Object, e As System.EventArgs) + Dim Validated As Boolean = True + If actualFormMode = VIEWER Then 'EDIT' + ChangeMode(EDITOR) + ElseIf actualFormMode = CREATOR Then 'SAVE' + ' Error Provider + If String.IsNullOrEmpty(TBFirstName.Text) Then + ErrorProvider1.SetError(TBFirstName, "The first name field could not be empty." & vbNewLine & "Please fill this field.") + Validated = False + End If + If String.IsNullOrEmpty(TBLastName.Text) Then + ErrorProvider1.SetError(TBLastName, "The last name field could not be empty." & vbNewLine & "Please fill this field.") + Validated = False + End If + If String.IsNullOrEmpty(TBPhone.Text) Then + ErrorProvider1.SetError(TBPhone, "The phone number field could not be empty" & vbNewLine & "Please insert a correct phone number") + Validated = False + End If + 'If TBPhone. = 0 Then + ' ErrorProvider1.SetError(DTPBord, "The date of born could not be today" & vbNewLine & "Please insert a born date in the past") + ' Validated = False + 'End If + If String.IsNullOrEmpty(TBAddress.Text) Then + ErrorProvider1.SetError(LabelAddress, "The address field could not be empty." & vbNewLine & "Please fill this field.") + Validated = False + End If + + + If Not Validated Then + Exit Sub + End If + + ' Validation + Me.DialogResult = Windows.Forms.DialogResult.OK + Me.Tag = dbdata.addParent(Me.getParentFromIntern()) + Hide() + + ElseIf actualFormMode = EDITOR Then 'UPDATE' + ' Error Provider + If String.IsNullOrEmpty(TBFirstName.Text) Then + ErrorProvider1.SetError(TBFirstName, "The first name field could not be empty." & vbNewLine & "Please fill this field.") + Validated = False + End If + If String.IsNullOrEmpty(TBLastName.Text) Then + ErrorProvider1.SetError(TBLastName, "The last name field could not be empty." & vbNewLine & "Please fill this field.") + Validated = False + End If + If String.IsNullOrEmpty(TBPhone.Text) Then + ErrorProvider1.SetError(TBPhone, "The phone number field could not be empty" & vbNewLine & "Please insert a correct phone number") + Validated = False + End If + 'If TBPhone. = 0 Then + ' ErrorProvider1.SetError(DTPBord, "The date of born could not be today" & vbNewLine & "Please insert a born date in the past") + ' Validated = False + 'End If + If String.IsNullOrEmpty(TBAddress.Text) Then + ErrorProvider1.SetError(LabelAddress, "The address field could not be empty." & vbNewLine & "Please fill this field.") + Validated = False + End If + + If Not Validated Then + Exit Sub + End If + + ' Validation + Me.DialogResult = Windows.Forms.DialogResult.OK + dbdata.editParent(Me.getParentFromIntern()) + Hide() + + Else + 'Don't know how to go here... + Console.WriteLine("FormParentID : Is in standart mode !") + Hide() + End If + End Sub + + Protected Overrides Sub ButtonClose_Click(sender As System.Object, e As System.EventArgs) + Console.WriteLine("FormParentID : Closing instance") + Me.DialogResult = Windows.Forms.DialogResult.Cancel + Hide() + End Sub + + Private Sub ButtonPick_Click(sender As System.Object, e As System.EventArgs) Handles ButtonPick.Click + Dim FormListParent As FormList = New FormList(PersonType.Parent, ListFormMode.SelectWithAdress) + Dim RD As DialogResult = FormListParent.ShowDialog + If RD = Windows.Forms.DialogResult.OK Then + Dim aParent As Parent = dbdata.getParentByID(FormListParent.Tag) + TBAddress.Text = aParent.address + End If + End Sub + +End Class diff --git a/ApplicationCrèche 1/Forms/ListEnums.vb b/ApplicationCrèche 1/Forms/ListEnums.vb new file mode 100644 index 0000000..16a7734 --- /dev/null +++ b/ApplicationCrèche 1/Forms/ListEnums.vb @@ -0,0 +1,20 @@ +Public Enum IDFormMode + CREATOR + EDITOR + VIEWER + 'STANDART +End Enum + +Public Enum ListFormMode + Viewer + SelectWithAdress + SelectFiltered + Selector +End Enum + +Public Enum PersonType + BabySitter + Child + Parent + Person +End Enum diff --git a/ApplicationCrèche 1/Forms/SharedRessources.vb b/ApplicationCrèche 1/Forms/SharedRessources.vb new file mode 100644 index 0000000..7b013b6 --- /dev/null +++ b/ApplicationCrèche 1/Forms/SharedRessources.vb @@ -0,0 +1,27 @@ +Module SharedRessources + Public dbConnexionString As String + Public dbdata As SQLManager = New SQLManager() + + ''' + ''' + ''' + ''' + ''' + ''' + Public Function getFirstFreeMeetOf(id As Integer) As Integer + Dim abs As BabySitter = dbdata.getBabysitterByID(id) + If abs.meet1 Is Nothing Then + Return 1 + ElseIf abs.meet2 Is Nothing Then + Return 2 + ElseIf abs.meet3 Is Nothing Then + Return 3 + Else + Return 4 + End If + End Function + + + + +End Module diff --git a/ApplicationCrèche 1/Model/BabySitter.vb b/ApplicationCrèche 1/Model/BabySitter.vb new file mode 100644 index 0000000..5e24e4a --- /dev/null +++ b/ApplicationCrèche 1/Model/BabySitter.vb @@ -0,0 +1,97 @@ +Public Class BabySitter + Inherits Person + + Private _phone1 As String + Public Property phone1() As String + Get + Return _phone1 + End Get + Set(ByVal value As String) + _phone1 = value + End Set + End Property + + Private _phone2 As String + Public Property phone2() As String + Get + Return _phone2 + End Get + Set(ByVal value As String) + _phone2 = value + End Set + End Property + + + Private _meet1 As Meet + Public Property meet1() As Meet + Get + Return _meet1 + End Get + Set(ByVal value As Meet) + _meet1 = value + End Set + End Property + + Private _meet2 As Meet + Public Property meet2() As Meet + Get + Return _meet2 + End Get + Set(ByVal value As Meet) + _meet2 = value + End Set + End Property + + Private _meet3 As Meet + Public Property meet3() As Meet + Get + Return _meet3 + End Get + Set(ByVal value As Meet) + _meet3 = value + End Set + End Property + + 'Private _meet1 As Integer + 'Public Property meet1() As Integer + ' Get + ' Return _meet1 + ' End Get + ' Set(ByVal value As Integer) + ' _meet1 = value + ' End Set + 'End Property + + 'Private _meet2 As Integer + 'Public Property meet2() As Integer + ' Get + ' Return _meet2 + ' End Get + ' Set(ByVal value As Integer) + ' _meet2 = value + ' End Set + 'End Property + + 'Private _meet3 As Integer + 'Public Property meet3() As Integer + ' Get + ' Return _meet3 + ' End Get + ' Set(ByVal value As Integer) + ' _meet3 = value + ' End Set + 'End Property + + + Public Sub New(id As Integer, fname As String, lname As String, gender As Boolean, address As String, phone1 As String, Optional phone2 As String = Nothing) + MyBase.New(id, fname, lname, gender, address) + Me.phone1 = phone1 + Me.phone2 = phone2 + End Sub + + Public Sub New(id As Integer) + MyBase.New(id) + End Sub + + +End Class diff --git a/ApplicationCrèche 1/Model/Child.vb b/ApplicationCrèche 1/Model/Child.vb new file mode 100644 index 0000000..be8331d --- /dev/null +++ b/ApplicationCrèche 1/Model/Child.vb @@ -0,0 +1,57 @@ +Public Class Child + Inherits Person + + Private _bornDate As Date + Public Property bornDate() As Date + Get + Return _bornDate + End Get + Set(ByVal value As Date) + _bornDate = value + End Set + End Property + + Private _parent1 As Parent + Public Property parent1() As Parent + Get + Return _parent1 + End Get + Set(ByVal value As Parent) + _parent1 = value + End Set + End Property + + Private _parent2 As Parent + Public Property parent2() As Parent + Get + Return _parent2 + End Get + Set(ByVal value As Parent) + _parent2 = value + End Set + End Property + + Private _meet As Meet + Public Property meet() As Meet + Get + Return _meet + End Get + Set(ByVal value As Meet) + _meet = value + End Set + End Property + + + Public Sub New(id As Integer, fname As String, lname As String, gender As Boolean, address As String, born As Date, meet As Meet, Optional parent1 As Parent = Nothing, Optional parent2 As Parent = Nothing) + MyBase.New(id, fname, lname, gender, address) + Me.bornDate = born + Me.meet = meet + Me.parent1 = parent1 + Me.parent2 = parent2 + End Sub + + Public Sub New(id As Integer) + MyBase.New(id) + End Sub + +End Class diff --git a/ApplicationCrèche 1/Model/Meet.vb b/ApplicationCrèche 1/Model/Meet.vb new file mode 100644 index 0000000..9628947 --- /dev/null +++ b/ApplicationCrèche 1/Model/Meet.vb @@ -0,0 +1,140 @@ +Public Class Meet + + Private _id As Integer + Public ReadOnly Property id() As Integer + Get + Return _id + End Get + End Property + + + Private _weekdays As New Dictionary(Of String, Boolean) + Public ReadOnly Property weekdays() As Dictionary(Of String, Boolean) + Get + Return _weekdays + End Get + End Property + + Public Sub New(id As Integer) + _id = id + _weekdays.Add("monday", False) + _weekdays.Add("tuesday", False) + _weekdays.Add("wednesday", False) + _weekdays.Add("thursday", False) + _weekdays.Add("friday", False) + _weekdays.Add("saturday", False) + _weekdays.Add("sunday", False) + End Sub + + Public Sub New(weekDayName As String, Optional weekDayName2 As String = Nothing, Optional weekDayName3 As String = Nothing, Optional weekDayName4 As String = Nothing, Optional weekDayName5 As String = Nothing, Optional weekDayName6 As String = Nothing, Optional weekDayName7 As String = Nothing) + + If Not weekDayName Is Nothing And _weekdays.ContainsKey(weekDayName.ToLower) Then + _weekdays(weekDayName) = True + End If + + If Not weekDayName2 Is Nothing And _weekdays.ContainsKey(weekDayName2.ToLower) Then + _weekdays(weekDayName2) = True + End If + + If Not weekDayName3 Is Nothing And _weekdays.ContainsKey(weekDayName3.ToLower) Then + _weekdays(weekDayName3) = True + End If + + If Not weekDayName4 Is Nothing And _weekdays.ContainsKey(weekDayName4.ToLower) Then + _weekdays(weekDayName4) = True + End If + + If Not weekDayName5 Is Nothing And _weekdays.ContainsKey(weekDayName5.ToLower) Then + _weekdays(weekDayName5) = True + End If + + If Not weekDayName6 Is Nothing And _weekdays.ContainsKey(weekDayName6.ToLower) Then + _weekdays(weekDayName6) = True + End If + + If Not weekDayName7 Is Nothing And _weekdays.ContainsKey(weekDayName7.ToLower) Then + _weekdays(weekDayName7) = True + End If + + End Sub + + Public Property monday() As Boolean + Get + Return _weekdays("monday") + End Get + Set(ByVal value As Boolean) + _weekdays("monday") = value + End Set + End Property + + Public Property tuesday() As Boolean + Get + Return _weekdays("tuesday") + End Get + Set(ByVal value As Boolean) + _weekdays("tuesday") = value + End Set + End Property + + Public Property wednesday() As Boolean + Get + Return _weekdays("wednesday") + End Get + Set(ByVal value As Boolean) + _weekdays("wednesday") = value + End Set + End Property + + Public Property thursday() As Boolean + Get + Return _weekdays("thursday") + End Get + Set(ByVal value As Boolean) + _weekdays("thursday") = value + End Set + End Property + + Public Property friday() As Boolean + Get + Return _weekdays("friday") + End Get + Set(ByVal value As Boolean) + _weekdays("friday") = value + End Set + End Property + + Public Property saturday() As Boolean + Get + Return _weekdays("saturday") + End Get + Set(ByVal value As Boolean) + _weekdays("saturday") = value + End Set + End Property + + Public Property sunday() As Boolean + Get + Return _weekdays("sunday") + End Get + Set(ByVal value As Boolean) + _weekdays("sunday") = value + End Set + End Property + + + Public Overrides Function toString() As String + Return Me.monday + Me.tuesday + Me.wednesday + Me.thursday + Me.friday + Me.saturday + Me.sunday + End Function + + Public Function overlap(anotherMeet As Meet) As Boolean + If anotherMeet Is Nothing Then Return False + Dim isOverlapped As Boolean = (Me.monday = True And anotherMeet.monday = True) Or + (Me.tuesday = True And anotherMeet.tuesday = True) Or + (Me.wednesday = True And anotherMeet.wednesday = True) Or + (Me.thursday = True And anotherMeet.thursday = True) Or + (Me.friday = True And anotherMeet.friday = True) Or + (Me.saturday = True And anotherMeet.saturday = True) Or + (Me.sunday = True And anotherMeet.sunday = True) + Return isOverlapped + End Function +End Class diff --git a/ApplicationCrèche 1/Model/Parent.vb b/ApplicationCrèche 1/Model/Parent.vb new file mode 100644 index 0000000..cd14d48 --- /dev/null +++ b/ApplicationCrèche 1/Model/Parent.vb @@ -0,0 +1,24 @@ +Public Class Parent + Inherits Person + + Private _phone As String + Public Property phone() As String + Get + Return _phone + End Get + Set(ByVal value As String) + _phone = value + End Set + End Property + + + Public Sub New(id As Integer, fname As String, lname As String, gender As Boolean, phone As String, address As String) + MyBase.New(id, fname, lname, gender, address) + Me.phone = phone + End Sub + + Public Sub New(id As Integer) + MyBase.New(id) + End Sub + +End Class diff --git a/ApplicationCrèche 1/Model/Person.vb b/ApplicationCrèche 1/Model/Person.vb new file mode 100644 index 0000000..9330cca --- /dev/null +++ b/ApplicationCrèche 1/Model/Person.vb @@ -0,0 +1,68 @@ +Public MustInherit Class Person + + Private _id As Integer + Public ReadOnly Property id() As Integer + Get + Return _id + End Get + End Property + + Private _firstName As String + Public Property firstname() As String + Get + Return _firstName + End Get + Set(ByVal value As String) + _firstName = value + End Set + End Property + + Private _lastname As String + Public Property lastname() As String + Get + Return _lastname + End Get + Set(ByVal value As String) + _lastname = value + End Set + End Property + + Private _gender As Boolean + Public Property gender() As Boolean + Get + Return _gender + End Get + Set(ByVal value As Boolean) + _gender = value + End Set + End Property + + Private _address As String + Public Property address() As String + Get + Return _address + End Get + Set(ByVal value As String) + _address = value + End Set + End Property + + + Public Sub New(id As Integer, fname As String, lname As String, gender As Boolean, address As String) + Me._id = id + Me.firstname = fname + Me.lastname = lname + Me.gender = gender + Me.address = address + End Sub + + Public Sub New(id As Integer) + Me._id = id + End Sub + + + Public Overrides Function toString() As String + Return Me.id.ToString + " ) " + Me.firstname + " " + Me.lastname + End Function + +End Class diff --git a/ApplicationCrèche 1/My Project/Application.Designer.vb b/ApplicationCrèche 1/My Project/Application.Designer.vb new file mode 100644 index 0000000..c1600c7 --- /dev/null +++ b/ApplicationCrèche 1/My Project/Application.Designer.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.18033 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + 'NOTE: This file is auto-generated; do not modify it directly. To make changes, + ' or if you encounter build errors in this file, go to the Project Designer + ' (go to Project Properties or double-click the My Project node in + ' Solution Explorer), and make changes on the Application tab. + ' + Partial Friend Class MyApplication + + _ + Public Sub New() + MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) + Me.IsSingleInstance = false + Me.EnableVisualStyles = true + Me.SaveMySettingsOnExit = true + Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses + End Sub + + _ + Protected Overrides Sub OnCreateMainForm() + Me.MainForm = Global.ApplicationCrèche_1.FormMain + End Sub + End Class +End Namespace diff --git a/ApplicationCrèche 1/My Project/Application.myapp b/ApplicationCrèche 1/My Project/Application.myapp new file mode 100644 index 0000000..f10160c --- /dev/null +++ b/ApplicationCrèche 1/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + true + FormMain + false + 0 + true + 0 + true + \ No newline at end of file diff --git a/ApplicationCrèche 1/My Project/AssemblyInfo.vb b/ApplicationCrèche 1/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..aeb9b1e --- /dev/null +++ b/ApplicationCrèche 1/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' Les informations générales relatives à un assembly dépendent de +' l'ensemble d'attributs suivant. Changez les valeurs de ces attributs pour modifier les informations +' associées à un assembly. + +' Passez en revue les valeurs des attributs de l'assembly + + + + + + + + + + +'Le GUID suivant est pour l'ID de la typelib si ce projet est exposé à COM + + +' Les informations de version pour un assembly se composent des quatre valeurs suivantes : +' +' Version principale +' Version secondaire +' Numéro de build +' Révision +' +' Vous pouvez spécifier toutes les valeurs ou indiquer les numéros de build et de révision par défaut +' en utilisant '*', comme indiqué ci-dessous : +' + + + diff --git a/ApplicationCrèche 1/My Project/Resources.Designer.vb b/ApplicationCrèche 1/My Project/Resources.Designer.vb new file mode 100644 index 0000000..4efb381 --- /dev/null +++ b/ApplicationCrèche 1/My Project/Resources.Designer.vb @@ -0,0 +1,423 @@ +'------------------------------------------------------------------------------ +' +' Ce code a été généré par un outil. +' Version du runtime :4.0.30319.18046 +' +' Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +' le code est régénéré. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + +Imports System + +Namespace My.Resources + + 'Cette classe a été générée automatiquement par la classe StronglyTypedResourceBuilder + 'à l'aide d'un outil, tel que ResGen ou Visual Studio. + 'Pour ajouter ou supprimer un membre, modifiez votre fichier .ResX, puis réexécutez ResGen + 'avec l'option /str ou régénérez votre projet VS. + ''' + ''' Une classe de ressource fortement typée destinée, entre autres, à la consultation des chaînes localisées. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Retourne l'instance ResourceManager mise en cache utilisée par cette classe. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("ApplicationCrèche_1.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Remplace la propriété CurrentUICulture du thread actuel pour toutes + ''' les recherches de ressources à l'aide de cette classe de ressource fortement typée. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property AddSheet() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("AddSheet", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property AddSheet2() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("AddSheet2", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property CancelSheet() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("CancelSheet", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property CloseFolder() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("CloseFolder", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property CloseSheet2() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("CloseSheet2", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property CloseSheetbook() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("CloseSheetbook", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property CloseWindow() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("CloseWindow", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property DeleteSheet() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("DeleteSheet", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property DeleteSheet2() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("DeleteSheet2", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property DeleteSheet3() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("DeleteSheet3", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property EditSheet2() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("EditSheet2", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property GoLink() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("GoLink", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property GumSheet() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("GumSheet", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property NewCollection() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("NewCollection", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property NewSheet2() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("NewSheet2", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property NewSheetbook() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("NewSheetbook", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property NewSheetbook2() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("NewSheetbook2", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property NormalSheetLight() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("NormalSheetLight", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property OpenedSheetbook() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("OpenedSheetbook", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property OpenFolder() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("OpenFolder", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property OpenFolder2() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("OpenFolder2", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property OpenSheetbook() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("OpenSheetbook", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property PingedWindows() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("PingedWindows", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property RPNM_Save() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("RPNM Save", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property SaveAsFloppy() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("SaveAsFloppy", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property SaveFloppy() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("SaveFloppy", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property SaveMultiFloppy() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("SaveMultiFloppy", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property SelectSheet() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("SelectSheet", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property UnpingedWindows() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("UnpingedWindows", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property ValidedSheet() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("ValidedSheet", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property WarningSheet2Light() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("WarningSheet2Light", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property WarningSheetFrench() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("WarningSheetFrench", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property WarningSheetLight() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("WarningSheetLight", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property WindowList() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("WindowList", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property WindowList1() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("WindowList1", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property WrongSheetLight() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("WrongSheetLight", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + End Module +End Namespace diff --git a/ApplicationCrèche 1/My Project/Resources.resx b/ApplicationCrèche 1/My Project/Resources.resx new file mode 100644 index 0000000..c018289 --- /dev/null +++ b/ApplicationCrèche 1/My Project/Resources.resx @@ -0,0 +1,230 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\WarningSheetFrench.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\NewCollection.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\WarningSheet2Light.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\DeleteSheet2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\GoLink.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\OpenFolder2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\CloseSheet2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\RPNM Save.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\DeleteSheet3.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\CancelSheet.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\OpenSheetbook.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\EditSheet21.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ValidedSheet.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\NormalSheetLight.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\NewSheet2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\SaveAsFloppy.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\OpenedSheetbook.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\SaveMultiFloppy.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\CloseSheetbook.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\WindowList1.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\NewSheetbook2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\CloseWindow.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\SelectSheet.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\NewSheetbook.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\GumSheet.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\WrongSheetLight.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\AddSheet1.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\WindowList.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\WarningSheetLight.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\OpenFolder.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\SaveFloppy.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\CloseFolder.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\AddSheet21.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\DeleteSheet1.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + + ..\Resources\PingedWindows.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\UnpingedWindows.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/ApplicationCrèche 1/My Project/Settings.Designer.vb b/ApplicationCrèche 1/My Project/Settings.Designer.vb new file mode 100644 index 0000000..acde41a --- /dev/null +++ b/ApplicationCrèche 1/My Project/Settings.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' Ce code a été généré par un outil. +' Version du runtime :4.0.30319.18046 +' +' Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +' le code est régénéré. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) + +#Region "Fonctionnalité Enregistrement automatique My.Settings" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.ApplicationCrèche_1.My.MySettings + Get + Return Global.ApplicationCrèche_1.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/ApplicationCrèche 1/My Project/Settings.settings b/ApplicationCrèche 1/My Project/Settings.settings new file mode 100644 index 0000000..f7f176a --- /dev/null +++ b/ApplicationCrèche 1/My Project/Settings.settings @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/ApplicationCrèche 1/Resources/AddSheet.png b/ApplicationCrèche 1/Resources/AddSheet.png new file mode 100644 index 0000000000000000000000000000000000000000..3e9d6ed41b4901ee2e3811ef6e85df0978acf1d2 GIT binary patch literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1SD@H!x2AA6$+S6}hN-9%vmdKI;Vst04O9%8~^|S literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Resources/AddSheet1.png b/ApplicationCrèche 1/Resources/AddSheet1.png new file mode 100644 index 0000000000000000000000000000000000000000..631a02c3bbe106641e7d55746415f9e62de5fe75 GIT binary patch literal 672 zcmV;R0$=@!P)~ZGv3% z1N{#&1aVU>DvXwa8)p%LL6|$CL{f{voEb-E=DqvQIW69MGmpS7T+UgX`~7~;_uP{K zJRl2X;=9+e_)03L3&;V5IC}p9P{09x9NPc|S-o0A1rxzcQ3X>2CCbGi!46?#lf#$F z2V*epC=iEt;wBI#z>#LNI0~jsR^C4Z$OEmUrVH>?93GC*eINg6+G054$@hM$RU`Jx zO9Mo5F{YY>u}7e4h$xe9Uo-cq#Lxs>IFu)4cn3f=;u+n)kYY9zWpSj$@MJ%~!e!>i zgXB%3!XgC{0X%OEU?zwt&Ix`Ha`DkC8n#V+v)x%Tu`D2wf=D%E-6a%b_55ebr&c;I zGQD*7MfsT#R-(3<{x-{<4A58qGEgp_zJ*E)5y!cEw;7)7r(qQenId8Vf8+<*OrD~5 zjGC-7KMqSXban>&w)LmFc#L8Y&=|g@i%K{cAV4d*wR5A2Rgp0lnGd)QTGbEX{Bd z*aCI|?E+N%3gVhnx9SAG!wf`~&?x{Fe}m?Bo4g4G$x>y213%v#sg=vZ&W<9^Pz4pk z34EyfEVdi~XLC7bU$~<&yHEV13VUp0vff@CHD*pL;O_uR)ha08W$FU}0000RCwBSlg~?3Q545N_r7^EVoDTQZ57-ER!|U#1i7e1Ey9I67enAmYHOj0 z6xdd25w(aQ2oYu#t-`+`jL8U!2!zol&H45G`QAPEws>!xH-ZN)=U({oIrn?dxr$b( zWO=FmN#T+unPY$~kV~>oM5J;vED!;QX+Q?(IQ(_D>O^oNu`a2l99RoZA|z~J_BJ>> zym>ke&_KuYk3|Z_5&$EE!#p0%<9Qmbn~nr$_xVwn1n@H{zZoD~D3%zT8{m&wr7*qB z%wivC9ZOUU*?!qiqwWB7CiQTB;-5WNA=rrPRo)Je%VzL>56{z>&`{k9h(dSdTVKxe zLTSdEUUI6N&YpOGYwA&4b>|YL`Vc5hdA=7bEr3#*@v*r9_FR>m>Ox$I=fj<6S-SLj z>Qds<^ml&0euy=e+P?s2TL1vo4_4VJLuU_oKGfF0h9T8cB@Sw_COf(UD9Q_cSZTG+ zIm@f%*_MUdPd#iTe0kSu(a7LUK963*8lk!sv;pkbH%tJNz_}|A_}T4Uq~5g-KyfV( z+M~FnnORx^r6|w$wpnn1G$#w7dbrMhC9bf$c>SmYN`VQ5%4VbO5nT#m?)6{b!|Y!G z?%x=~iA4Y>7Jw);h}bp@ZSy^G^$b(vGt{;NOeEB|cTfscGDKD^`@12=H~@Pb5Jtfk z-`+nVXjmk2SPQr~I~%KvIE;xeq>lZC<}~`r`J_1djsFJ#6%ho8S|>!300000NkvXX Hu0mjf)fOKh literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Resources/AddSheet21.png b/ApplicationCrèche 1/Resources/AddSheet21.png new file mode 100644 index 0000000000000000000000000000000000000000..f807798eee6677acbd01a27ee859fc7ccf0fcb3a GIT binary patch literal 673 zcmV;S0$%-zP)RCwBSlg~?3Q545N_r7^EVoDTQZ57-ER!|U#1i7e1Ey9I67enAmYHOj0 z6xdd25w(aQ2oYu#t-`+`jL8U!2!zol&H45G`QAPEws>!xH-ZN)=U({oIrn?dxr$b( zWO=FmN#T+unPY$~kV~>oM5J;vED!;QX+Q?(IQ(_D>O^oNu`a2l99RoZA|z~J_BJ>> zym>ke&_KuYk3|Z_5&$EE!#p0%<9Qmbn~nr$_xVwn1n@H{zZoD~D3%zT8{m&wr7*qB z%wivC9ZOUU*?!qiqwWB7CiQTB;-5WNA=rrPRo)Je%VzL>56{z>&`{k9h(dSdTVKxe zLTSdEUUI6N&YpOGYwA&4b>|YL`Vc5hdA=7bEr3#*@v*r9_FR>m>Ox$I=fj<6S-SLj z>Qds<^ml&0euy=e+P?s2TL1vo4_4VJLuU_oKGfF0h9T8cB@Sw_COf(UD9Q_cSZTG+ zIm@f%*_MUdPd#iTe0kSu(a7LUK963*8lk!sv;pkbH%tJNz_}|A_}T4Uq~5g-KyfV( z+M~FnnORx^r6|w$wpnn1G$#w7dbrMhC9bf$c>SmYN`VQ5%4VbO5nT#m?)6{b!|Y!G z?%x=~iA4Y>7Jw);h}bp@ZSy^G^$b(vGt{;NOeEB|cTfscGDKD^`@12=H~@Pb5Jtfk z-`+nVXjmk2SPQr~I~%KvIE;xeq>lZC<}~`r`J_1djsFJ#6%ho8S|>!300000NkvXX Hu0mjf)fOKh literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Resources/CancelSheet.png b/ApplicationCrèche 1/Resources/CancelSheet.png new file mode 100644 index 0000000000000000000000000000000000000000..aa43d3ef7e6d24fe4155de075ee0124b53e4fcd3 GIT binary patch literal 568 zcmV-80>}M{P)eQ4q&JyV-CmVlZbqTMI?3trWyUa)KcK1OCACt`N(J7J>vj z3ya((DWcXvND~O!q!A1M0YwPn4{&oF-k#p&_PsY_v2U0Ba1A&x%)B?eFP|Ca1waUl z0fF~2Q|~U%Rh0-B2P!^>{}2$s03#n2AOb3G<8lvisB@?aBA}umWVtiAG{FwOGkGDN z@M4k+jN=U9@mqk+g?E`lWyptDGkDUiyb=MSI75h`abT^KfA;eklAhw*47LkoxG1gR zc|W6_W=587oM6(ubP<3^R%jetFC}>N@f6}p1k@MyBTy+L@Nf1f*n1xUQ~men;=`xw zpraiG&BYB`Yd@%8oMQgX=C+lR1y+~p`63l)y9wI0h!c08F#qg6lXqt6roy4IfWhL! z+thA4pqaH`|2~8EwRa4i!i~pt+YbO309*JUaP{f$31A4AT%huwzfn|`KLY^c3H?X*foul=0000vS;o~*Py`X>nuJ)24JPKFx8-WrAW~m=Ip@5G-}B>~_Z&q;_%A*)7{DB000rP4 zDChxDvnR^GfQ4z9iwBdb&U)8O%v&HF^cRLreBQH@IR-$nU>Y!LrDoNXswv?uwxw#y znKf=yO)*3S#S)KPAF;2gMC|ZJlcP|C=-Xx0tvmHes~nC8lRLX+Vnq*dr2<=x0 z2+#(aWYf2i)FBS{sw)PR0QpEa47-T}XqjWa{L72h5}*mv09s^k9(sO2Ci o-;c@u51fBw&;NM701@GP0Hue9hkMj&x&QzG07*qoM6N<$f}VKL5C8xG literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Resources/CloseSheet2.png b/ApplicationCrèche 1/Resources/CloseSheet2.png new file mode 100644 index 0000000000000000000000000000000000000000..4657eafab6879f22c4e8342582060313c1c5f548 GIT binary patch literal 569 zcmV-90>=G`P)mv}G{J@%+pF4Y)PTDtylb6p%Pb*X7EPh;VEUtC)Y1hEC zTiYzZd`J`t)+i#bFKz_{TMcY0d%A;jfS3Km|N4!p%HIJ1hWqx(yZwID00000NkvXX Hu0mjf6)^9< literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Resources/CloseSheetbook.png b/ApplicationCrèche 1/Resources/CloseSheetbook.png new file mode 100644 index 0000000000000000000000000000000000000000..58db314b1a3e551a92922e07a80bcfccd7678bfb GIT binary patch literal 763 zcmVO#c}KcFS)lm-eDlL$mfh%O?-=&HLQ z%OH~=Qs~C(lCFY42?R+ab|VpJAO$T`QNzkjW@_$z_xZk07rt9lJn(Ryuk(A(`Ewot zm;f^%0Zs8s37i1jh6e}&pADZehfiPuaw?l@A17k*56d%wNj0uI?NaGZHiw4U@=Nyt60H_ zWAwpT-_60%ArG*Y^~%{nf4{reH*nQhr%S_M$%ASQsqnwI*luMNKdC|NDU6>@N;t&`>kFQHI~rR7ytmVQ!TD`Zm% zvlv<={5L#1KRxHOaKP3}w^=XUrn$k(@azcP$Ag%KkB2?06y>YvNfk}~ji=9559FFS z%;r=8#=cC@Mx8!kxxjv{$q;z7WD0jBwtgW4G#e8c{tT9918>Dz zvMU2gYj7$Db8?e9cM-{`%Fdq%yW1+Nq9X(VGOa;;<IktHEOj|MKRxFY t2lN+4d*=X0vc9@721dp@5CdZW1^`Si7wm`&SU3Ox002ovPDHLkV1i6+Pl5md literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Resources/CloseWindow.png b/ApplicationCrèche 1/Resources/CloseWindow.png new file mode 100644 index 0000000000000000000000000000000000000000..78238fe575da4ef56af9b6eb0580b1ef2219e55f GIT binary patch literal 506 zcmV(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRZ-fJsC_RCwB?lf5rPVHC!HZ$Dgu@{&##i~a>n(xeuXNel)FdJU>W)38V+A|VVy z4E2$y+{7IW2LAy&F_}yT9ZJxufmC}e_e#T+6i;&Uo+o+Flk=%Wg#SPRKEUtzs?IoZ ztP%i%fZ@EpIt8jg8F&i-Mk-?!>xnWqmp}b%dV#IvM4OxbU*QMPsf;DRMJi(npnXm~ zp0H=;m{J|sGjpEYjSYEaaG01C6D@anCRRFoC|_K0$tyNRg3*3(=I*&XW83S*5^)x}M>QH$ z9|}BD;e-;gL>yyu1VH(mjq+^Z+0FrLy#t@YjVP7~bGCE9+tD$AD4->ku}WVBUXp26 zBYl*wZ@A=@6G|)*CeJ(1RIw?N<*8Kx4UW0x2*5b)8v&F#MjJLo-jQrAuORytg{0eu wpd(_`+9Z0$ih@&Et; literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Resources/DeleteSheet.png b/ApplicationCrèche 1/Resources/DeleteSheet.png new file mode 100644 index 0000000000000000000000000000000000000000..56669f71ee4f2906778d48e6c480d8dc3d7daf68 GIT binary patch literal 655 zcmV;A0&x9_P){YM5{5mQ95FE;5*u`hY|-FqC~d$o1d!5S&bt_mXpM-$7!V_12=7{<{W`(+ zcMhF(x+9p00ZFvNK6(WRVsJ}o#CWVcze$v|5x*n=+h~Q2BHOvpHviPxAaz%W#baMdaZ6Ozgk}?Hx>~N6}T64Kyh%?$W!*K?E@2 zXORHEq3|1uSA`{V{b~GSi8nO3PnCUG{2<^m-2mAbV05#FRvy*$I#nm^)0a*$@u|p1 zn#{4q(1k%J`N<}lS==257I5(Ev%{|AXzF!?RJwP5hs2G$O+90RWenAAL!J4tM|n002ovPDHLkV1ji?98drN literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Resources/DeleteSheet1.png b/ApplicationCrèche 1/Resources/DeleteSheet1.png new file mode 100644 index 0000000000000000000000000000000000000000..56669f71ee4f2906778d48e6c480d8dc3d7daf68 GIT binary patch literal 655 zcmV;A0&x9_P){YM5{5mQ95FE;5*u`hY|-FqC~d$o1d!5S&bt_mXpM-$7!V_12=7{<{W`(+ zcMhF(x+9p00ZFvNK6(WRVsJ}o#CWVcze$v|5x*n=+h~Q2BHOvpHviPxAaz%W#baMdaZ6Ozgk}?Hx>~N6}T64Kyh%?$W!*K?E@2 zXORHEq3|1uSA`{V{b~GSi8nO3PnCUG{2<^m-2mAbV05#FRvy*$I#nm^)0a*$@u|p1 zn#{4q(1k%J`N<}lS==257I5(Ev%{|AXzF!?RJwP5hs2G$O+90RWenAAL!J4tM|n002ovPDHLkV1ji?98drN literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Resources/DeleteSheet2.png b/ApplicationCrèche 1/Resources/DeleteSheet2.png new file mode 100644 index 0000000000000000000000000000000000000000..06a2ab11777203fb0933d485cd091c1e615a96e7 GIT binary patch literal 645 zcmV;00($+4P)Eu!y*%LZMKl;?Sa$kTlH;ZS&rJ_a2Ajg`{a6yl^=8-r>i0 zKE9(w1f>*!YSgKg`$u8pZuH1M02a`I*91HumQnEV=Hxl<&tBlevtO*_ z3f!1TFh0`<7OVv^8sobJ2Y-m)D)b;Cq=;ow#H4WXwxo!OlfEnM?>i#3T%#PZ2U*#8 z9~YoER50~&a2ToXGe?5w*%ju8N74CplJwwYKa<=(-_&1vGl*LefJiv!;`C-7@AnRo zvuAkGJBZG&vq}wz3M1*O$kGt9G=%^03fc?MzCdWyTgs0tWM?U&x}(_A9%T&6RN3es zAi3R-8e2t;trDGBtGj4g04ZXb2&CtSM=`qRRa1SILj@pM$*@rrN|!USPwb?p$9o!uHB0>`Ffm< z{sD5hCwdT$&bnz{sL#INAI%W_N9HUDzl!&#`p&I*M`x44aa_{aO-fP-~7x05W$8p?u-~I0X z29N;G0S2eiaiz6pP)T3}NJk@pib|fTlevyFNXwshJ(NUC>1eI?m10*by@TS1QtW6c zc4fD@4><7&q#$v55eVWA0VG=a#3>0RloTWoSeY`zRQz?Fi7W92Xccm@{rTvs{Suu3 zx6vG$0Hwm%*68QH#egsOHLhup*?3lew7h6cya6o0eyiOjq9;Vl(7^WRv3(QUH_6_q z=QXZb%Fdx_KPcRI`2w&?**O3!GK&&Ksm~@5Y|oaabLiGF1*Uj>{P*EnE{~|xSYVuW zJPTNg3{DfAFnE2hUR^0yW}k40k@I5|Gt-Dljjy!Xq6J_NKpbQ+^U0v$t#V)%)7MbW z5r@d$<~{~07|viVmq)rD4w5tm1*ZBKLxlK>|>+bBGi^?w=-ZBdnQQSF0=ED{RwYix#P|)caKqI6|_H*JEG+7xy+Ny+%XQ zY$`_z-Rp&q?~*s2J;NNmpf_$?V)?`K)YHL#U__nxU)>nj&;JGhpr0R$@R5QR00000 LNkvXXu0mjfU(yYS literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Resources/EditSheet2.ico b/ApplicationCrèche 1/Resources/EditSheet2.ico new file mode 100644 index 0000000000000000000000000000000000000000..cbc14e3729fb66c8c708d956b83949d8e1b91b65 GIT binary patch literal 682 zcmV;b0#*G00096201yxW0096X0F(j%02TlM0EtjeM-2)Z3IG5A4M|8uQUCw|5C8xG z5C{eU001BJ|6u?C010qNS#tmY3ljhU3ljkVnw%H_00KryL_t(IjeV2POH@%5$3OGt z%{<3xemIOG^aCZu!muF;A;^VAEnK;YkiuQjqG)Bc4~bk!E`nJqErk37A`8S#L4=Wz ziwdF{)N0f>0K)*x z{KWL1FE8fjzKz^k2ik!aAbv>1{D(pT-$8u#{N?;PX<1EYx`^KUOd@I!G&D+qRvHxE zSqfy$#x3Vb4Q(U>crt<3X9JhMzsf``F?@oV{tU@P1k()CD2Y}TR_7mb`bHsb`nN7% z-+i~xm+I(REkuf3TMsd(Pm)YDW12<-VDncIds_n-y8r`_Kyl@MJ001dyuGd&k&30U zB80*as6*DKIuSL!XFUiU@gX`E4U&62&e2CtSsI1G$v$4T)tv~(rLbY6WE~I&T73wW zvLqI@aB>%6c9F$V%@yJBaZKzvS)1zg8tVfTu;tIUo<-|kx+k-&48!Z} z5E&~;vlYfJlu)wXeaDX~P;RyiDpf((?GIkvD#Me37^fECYtmuh`7*ibo(90K1hCVV z3K2SgrkV5{q1Pv(ZY$8R4t=~mN%{|D+P@0xcHrc$ Q9smFU07*qoM6N<$g1y5c*Z=?k literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Resources/EditSheet2.png b/ApplicationCrèche 1/Resources/EditSheet2.png new file mode 100644 index 0000000000000000000000000000000000000000..54076a192db7304e2731aa57acccc3fbcaf8007c GIT binary patch literal 703 zcmV;w0zmzVP)`SF|Wv zS?xn2SCWfhmP!jD|A5E>aZ?asB;=xkXa=IAfSI3|{`2L<{M@&ZTkAkO&;rB{am@cH6!0sE&z`@W zKPN4#=}Z^Vd!I=}4T6S7DbPxT!n;d>tl7BbJgK3LL;z1F(E4oP()U-Hh$V(kFw>tQ znTTMTK^i5|s>160Lr&i)q)q?T1?;=;7Wz^hU8{vik!$NA=JZLDiDpdGXaH>fDq?SI z0Am+m01_y!+;68N`;)iVH6v27G**OA7y@<3+Egc^ruRw@0!Ms^jzxpy9*=YM(NmU2 zVQ{jKmu>Y*gyT}!uu-xO2m`G?gi2Wwi&{9ji!i&$;;80|aQHYT_9|JM>hyy30Segi z=iBll=a7gO$Y;-@buZnMSyqPOb#{o1m897UV;4#&Sx?{bT?NX`mO-T|=(_#E>sw`b zG7#g`0(?z63_M>ZH{H_!*p&cw+EO7x$J4CMUZ7MeQ!YD{b{yWUlo;F&@M*jk$Eh~7 zuwOa|#9~dvZ@vd5J-dRCs&Ta^!JY6iy3;g-*dXO9K%(aR5svFkUMWOPQWKKOj)N5P zpDk!WNoNx&Ds25OB5LkIK8DiN92eKs0O}w>RJS)+o_T<6E2OCJf_Hi|bEU@h*dnkW l?ysn|yQ=(O$`9T7I{;=84|Wv!s2%_S002ovPDHLkV1jCFG)Vve literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Resources/EditSheet21.png b/ApplicationCrèche 1/Resources/EditSheet21.png new file mode 100644 index 0000000000000000000000000000000000000000..54076a192db7304e2731aa57acccc3fbcaf8007c GIT binary patch literal 703 zcmV;w0zmzVP)`SF|Wv zS?xn2SCWfhmP!jD|A5E>aZ?asB;=xkXa=IAfSI3|{`2L<{M@&ZTkAkO&;rB{am@cH6!0sE&z`@W zKPN4#=}Z^Vd!I=}4T6S7DbPxT!n;d>tl7BbJgK3LL;z1F(E4oP()U-Hh$V(kFw>tQ znTTMTK^i5|s>160Lr&i)q)q?T1?;=;7Wz^hU8{vik!$NA=JZLDiDpdGXaH>fDq?SI z0Am+m01_y!+;68N`;)iVH6v27G**OA7y@<3+Egc^ruRw@0!Ms^jzxpy9*=YM(NmU2 zVQ{jKmu>Y*gyT}!uu-xO2m`G?gi2Wwi&{9ji!i&$;;80|aQHYT_9|JM>hyy30Segi z=iBll=a7gO$Y;-@buZnMSyqPOb#{o1m897UV;4#&Sx?{bT?NX`mO-T|=(_#E>sw`b zG7#g`0(?z63_M>ZH{H_!*p&cw+EO7x$J4CMUZ7MeQ!YD{b{yWUlo;F&@M*jk$Eh~7 zuwOa|#9~dvZ@vd5J-dRCs&Ta^!JY6iy3;g-*dXO9K%(aR5svFkUMWOPQWKKOj)N5P zpDk!WNoNx&Ds25OB5LkIK8DiN92eKs0O}w>RJS)+o_T<6E2OCJf_Hi|bEU@h*dnkW l?ysn|yQ=(O$`9T7I{;=84|Wv!s2%_S002ovPDHLkV1jCFG)Vve literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Resources/GoLink.png b/ApplicationCrèche 1/Resources/GoLink.png new file mode 100644 index 0000000000000000000000000000000000000000..59a31f752daf182d68a3a2ca7ff0b2c0f83cb389 GIT binary patch literal 793 zcmV+!1LpjRP)lTKX=U{wR`WP6Ifwh>ErgkVQkh~WBlIKFtLfA~%EmqKcK~(9 zz^q7ALZlcI?{r)rz#1`yELv!HJ5VGGx3kWX7BPq*fH`P|jC~5-&iGPY01RzzkeZG2i=W}%QARF@v8wNZ5HqdwSE%iJ!Q65zgWqz&>jg!|?TMzj ztq|aq@b3#yEf;h6d<;Eu6@;2WG=afDxa7v;Goz`1rh$7Ap{)TlHAuYLg8+y?u(01~ zA86Me8uNc~GNlQdr4vi=9FoDy?0P1XYuR*sK82_A9cZcpQ2rQ60~8h}yVcl?C4;NK z)S9?LT=WV_<|#}@8Mh~bnK6lpmJxJWb^vwTW+7l{38(_j0>uHjGZ3b_En(VeoPQ4h XC|&)E0~++F00000NkvXXu0mjfO)^@` literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Resources/GumSheet.png b/ApplicationCrèche 1/Resources/GumSheet.png new file mode 100644 index 0000000000000000000000000000000000000000..c1c95efedcf5de1e0cf785b4ff26d2ef996de7ac GIT binary patch literal 647 zcmV;20(kw2P)_Ub z2C@Jfhy%$&v1Wi2keIOc4DQ*MF$T-B7%`^`#hN#l2iJk})8&1DCMpdGpg#(T1L;Ds z<{eqguzV^u|Dk0o%3! zh0$HUytv2FtIeD}xHmOe5%Xf_8;37lfw?^IZ@l7G@--{TEj*_~d)olmAs`1F0C@Sl zJ~W3qbn!BJW|nIO#fGx@U(~X>AzsMna4+-lI|n&0-{?FUOA&zC=EX)%Q@MOY3(B;qL}$rRnbYNNE7{I6(Ba8+>}UM!T(1!UX-V!#x-ysSGk;i%HX% h2uGFwYdDSn1_1t{1X>tU(60ah002ovPDHLkV1lTc1?m6* literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Resources/NewCollection.png b/ApplicationCrèche 1/Resources/NewCollection.png new file mode 100644 index 0000000000000000000000000000000000000000..cb1bf97dde8a9647a11ff4efa30179e5d4efff3f GIT binary patch literal 739 zcmV<90v!E`P) z@?Q{AQAlVhf`XI^gW#fdRaz(#NWr4mqFBTqI5kc(aWZe_{kZp@T=a=NP~O6~L4Mz}XX2XJ=^a|Cq_~8WUqx#tqn@q#|^IS8>W_1XO`~dDep*Zg+zyB7&+S3KfZ|=`&uYH`qP-7tx*s z8V&MR;NO1^Fy?Px?8N*Z0aYJ_&yLKX3R)_#zDqp@dA`cn2LsGUb+GGH#y(_M>k;cu z*{(`t0UJaRg&;~0DMJZrP%SBYJ&*~Adnif}R1}Q>M3h^J#z{GmuGa_Z7yAI z^7j)Qpmu2DyI?BSw{lzW7bdE5wfP%qn&O-4M(T0p5P z03c8dlH2I^xUh7MtluN}fT$v>sDP-l@Wb_D%*#m?@jzjsDL3)0ZF~=;e4GL9%>edc VaHRPbf(HNq002ovPDHLkV1jknMF9W+ literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Resources/NewSheet2.ico b/ApplicationCrèche 1/Resources/NewSheet2.ico new file mode 100644 index 0000000000000000000000000000000000000000..d1f3c6e22d50fe3b2f9f4c69b1632a12ad37e7c7 GIT binary patch literal 626 zcmV-&0*(Cu0096201yxW0096X09*n902TlM0EtjeM-2)Z3IG5A4M|8uQUCw|5C8xG z5C{eU001BJ|6u?C010qNS#tmY3ljhU3ljkVnw%H_00It4L_t(Ijg6DPYZO5gfWO(j z+hjTJqQS^P4#C1gBt#2SSo@=~iA}6U8?jGqX=!0$ZK(wR1#JvkSqK(E1BoGC?vlIR z?CtH&k7u!)+~rQe2g74v-Z$So<|)7fd_a|pr+2B|Tc&n(k@+y7F^Gpr!DvArr!^bDC%n_vDSO+p7uK+Xl=lwp;BGw|} zaN58y!Ph%@wL?_PK&^)CCuCdhov|zcdjN%j)p)JPfB^*b0Q%d|*??*XF4n+{AZSqS z#5eSB>gBVk0G_iN4~<&=2*6yBvwXhG^V>acEeSy!L%jjVF`~dYq`0X7Ag7v%O_*$mAVDMIRQXD_zXbk8=7Itla&GUev8FM!kud&y}cjI zp3BqTHr<5=dSqY=z^Q>auo>h_pa+;?N_3R)Yj=n5AM)2>K=(?Md}LrbW1s+EIjWw+ zSAtTo_2Lpq=JEau2MY}bt2eP@fC+<%(3#<|9ig@2?ItOpUp<;?;>h4{vH$Y&={W%P z5M=Gd!2F-ViRpNh00&q^3_3H@fZSlMJMGmZz}f5wt5bTN7@bc8oOPs0jwwtXh($ M07*qoM6N<$g2ccOQ~&?~ literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Resources/NewSheet2.png b/ApplicationCrèche 1/Resources/NewSheet2.png new file mode 100644 index 0000000000000000000000000000000000000000..cc14bc410e7e3c521e025786883ab9869ae33f1b GIT binary patch literal 648 zcmV;30(bq1P)tWh`i%`B1M&(mV}IW7<1At=A`Yhw3=@34i&r~DH4W5i$U#E3?cN#7BCroo7+8(h zd<+;sKo6k51D#E%cHm+Sya<9i)lPgv|7NayHWk2gR^y>jYaaoa4{}z{cX@uh$E{@{ zh+~+m!*Pr#Fb*khDgcNp_OiJOSTI9KTF~i&K8C#%ks&5l3|sQaSbC*y0dP(LP!B!> z5c-BjnDS(Gz=Gdosh)7>T1apI2eaq$w6{Zdv5r15umxajAP#H>`7-DMW|$HkCH&gk z<@<;Hbr{gS(jY%Eu$(bafUg`?&*3XUDcF8-i6rxQ|AqEqox$2o>?y#6!9?iHaM+5_ zTJd&^6wt38O*Qev;BRs8^78l`fO-hBJ~A->XD~879VNg477>Ha%rqc3SnI~UnglqT z9bt7!uM?y5X@IkiG|4fAsT+Nw5kL?7Exx|lAc`DT3(ggNDRNO_tY8YZJ`GUiB%YbZ ie}pTGvobpo;m-hU6eogqk{bE|0000(j?f%QngSiMHGXOQdh*tPpwyu)3!NY&3vKAWXgS h)qaF+zg&Rd0|0>a%k)AtAF==d002ovPDHLkV1lC~4_p8M literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Resources/NewSheetbook2.png b/ApplicationCrèche 1/Resources/NewSheetbook2.png new file mode 100644 index 0000000000000000000000000000000000000000..f2b824c8e66c85d700b2378cbd819f4468db2fa7 GIT binary patch literal 768 zcmV+b1ONPqP)XU=WT`C51!$MA)Zck%K4zUO^-9|@2F z1rUJicL2m_=`P@R$v*%dV5>l|<$T8j+q6C}P0ddNRvAPAqCgU;1S0;2Ca??qk$}qf z{;r%}X(6pR!S7~E_?$`xt=_5-XNXq;3=8^{4v`(ZdHs(uC+<#5->k_q=OOpswO)4HHs)ebK zCA}z}1&eBxvdSe5BAQNnf7j~G%h&1eK8vRBLVH0f0B(-qX=iq~>@8 zFW3X_X(*mT&jv7Lnambh^+-TnkiLgQsK){XRFk@sH^9-rwXsZ_^|{}?`k1EK+RCcs zi&LtU%B`LehMEU>x41^lMvk7&3L;SnPq8Ri@TZ`%^$SA=ik|CERc(h4F@~Bi@nq^H z()wd2J}jac3aBAaLpZjCS(KSu#*qQr(#=PS%_t?vz6X20&QHW()!JDAoh9*CBK z;?nf|gtX!emmt0e)CN(UZ931SaEt=Ezj?Hs0tMYe+DnAk_rS``EQ~kOI-DRnMjCP* z3OJD6%=6>X&B({?f^M31V(8d`~eUUfI7`BVDxZ*_3koo5y2i+(i%4uN~*=2 zgQLlAf~hrd8GHMOKO5HA%NlNPE=i` z*s=!MnpgzL0LNV{o6z~FsRNRw yvqVd^EgjpAOmHr zHK6}+fA#J%aIpmYQYH4dpz2Km5M1!CqEzdvi&c&R3Bx(7^@n z40^*>|MRC4W*>7R&9n}vwMY4Mqd_h!#?NEStP$%1q_{NbU9=jUJsy+XHv@>kHUnA# zzc%3K6t)^HE7zXFHUs|q28lL+3~=1VqRNd!Rhf}2%H0IW7BgfOZ!fRpvI&rkVp<^c zRZsXjAXn1~ch@7Pp9NZ|{?aKbh-6YGsce98V_y3ySQ@HGIy;LYY(atXlz0000< KMNUMnLSTZ~pr{1^ literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Resources/OpenFolder.png b/ApplicationCrèche 1/Resources/OpenFolder.png new file mode 100644 index 0000000000000000000000000000000000000000..f30029638060ed59c79d1caccdb1791313fb2b12 GIT binary patch literal 543 zcmV+)0^t3LP)lBpe?y4Z3OcPT9vwXQncdo_?vqPcmy+?!s%An}32`|@z!-*e7^qeO)3s^S79 zfHA)U*uZbU0+1q(u2s|x0P{`)n6~oSO4v5J!n_X&fVSp#C9Hh5VseF#p~S%ZYUQ(Y zCRdmNY^r4d6c7QTK&-U4^J44tU}Ed^;2EHdI2dupjW}Oen-$h(#fbAkM9`@P6wtR_ z$ z1;naln#uHQ+>>J(b(b!+KKxEH`hRSjM%`ujRd>@zhpYgZNMN`p$J|F9K%;)vOFF=M z2k>OzUg4PlApMW%Dcx(c5x#=-8a?u!)u7jaciv?G=#Y_ahR>Vq176s>@(+LqcdVGd hCjzLy-#|q8Hvo!xpL@Tp(L?|M002ovPDHLkV1o34?Ueuk literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Resources/OpenFolder2.png b/ApplicationCrèche 1/Resources/OpenFolder2.png new file mode 100644 index 0000000000000000000000000000000000000000..0cfdb28a7d75c9297195b571893d33b9e6bd39ae GIT binary patch literal 636 zcmV-?0)zdDP)dVHn3hm%G#-MO-uuijEmN7@>kVnFOLmaO={^3KnTXcegZu zM64P@GU?dKrOGAUMby@YMjW&qa%lspi1BiF@8gim^%@oWz{>;A`#hiTm-mMzB8*3! z4nQ18`Wc`NeDpH_X<`_Sn)Vlf1uG8R%@p&saM>)B7JSGE*f#ig#52Ww%`B9jgcL`$ zSD9jd-Yk@6fj0Fj02&YhqQFFDbK}a|e)GoKe)AHbnPOpzb=?%}B`b5n%AA;DJrEI$ z^g}d2UoZ1CYOn~vyW0RbE@dE>(WX38EHcIXe8^=xP+l+dENZZrx^oLe00p=--n_>i zP?>$qa%FSl!qnBv*G^BKy(l7W-7r3+iM2H#TCXxlWpDaC02jmoJQ{DejvbEc@gn<( zB~vVwCWZz~)T`L3> z`)C-zQ{Z|269K00vm8DHuWz&6+WIzqlDq5MYy)1ncI+Pjr~b1h{GJG)?YssN;m-g! Wz~yd6e)>NE0000o7;-8GePp}_5Q4IYLVqQSP+k2;$& z{PoTIbMX?LuFKKnAz;YS-PP`Px&{;4LIAlJuGDOQuKh{QW;!KX#Z*4*xRrIvY6^C49`|eo_s!H=WSJpg}cl*8rp(Fr6;aV|Rb6Nj{3w8MJQ4h^+-`ez4dKjGn+xskEn0`jv1$VdP^@C)0M zyc!_Qz)_kD0Pt#Il=_MQcAG|CX$$6(+oYFv@W<;zDFt9S8gM3+hTdjSU>1AW>k7$8 z(?Nv^`h)m(B?tErrsx1AE8oO}x;r$NG%@nUi^b#Pl1-A4e(;_amhn^rph;by$=OU# zVlO(j>b zI=eV7eneX1keCOjQ!z$1sjkQ;5)81r>YGwqSVV6-WvP*S3lin;#ZAc;f% qi`WMPQWCzphz8M$B@hBae+K|)-4YXWtoWq>0000N<>eYx*FjN0Q52+**{xR_llpN zS=*%UN0UIS+VEi;764D)t};Gkkxscp6SElc8-x?L_>nh}QUa)r0lgt67G^+#p_E9E zou#eS16jo`+n7Z`?L3O!Fg!7x`LWx~#HU#Kn5Q#maw#Qf3)k**tD^23UEz7_C-=g2 zjG6cpi|b3Mxko&Iu}R5v4||?dpM&Z_x$>}cx1B>s;KAB5>A@ zu)k~a;qg5xwm`TN&jaDrvH*yqnO6YgLUQn`(cXGjRkf6q5-9{y%E0x%f^>Xn6hGb} fe;(9-Mfvvtf{M~3G%(mr00000NkvXXu0mjfF1jLX literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Resources/PingedWindows.png b/ApplicationCrèche 1/Resources/PingedWindows.png new file mode 100644 index 0000000000000000000000000000000000000000..505ac46d056002b1e7e7adc50cc795da63a20b00 GIT binary patch literal 518 zcmV+h0{Q)kP)(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRZ-j7da6RCwBqlFuu{aTv#6&v#$)BPAhfX~(VHEPsF$#ns7W<>X>+a#(FhIq;40 zqg*&CMI0!}L5bY8v=hZ)BE#B-<#DjhckH|NuBSddz2Ber`}2GrQB|DqBm%&Dar?}G z^fL?r34;pY0`#|%ZP93N5{^!xqoND=6;B&JUo+?DbcRCR8Hkw`Xs>|BFG#t(-q!Y| zrLM!_;rr`{2g88&e8L)_0ciYNr|_Y%nCi}srYuW$TUzdCU<;@RswB9);RgnR0l=TP z9kFHr^fjB6x5NwmkuWzWC+uBZauc2dH~`iR+Y?JcQow9aAKQ^BJU$=URMI{cL{=cz9aI7S-Lf9cpNvgu@A5F5tNx|HHdZk4NY<)U(Y0w3Q40RNtjx%T=q-2eap07*qo IM6N<$g6dPH+@*DMwPBk)M*ISPfa6GI zxRhz#2SdOHFIZY>RwF4zHi|ddOX2|`kY+y3%s;At8aNvFmzV;+29DmZ*H7XcA8u{{ zNGYMJs45`@hG9TNaLyqjd^|tr{_c()oYX+=t!3Rb#29Is=HQbd1a`X}Z;p@o`s1js z0b-2glmAXR+ zr4KPia?Z2aO#mXocDpS>DW!i(F#&wJy!_QL=MZB67*awGz-F~q5xg-BV^BJf{w!d1 zaY0p8pGW0!u zl*)TwI&X|YL<*qmI$r$-(5J^oZjIsf=_%G)`o1qJbX`|QIfU@XuvH^uc?S0pc-OXA zYs>Kb3`{AJb7rwv@a_7V1bl{*>RBc){gDdzD*r{I|FQ1_016N_u?_Vm4gdfE07*qo IM6N<$g1F+=7XSbN literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Resources/SaveAsFloppy.png b/ApplicationCrèche 1/Resources/SaveAsFloppy.png new file mode 100644 index 0000000000000000000000000000000000000000..370beb7b9a295a3a0ed2517287378364003de58a GIT binary patch literal 705 zcmV;y0zUnTP)=I;X69$nG1T7+nYL&J2 z4{%qmYB#Gk6$2s^Eeli{NGd3T{1HNtF{q=J`JTVMZ{D5TqG?2}u(P@6oO{3DbME(W zG{6AD)$@PM2eu6$+?&a)DW$la%N+>$u(y}*v$H()yaod>)|Qv)Y;OmkySw|J;6kCm z5!0mTc>sn1Aj@Usuf!isN{JAn=8r5cqF3)~|CYXA16+Mxtoh3K5o<2jg71l|75q>K zSX+J(NU?|N$h0beP~l?qZy3WY+gRo8W~ zPE2w9D-3T6nw>KB^`U(PK~bsTcpf8teMAg{0I(?pBlk}-IsK7ahRw{~Q6l;fx~Agzl)$Mx1uZrPJbI?&N$kGB8gYfd8w0@mKH3_A{vdd zw6w(MJssftKCA2NjNduKm^(pmaGqmRF|dnNKcw+RM=n5Kzs+t{{EDwQIgPLoU~ca2>G4$oY;v9Mj7*M|dJco%!HEDI?m z@pzm>B0)47MXL&^l;V0O1Hfx&&`JY2H9h#`(LzK&f936H2e1J&0}a4jHCBJyMu4W$ nKu!ToRZSv52arCd72@MGeA;ADM^Jbm}KN5lpdYXIll5=w2J@*<~YyJZR5P-X>=Rg4~0l4jYeXh0U zrq?@(dEag`8I5>|qPzgad^+W_QURdVYW+wa3PEs zZ|&N)O}Sj=qu)OwpfxHC0cbXx1VI2mx7#I?$>2B+wrw*U4tY6rkSIm8SP*Wa%;j>p zu8R7VOWCh3&-#2h3?sF*D!)pUbrP6$P-j%)3MY%=+cMcl~~CwdVcB z1pp}}oO39pkW!+x#yQ7_qa$u_ZukgKi#6r0sB2yw959>B==FL4wA*buoen7_y!T8d z6TWNRxGo-3uBz%$<=17&m;3vs?!rh(|L_p!9A#N<6uK&7JRb8yYck++ZqA#X_VvK|}BJt4xGbDiT56x(pKfI0DxdES_t&ga%*P?ITNg2%ttU0z==#s{GQLS0pSozHpE?V^+-#z;zu zx~{R-Vy#68!Ludc6TAfOR)4{qEA{*>+(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRZ-y-7qtRCwB)lRs!vQ51*27hecgw1YV4(4lBW2vU?vrbjmiyL5087jY?WI*H&U zNI~3G5OENPQgLy}TIeK#;*cd25p+=0)U-*Hym#L@$07H<+UCW<3x{*z-t)WP`EvuH z1RMYYZ{wDElWcEhgg_ancwhR5fC3JPy*Gdms5C!3+cFg}#ccRc0O0qSpsvrL*XG>C zw60k895690w1(gemIukPV+MHzyV}65Fic7i^W)i{!X9I8((O>Ug1%V4S*YO zISh2e-4+)UC`LlUTy2HwnPWtk=6L*|p40D1VLw5d3hj1>)x~+LrzVMJfX=Vc8e}Q# zClG|$+DoeEr-@D~^tSW6g#yI{*I8YhhxjNFbPSZ^wvm>D5ZNqeXy{QkL#i`{4s#c|>ObKc#)M&tdb91uTIM?ThXZEgP8W~bXn zQ_V*@@EtNWTq?w|(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRZ-l1W5CRCwB)lg}$eQ545NXFN4!lm$&Pe#Degin1nu01K89OJ-pvsaaBrM2)u? zEXU5yMp9CyER?c9l(8_=6iK2m26ZfW&og++sc+re`JU7Fd+xcYD!)NIo*3W<=mCalKm>P78E?G>g&g<8y|V+-+2L^-v$5!rN?{yds=P) O0000#BO(Z%A<4aqxqI*J&RFbTl8c^{P(xB zvjGqSYk)S@uc;}N(KnUri7#v+h4cjzxRDVQAP3B3|0y_ zT$EC+$LFZo(%3Ltj!2V#=`sK!ZlT!mc2(Nld_cgR>D^eP_|rr0>IkgcSgQ4)YEX5e zBCIQ+JRF6$k-}4oK?B_1-4i|_MrLVyKwe4I6P~~9&{zh956BRmx>c6bUv}MBFnP1J=TaYRq(!vNO}h yU@6@UEckNP!2iTnzcE-*x(XydFm9CW-vI!B8XBWX*!QIX0000~g{xL;anJ^_J7UMG<`>qK`!M;TOwIjJTCm;x(@Otr4v;rk%uKnIg|upc>)% z3YuCO111wk`2Gg@saaTomwT5-9#{Y-VgR?kpA42MBA2j#?DFd}$R(&Y#uEYR8ARQw zLT@L?g-4AQz!H#m(zQpS+tsdBil1J!;0$KRrWmt^*zztM^ap9263rs2XfZa!@Q O0000u4^P)*lE^UHq^6wo`X`1s}po^+gL%0LNmAVQJSMD(tR{&vO=*B(eGZJBgH zKENyAHL^D5*hK^nX>%(K34(wy4B4BRSpgmwmhkTzd|%(-s0G8}5J{ z_MIoVPn+d9rrYfT(ChWM9mjm0o?fL$V3J^WeS^amXsxN&>qJqMc0_B&z*~3@JV{5_ zrQ@Du<5 literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Resources/WarningSheetLight.png b/ApplicationCrèche 1/Resources/WarningSheetLight.png new file mode 100644 index 0000000000000000000000000000000000000000..e93d003e08a8977bcb037b340f7aad01e51b0916 GIT binary patch literal 569 zcmV-90>=G`P)_b|qsSt|l~Zj)b{%RT+>=x2t98rmvG_h+aDt$>JSR(})C! znnre?^44{Ytc`8#Jc8=8I`$Ft^ugg4^e%88c#wOAf8XGEX@+nWR5PuQn$VNL))ezs ztBkh=()OJtcs^O@+7x{Gp4PuNVDK?)RvCjFfo_67A7*HMN;^JS0r}-rBM1^`Oz;YL zm|EAS_7<_|SfOLZ_DY?K?~EIRcfFHWe26rDMqo`6V2xsbr-_a=0AT{CE-$W~uEV7B zh+3VrSb10D}1{rUgj zo>{e_v(f3mi30}?96WG9fnlj9qrHTLgxv-M0|SmH{;?nCNXVZ2t6T8x&LOF`&YPT* zd{S=o@K{77tl^CO*fLdl^~`M(8bN?H(r&V0W8$y>tOaIz48hHb44YVtq~#?_8ILr` r^8f+sg$zYg)1Wz1B-w4unb;W8Y|VSWzFQd&bP$85tDnm{r-UW|0Dw^G literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Resources/WindowList1.png b/ApplicationCrèche 1/Resources/WindowList1.png new file mode 100644 index 0000000000000000000000000000000000000000..5b196a300c32a00c53bf469d415369690449c8ee GIT binary patch literal 257 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP*5S+ zBgmJ5p-Pp3p`n?9;pcxK{gQ#9)PRBERRRNp)eHs(@%%~gN8NyG+dW+zLn>~)nY@v! z*@35R|77VHF1tk+R$9z?Cwuqk!#5!o^DiEKs1W<6kn89x-q>HdKNUHDGIt6I2A%M5 zVU#*Cy@G}RjMRzV(#z(u*Vpm>x_Rg2>Q9sA&X8Hm$dx=-=4gbv!^T;4!K(a)j`fdX y4_~XB)A98kUp;$8LzTq&JB|K!sb4?m*YGmPEz1o1t8f71BnD4cKbLh*2~7a4LR;qm literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Resources/WrongSheetLight.png b/ApplicationCrèche 1/Resources/WrongSheetLight.png new file mode 100644 index 0000000000000000000000000000000000000000..a9de55038ab43348a9569d275ad73772d0c5199c GIT binary patch literal 653 zcmV;80&@L{P)Lg#5PJ>3KpxK_>Zj*Zx8 zRi;wfrsw>G-$|z31YXfL-N#S;4cG_0wk=*ioyI|0aXlWuL^OyH^-i?Ke{<~;rD6rA zOrtqL1NM}tSR92Jrj0j3%p)Z4e0 z1CtOjRvGhkp>x~hu}MdSsAl$-1eROqwyhSvs zYN4tYZ{o9zhx@Qn89q_rE_r;IY*1qmKS0zS3T@X)Xxk#ckt4TWmlFeL8Cm|wG8RdS z^z@%5#wI&x5)>L77{H~ZGv3% z1N{#&1aVU>DvXwa8)p%LL6|$CL{f{voEb-E=DqvQIW69MGmpS7T+UgX`~7~;_uP{K zJRl2X;=9+e_)03L3&;V5IC}p9P{09x9NPc|S-o0A1rxzcQ3X>2CCbGi!46?#lf#$F z2V*epC=iEt;wBI#z>#LNI0~jsR^C4Z$OEmUrVH>?93GC*eINg6+G054$@hM$RU`Jx zO9Mo5F{YY>u}7e4h$xe9Uo-cq#Lxs>IFu)4cn3f=;u+n)kYY9zWpSj$@MJ%~!e!>i zgXB%3!XgC{0X%OEU?zwt&Ix`Ha`DkC8n#V+v)x%Tu`D2wf=D%E-6a%b_55ebr&c;I zGQD*7MfsT#R-(3<{x-{<4A58qGEgp_zJ*E)5y!cEw;7)7r(qQenId8Vf8+<*OrD~5 zjGC-7KMqSXban>&w)LmFc#L8Y&=|g@i%K{cAV4d*wR5A2Rgp0lnGd)QTGbEX{Bd z*aCI|?E+N%3gVhnx9SAG!wf`~&?x{Fe}m?Bo4g4G$x>y213%v#sg=vZ&W<9^Pz4pk z34EyfEVdi~XLC7bU$~<&yHEV13VUp0vff@CHD*pL;O_uR)ha08W$FU}0000RCwBSlg~?3Q545N_r7^EVoDTQZ57-ER!|U#1i7e1Ey9I67enAmYHOj0 z6xdd25w(aQ2oYu#t-`+`jL8U!2!zol&H45G`QAPEws>!xH-ZN)=U({oIrn?dxr$b( zWO=FmN#T+unPY$~kV~>oM5J;vED!;QX+Q?(IQ(_D>O^oNu`a2l99RoZA|z~J_BJ>> zym>ke&_KuYk3|Z_5&$EE!#p0%<9Qmbn~nr$_xVwn1n@H{zZoD~D3%zT8{m&wr7*qB z%wivC9ZOUU*?!qiqwWB7CiQTB;-5WNA=rrPRo)Je%VzL>56{z>&`{k9h(dSdTVKxe zLTSdEUUI6N&YpOGYwA&4b>|YL`Vc5hdA=7bEr3#*@v*r9_FR>m>Ox$I=fj<6S-SLj z>Qds<^ml&0euy=e+P?s2TL1vo4_4VJLuU_oKGfF0h9T8cB@Sw_COf(UD9Q_cSZTG+ zIm@f%*_MUdPd#iTe0kSu(a7LUK963*8lk!sv;pkbH%tJNz_}|A_}T4Uq~5g-KyfV( z+M~FnnORx^r6|w$wpnn1G$#w7dbrMhC9bf$c>SmYN`VQ5%4VbO5nT#m?)6{b!|Y!G z?%x=~iA4Y>7Jw);h}bp@ZSy^G^$b(vGt{;NOeEB|cTfscGDKD^`@12=H~@Pb5Jtfk z-`+nVXjmk2SPQr~I~%KvIE;xeq>lZC<}~`r`J_1djsFJ#6%ho8S|>!300000NkvXX Hu0mjf)fOKh literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Ressources/CancelSheet.png b/ApplicationCrèche 1/Ressources/CancelSheet.png new file mode 100644 index 0000000000000000000000000000000000000000..aa43d3ef7e6d24fe4155de075ee0124b53e4fcd3 GIT binary patch literal 568 zcmV-80>}M{P)eQ4q&JyV-CmVlZbqTMI?3trWyUa)KcK1OCACt`N(J7J>vj z3ya((DWcXvND~O!q!A1M0YwPn4{&oF-k#p&_PsY_v2U0Ba1A&x%)B?eFP|Ca1waUl z0fF~2Q|~U%Rh0-B2P!^>{}2$s03#n2AOb3G<8lvisB@?aBA}umWVtiAG{FwOGkGDN z@M4k+jN=U9@mqk+g?E`lWyptDGkDUiyb=MSI75h`abT^KfA;eklAhw*47LkoxG1gR zc|W6_W=587oM6(ubP<3^R%jetFC}>N@f6}p1k@MyBTy+L@Nf1f*n1xUQ~men;=`xw zpraiG&BYB`Yd@%8oMQgX=C+lR1y+~p`63l)y9wI0h!c08F#qg6lXqt6roy4IfWhL! z+thA4pqaH`|2~8EwRa4i!i~pt+YbO309*JUaP{f$31A4AT%huwzfn|`KLY^c3H?X*foul=0000vS;o~*Py`X>nuJ)24JPKFx8-WrAW~m=Ip@5G-}B>~_Z&q;_%A*)7{DB000rP4 zDChxDvnR^GfQ4z9iwBdb&U)8O%v&HF^cRLreBQH@IR-$nU>Y!LrDoNXswv?uwxw#y znKf=yO)*3S#S)KPAF;2gMC|ZJlcP|C=-Xx0tvmHes~nC8lRLX+Vnq*dr2<=x0 z2+#(aWYf2i)FBS{sw)PR0QpEa47-T}XqjWa{L72h5}*mv09s^k9(sO2Ci o-;c@u51fBw&;NM701@GP0Hue9hkMj&x&QzG07*qoM6N<$f}VKL5C8xG literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Ressources/CloseSheet2.png b/ApplicationCrèche 1/Ressources/CloseSheet2.png new file mode 100644 index 0000000000000000000000000000000000000000..4657eafab6879f22c4e8342582060313c1c5f548 GIT binary patch literal 569 zcmV-90>=G`P)mv}G{J@%+pF4Y)PTDtylb6p%Pb*X7EPh;VEUtC)Y1hEC zTiYzZd`J`t)+i#bFKz_{TMcY0d%A;jfS3Km|N4!p%HIJ1hWqx(yZwID00000NkvXX Hu0mjf6)^9< literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Ressources/CloseSheetbook.png b/ApplicationCrèche 1/Ressources/CloseSheetbook.png new file mode 100644 index 0000000000000000000000000000000000000000..58db314b1a3e551a92922e07a80bcfccd7678bfb GIT binary patch literal 763 zcmVO#c}KcFS)lm-eDlL$mfh%O?-=&HLQ z%OH~=Qs~C(lCFY42?R+ab|VpJAO$T`QNzkjW@_$z_xZk07rt9lJn(Ryuk(A(`Ewot zm;f^%0Zs8s37i1jh6e}&pADZehfiPuaw?l@A17k*56d%wNj0uI?NaGZHiw4U@=Nyt60H_ zWAwpT-_60%ArG*Y^~%{nf4{reH*nQhr%S_M$%ASQsqnwI*luMNKdC|NDU6>@N;t&`>kFQHI~rR7ytmVQ!TD`Zm% zvlv<={5L#1KRxHOaKP3}w^=XUrn$k(@azcP$Ag%KkB2?06y>YvNfk}~ji=9559FFS z%;r=8#=cC@Mx8!kxxjv{$q;z7WD0jBwtgW4G#e8c{tT9918>Dz zvMU2gYj7$Db8?e9cM-{`%Fdq%yW1+Nq9X(VGOa;;<IktHEOj|MKRxFY t2lN+4d*=X0vc9@721dp@5CdZW1^`Si7wm`&SU3Ox002ovPDHLkV1i6+Pl5md literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Ressources/DeleteSheet.png b/ApplicationCrèche 1/Ressources/DeleteSheet.png new file mode 100644 index 0000000000000000000000000000000000000000..56669f71ee4f2906778d48e6c480d8dc3d7daf68 GIT binary patch literal 655 zcmV;A0&x9_P){YM5{5mQ95FE;5*u`hY|-FqC~d$o1d!5S&bt_mXpM-$7!V_12=7{<{W`(+ zcMhF(x+9p00ZFvNK6(WRVsJ}o#CWVcze$v|5x*n=+h~Q2BHOvpHviPxAaz%W#baMdaZ6Ozgk}?Hx>~N6}T64Kyh%?$W!*K?E@2 zXORHEq3|1uSA`{V{b~GSi8nO3PnCUG{2<^m-2mAbV05#FRvy*$I#nm^)0a*$@u|p1 zn#{4q(1k%J`N<}lS==257I5(Ev%{|AXzF!?RJwP5hs2G$O+90RWenAAL!J4tM|n002ovPDHLkV1ji?98drN literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Ressources/DeleteSheet2.png b/ApplicationCrèche 1/Ressources/DeleteSheet2.png new file mode 100644 index 0000000000000000000000000000000000000000..06a2ab11777203fb0933d485cd091c1e615a96e7 GIT binary patch literal 645 zcmV;00($+4P)Eu!y*%LZMKl;?Sa$kTlH;ZS&rJ_a2Ajg`{a6yl^=8-r>i0 zKE9(w1f>*!YSgKg`$u8pZuH1M02a`I*91HumQnEV=Hxl<&tBlevtO*_ z3f!1TFh0`<7OVv^8sobJ2Y-m)D)b;Cq=;ow#H4WXwxo!OlfEnM?>i#3T%#PZ2U*#8 z9~YoER50~&a2ToXGe?5w*%ju8N74CplJwwYKa<=(-_&1vGl*LefJiv!;`C-7@AnRo zvuAkGJBZG&vq}wz3M1*O$kGt9G=%^03fc?MzCdWyTgs0tWM?U&x}(_A9%T&6RN3es zAi3R-8e2t;trDGBtGj4g04ZXb2&CtSM=`qRRa1SILj@pM$*@rrN|!USPwb?p$9o!uHB0>`Ffm< z{sD5hCwdT$&bnz{sL#INAI%W_N9HUDzl!&#`p&I*M`x44aa_{aO-fP-~7x05W$8p?u-~I0X z29N;G0S2eiaiz6pP)T3}NJk@pib|fTlevyFNXwshJ(NUC>1eI?m10*by@TS1QtW6c zc4fD@4><7&q#$v55eVWA0VG=a#3>0RloTWoSeY`zRQz?Fi7W92Xccm@{rTvs{Suu3 zx6vG$0Hwm%*68QH#egsOHLhup*?3lew7h6cya6o0eyiOjq9;Vl(7^WRv3(QUH_6_q z=QXZb%Fdx_KPcRI`2w&?**O3!GK&&Ksm~@5Y|oaabLiGF1*Uj>{P*EnE{~|xSYVuW zJPTNg3{DfAFnE2hUR^0yW}k40k@I5|Gt-Dljjy!Xq6J_NKpbQ+^U0v$t#V)%)7MbW z5r@d$<~{~07|viVmq)rD4w5tm1*ZBKLxlK>|>+bBGi^?w=-ZBdnQQSF0=ED{RwYix#P|)caKqI6|_H*JEG+7xy+Ny+%XQ zY$`_z-Rp&q?~*s2J;NNmpf_$?V)?`K)YHL#U__nxU)>nj&;JGhpr0R$@R5QR00000 LNkvXXu0mjfU(yYS literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Ressources/EditSheet2.png b/ApplicationCrèche 1/Ressources/EditSheet2.png new file mode 100644 index 0000000000000000000000000000000000000000..54076a192db7304e2731aa57acccc3fbcaf8007c GIT binary patch literal 703 zcmV;w0zmzVP)`SF|Wv zS?xn2SCWfhmP!jD|A5E>aZ?asB;=xkXa=IAfSI3|{`2L<{M@&ZTkAkO&;rB{am@cH6!0sE&z`@W zKPN4#=}Z^Vd!I=}4T6S7DbPxT!n;d>tl7BbJgK3LL;z1F(E4oP()U-Hh$V(kFw>tQ znTTMTK^i5|s>160Lr&i)q)q?T1?;=;7Wz^hU8{vik!$NA=JZLDiDpdGXaH>fDq?SI z0Am+m01_y!+;68N`;)iVH6v27G**OA7y@<3+Egc^ruRw@0!Ms^jzxpy9*=YM(NmU2 zVQ{jKmu>Y*gyT}!uu-xO2m`G?gi2Wwi&{9ji!i&$;;80|aQHYT_9|JM>hyy30Segi z=iBll=a7gO$Y;-@buZnMSyqPOb#{o1m897UV;4#&Sx?{bT?NX`mO-T|=(_#E>sw`b zG7#g`0(?z63_M>ZH{H_!*p&cw+EO7x$J4CMUZ7MeQ!YD{b{yWUlo;F&@M*jk$Eh~7 zuwOa|#9~dvZ@vd5J-dRCs&Ta^!JY6iy3;g-*dXO9K%(aR5svFkUMWOPQWKKOj)N5P zpDk!WNoNx&Ds25OB5LkIK8DiN92eKs0O}w>RJS)+o_T<6E2OCJf_Hi|bEU@h*dnkW l?ysn|yQ=(O$`9T7I{;=84|Wv!s2%_S002ovPDHLkV1jCFG)Vve literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Ressources/GoLink.png b/ApplicationCrèche 1/Ressources/GoLink.png new file mode 100644 index 0000000000000000000000000000000000000000..59a31f752daf182d68a3a2ca7ff0b2c0f83cb389 GIT binary patch literal 793 zcmV+!1LpjRP)lTKX=U{wR`WP6Ifwh>ErgkVQkh~WBlIKFtLfA~%EmqKcK~(9 zz^q7ALZlcI?{r)rz#1`yELv!HJ5VGGx3kWX7BPq*fH`P|jC~5-&iGPY01RzzkeZG2i=W}%QARF@v8wNZ5HqdwSE%iJ!Q65zgWqz&>jg!|?TMzj ztq|aq@b3#yEf;h6d<;Eu6@;2WG=afDxa7v;Goz`1rh$7Ap{)TlHAuYLg8+y?u(01~ zA86Me8uNc~GNlQdr4vi=9FoDy?0P1XYuR*sK82_A9cZcpQ2rQ60~8h}yVcl?C4;NK z)S9?LT=WV_<|#}@8Mh~bnK6lpmJxJWb^vwTW+7l{38(_j0>uHjGZ3b_En(VeoPQ4h XC|&)E0~++F00000NkvXXu0mjfO)^@` literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Ressources/GumSheet.png b/ApplicationCrèche 1/Ressources/GumSheet.png new file mode 100644 index 0000000000000000000000000000000000000000..c1c95efedcf5de1e0cf785b4ff26d2ef996de7ac GIT binary patch literal 647 zcmV;20(kw2P)_Ub z2C@Jfhy%$&v1Wi2keIOc4DQ*MF$T-B7%`^`#hN#l2iJk})8&1DCMpdGpg#(T1L;Ds z<{eqguzV^u|Dk0o%3! zh0$HUytv2FtIeD}xHmOe5%Xf_8;37lfw?^IZ@l7G@--{TEj*_~d)olmAs`1F0C@Sl zJ~W3qbn!BJW|nIO#fGx@U(~X>AzsMna4+-lI|n&0-{?FUOA&zC=EX)%Q@MOY3(B;qL}$rRnbYNNE7{I6(Ba8+>}UM!T(1!UX-V!#x-ysSGk;i%HX% h2uGFwYdDSn1_1t{1X>tU(60ah002ovPDHLkV1lTc1?m6* literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Ressources/NewCollection.png b/ApplicationCrèche 1/Ressources/NewCollection.png new file mode 100644 index 0000000000000000000000000000000000000000..cb1bf97dde8a9647a11ff4efa30179e5d4efff3f GIT binary patch literal 739 zcmV<90v!E`P) z@?Q{AQAlVhf`XI^gW#fdRaz(#NWr4mqFBTqI5kc(aWZe_{kZp@T=a=NP~O6~L4Mz}XX2XJ=^a|Cq_~8WUqx#tqn@q#|^IS8>W_1XO`~dDep*Zg+zyB7&+S3KfZ|=`&uYH`qP-7tx*s z8V&MR;NO1^Fy?Px?8N*Z0aYJ_&yLKX3R)_#zDqp@dA`cn2LsGUb+GGH#y(_M>k;cu z*{(`t0UJaRg&;~0DMJZrP%SBYJ&*~Adnif}R1}Q>M3h^J#z{GmuGa_Z7yAI z^7j)Qpmu2DyI?BSw{lzW7bdE5wfP%qn&O-4M(T0p5P z03c8dlH2I^xUh7MtluN}fT$v>sDP-l@Wb_D%*#m?@jzjsDL3)0ZF~=;e4GL9%>edc VaHRPbf(HNq002ovPDHLkV1jknMF9W+ literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Ressources/NewSheet2.png b/ApplicationCrèche 1/Ressources/NewSheet2.png new file mode 100644 index 0000000000000000000000000000000000000000..cc14bc410e7e3c521e025786883ab9869ae33f1b GIT binary patch literal 648 zcmV;30(bq1P)tWh`i%`B1M&(mV}IW7<1At=A`Yhw3=@34i&r~DH4W5i$U#E3?cN#7BCroo7+8(h zd<+;sKo6k51D#E%cHm+Sya<9i)lPgv|7NayHWk2gR^y>jYaaoa4{}z{cX@uh$E{@{ zh+~+m!*Pr#Fb*khDgcNp_OiJOSTI9KTF~i&K8C#%ks&5l3|sQaSbC*y0dP(LP!B!> z5c-BjnDS(Gz=Gdosh)7>T1apI2eaq$w6{Zdv5r15umxajAP#H>`7-DMW|$HkCH&gk z<@<;Hbr{gS(jY%Eu$(bafUg`?&*3XUDcF8-i6rxQ|AqEqox$2o>?y#6!9?iHaM+5_ zTJd&^6wt38O*Qev;BRs8^78l`fO-hBJ~A->XD~879VNg477>Ha%rqc3SnI~UnglqT z9bt7!uM?y5X@IkiG|4fAsT+Nw5kL?7Exx|lAc`DT3(ggNDRNO_tY8YZJ`GUiB%YbZ ie}pTGvobpo;m-hU6eogqk{bE|0000(j?f%QngSiMHGXOQdh*tPpwyu)3!NY&3vKAWXgS h)qaF+zg&Rd0|0>a%k)AtAF==d002ovPDHLkV1lC~4_p8M literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Ressources/NewSheetbook2.png b/ApplicationCrèche 1/Ressources/NewSheetbook2.png new file mode 100644 index 0000000000000000000000000000000000000000..f2b824c8e66c85d700b2378cbd819f4468db2fa7 GIT binary patch literal 768 zcmV+b1ONPqP)XU=WT`C51!$MA)Zck%K4zUO^-9|@2F z1rUJicL2m_=`P@R$v*%dV5>l|<$T8j+q6C}P0ddNRvAPAqCgU;1S0;2Ca??qk$}qf z{;r%}X(6pR!S7~E_?$`xt=_5-XNXq;3=8^{4v`(ZdHs(uC+<#5->k_q=OOpswO)4HHs)ebK zCA}z}1&eBxvdSe5BAQNnf7j~G%h&1eK8vRBLVH0f0B(-qX=iq~>@8 zFW3X_X(*mT&jv7Lnambh^+-TnkiLgQsK){XRFk@sH^9-rwXsZ_^|{}?`k1EK+RCcs zi&LtU%B`LehMEU>x41^lMvk7&3L;SnPq8Ri@TZ`%^$SA=ik|CERc(h4F@~Bi@nq^H z()wd2J}jac3aBAaLpZjCS(KSu#*qQr(#=PS%_t?vz6X20&QHW()!JDAoh9*CBK z;?nf|gtX!emmt0e)CN(UZ931SaEt=Ezj?Hs0tMYe+DnAk_rS``EQ~kOI-DRnMjCP* z3OJD6%=6>AOmHr zHK6}+fA#J%aIpmYQYH4dpz2Km5M1!CqEzdvi&c&R3Bx(7^@n z40^*>|MRC4W*>7R&9n}vwMY4Mqd_h!#?NEStP$%1q_{NbU9=jUJsy+XHv@>kHUnA# zzc%3K6t)^HE7zXFHUs|q28lL+3~=1VqRNd!Rhf}2%H0IW7BgfOZ!fRpvI&rkVp<^c zRZsXjAXn1~ch@7Pp9NZ|{?aKbh-6YGsce98V_y3ySQ@HGIy;LYY(atXlz0000< KMNUMnLSTZ~pr{1^ literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Ressources/OpenFolder.png b/ApplicationCrèche 1/Ressources/OpenFolder.png new file mode 100644 index 0000000000000000000000000000000000000000..f30029638060ed59c79d1caccdb1791313fb2b12 GIT binary patch literal 543 zcmV+)0^t3LP)lBpe?y4Z3OcPT9vwXQncdo_?vqPcmy+?!s%An}32`|@z!-*e7^qeO)3s^S79 zfHA)U*uZbU0+1q(u2s|x0P{`)n6~oSO4v5J!n_X&fVSp#C9Hh5VseF#p~S%ZYUQ(Y zCRdmNY^r4d6c7QTK&-U4^J44tU}Ed^;2EHdI2dupjW}Oen-$h(#fbAkM9`@P6wtR_ z$ z1;naln#uHQ+>>J(b(b!+KKxEH`hRSjM%`ujRd>@zhpYgZNMN`p$J|F9K%;)vOFF=M z2k>OzUg4PlApMW%Dcx(c5x#=-8a?u!)u7jaciv?G=#Y_ahR>Vq176s>@(+LqcdVGd hCjzLy-#|q8Hvo!xpL@Tp(L?|M002ovPDHLkV1o34?Ueuk literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Ressources/OpenFolder2.png b/ApplicationCrèche 1/Ressources/OpenFolder2.png new file mode 100644 index 0000000000000000000000000000000000000000..0cfdb28a7d75c9297195b571893d33b9e6bd39ae GIT binary patch literal 636 zcmV-?0)zdDP)dVHn3hm%G#-MO-uuijEmN7@>kVnFOLmaO={^3KnTXcegZu zM64P@GU?dKrOGAUMby@YMjW&qa%lspi1BiF@8gim^%@oWz{>;A`#hiTm-mMzB8*3! z4nQ18`Wc`NeDpH_X<`_Sn)Vlf1uG8R%@p&saM>)B7JSGE*f#ig#52Ww%`B9jgcL`$ zSD9jd-Yk@6fj0Fj02&YhqQFFDbK}a|e)GoKe)AHbnPOpzb=?%}B`b5n%AA;DJrEI$ z^g}d2UoZ1CYOn~vyW0RbE@dE>(WX38EHcIXe8^=xP+l+dENZZrx^oLe00p=--n_>i zP?>$qa%FSl!qnBv*G^BKy(l7W-7r3+iM2H#TCXxlWpDaC02jmoJQ{DejvbEc@gn<( zB~vVwCWZz~)T`L3> z`)C-zQ{Z|269K00vm8DHuWz&6+WIzqlDq5MYy)1ncI+Pjr~b1h{GJG)?YssN;m-g! Wz~yd6e)>NE0000o7;-8GePp}_5Q4IYLVqQSP+k2;$& z{PoTIbMX?LuFKKnAz;YS-PP`Px&{;4LIAlJuGDOQuKh{QW;!KX#Z*4*xRrIvY6^C49`|eo_s!H=WSJpg}cl*8rp(Fr6;aV|Rb6Nj{3w8MJQ4h^+-`ez4dKjGn+xskEn0`jv1$VdP^@C)0M zyc!_Qz)_kD0Pt#Il=_MQcAG|CX$$6(+oYFv@W<;zDFt9S8gM3+hTdjSU>1AW>k7$8 z(?Nv^`h)m(B?tErrsx1AE8oO}x;r$NG%@nUi^b#Pl1-A4e(;_amhn^rph;by$=OU# zVlO(j>b zI=eV7eneX1keCOjQ!z$1sjkQ;5)81r>YGwqSVV6-WvP*S3lin;#ZAc;f% qi`WMPQWCzphz8M$B@hBae+K|)-4YXWtoWq>0000N<>eYx*FjN0Q52+**{xR_llpN zS=*%UN0UIS+VEi;764D)t};Gkkxscp6SElc8-x?L_>nh}QUa)r0lgt67G^+#p_E9E zou#eS16jo`+n7Z`?L3O!Fg!7x`LWx~#HU#Kn5Q#maw#Qf3)k**tD^23UEz7_C-=g2 zjG6cpi|b3Mxko&Iu}R5v4||?dpM&Z_x$>}cx1B>s;KAB5>A@ zu)k~a;qg5xwm`TN&jaDrvH*yqnO6YgLUQn`(cXGjRkf6q5-9{y%E0x%f^>Xn6hGb} fe;(9-Mfvvtf{M~3G%(mr00000NkvXXu0mjfF1jLX literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Ressources/RPNM Save.png b/ApplicationCrèche 1/Ressources/RPNM Save.png new file mode 100644 index 0000000000000000000000000000000000000000..a1df405f7702abd3327afa86be87969eb07e9369 GIT binary patch literal 518 zcmV+h0{Q)kP)H+@*DMwPBk)M*ISPfa6GI zxRhz#2SdOHFIZY>RwF4zHi|ddOX2|`kY+y3%s;At8aNvFmzV;+29DmZ*H7XcA8u{{ zNGYMJs45`@hG9TNaLyqjd^|tr{_c()oYX+=t!3Rb#29Is=HQbd1a`X}Z;p@o`s1js z0b-2glmAXR+ zr4KPia?Z2aO#mXocDpS>DW!i(F#&wJy!_QL=MZB67*awGz-F~q5xg-BV^BJf{w!d1 zaY0p8pGW0!u zl*)TwI&X|YL<*qmI$r$-(5J^oZjIsf=_%G)`o1qJbX`|QIfU@XuvH^uc?S0pc-OXA zYs>Kb3`{AJb7rwv@a_7V1bl{*>RBc){gDdzD*r{I|FQ1_016N_u?_Vm4gdfE07*qo IM6N<$g1F+=7XSbN literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Ressources/RPNM.psd b/ApplicationCrèche 1/Ressources/RPNM.psd new file mode 100644 index 0000000000000000000000000000000000000000..97c6107dc518da3e2e06892ce80e1f0b4be1c6a2 GIT binary patch literal 158850 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 UNbWJ9Id-hw!Q~4se{lW&AEQ8@g#Z8m literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Ressources/SaveAsFloppy.png b/ApplicationCrèche 1/Ressources/SaveAsFloppy.png new file mode 100644 index 0000000000000000000000000000000000000000..370beb7b9a295a3a0ed2517287378364003de58a GIT binary patch literal 705 zcmV;y0zUnTP)=I;X69$nG1T7+nYL&J2 z4{%qmYB#Gk6$2s^Eeli{NGd3T{1HNtF{q=J`JTVMZ{D5TqG?2}u(P@6oO{3DbME(W zG{6AD)$@PM2eu6$+?&a)DW$la%N+>$u(y}*v$H()yaod>)|Qv)Y;OmkySw|J;6kCm z5!0mTc>sn1Aj@Usuf!isN{JAn=8r5cqF3)~|CYXA16+Mxtoh3K5o<2jg71l|75q>K zSX+J(NU?|N$h0beP~l?qZy3WY+gRo8W~ zPE2w9D-3T6nw>KB^`U(PK~bsTcpf8teMAg{0I(?pBlk}-IsK7ahRw{~Q6l;fx~Agzl)$Mx1uZrPJbI?&N$kGB8gYfd8w0@mKH3_A{vdd zw6w(MJssftKCA2NjNduKm^(pmaGqmRF|dnNKcw+RM=n5Kzs+t{{EDwQIgPLoU~ca2>G4$oY;v9Mj7*M|dJco%!HEDI?m z@pzm>B0)47MXL&^l;V0O1Hfx&&`JY2H9h#`(LzK&f936H2e1J&0}a4jHCBJyMu4W$ nKu!ToRZSv52arCd72@MGeA;ADM^Jbm}KN5lpdYXIll5=w2J@*<~YyJZR5P-X>=Rg4~0l4jYeXh0U zrq?@(dEag`8I5>|qPzgad^+W_QURdVYW+wa3PEs zZ|&N)O}Sj=qu)OwpfxHC0cbXx1VI2mx7#I?$>2B+wrw*U4tY6rkSIm8SP*Wa%;j>p zu8R7VOWCh3&-#2h3?sF*D!)pUbrP6$P-j%)3MY%=+cMcl~~CwdVcB z1pp}}oO39pkW!+x#yQ7_qa$u_ZukgKi#6r0sB2yw959>B==FL4wA*buoen7_y!T8d z6TWNRxGo-3uBz%$<=17&m;3vs?!rh(|L_p!9A#N<6uK&7JRb8yYck++ZqA#X_VvK|}BJt4xGbDiT56x(pKfI0DxdES_t&ga%*P?ITNg2%ttU0z==#s{GQLS0pSozHpE?V^+-#z;zu zx~{R-Vy#68!Ludc6TAfOR)4{qEA{*>+#BO(Z%A<4aqxqI*J&RFbTl8c^{P(xB zvjGqSYk)S@uc;}N(KnUri7#v+h4cjzxRDVQAP3B3|0y_ zT$EC+$LFZo(%3Ltj!2V#=`sK!ZlT!mc2(Nld_cgR>D^eP_|rr0>IkgcSgQ4)YEX5e zBCIQ+JRF6$k-}4oK?B_1-4i|_MrLVyKwe4I6P~~9&{zh956BRmx>c6bUv}MBFnP1J=TaYRq(!vNO}h yU@6@UEckNP!2iTnzcE-*x(XydFm9CW-vI!B8XBWX*!QIX0000~g{xL;anJ^_J7UMG<`>qK`!M;TOwIjJTCm;x(@Otr4v;rk%uKnIg|upc>)% z3YuCO111wk`2Gg@saaTomwT5-9#{Y-VgR?kpA42MBA2j#?DFd}$R(&Y#uEYR8ARQw zLT@L?g-4AQz!H#m(zQpS+tsdBil1J!;0$KRrWmt^*zztM^ap9263rs2XfZa!@Q O0000u4^P)*lE^UHq^6wo`X`1s}po^+gL%0LNmAVQJSMD(tR{&vO=*B(eGZJBgH zKENyAHL^D5*hK^nX>%(K34(wy4B4BRSpgmwmhkTzd|%(-s0G8}5J{ z_MIoVPn+d9rrYfT(ChWM9mjm0o?fL$V3J^WeS^amXsxN&>qJqMc0_B&z*~3@JV{5_ zrQ@Du<5 literal 0 HcmV?d00001 diff --git a/ApplicationCrèche 1/Ressources/WarningSheetLight.png b/ApplicationCrèche 1/Ressources/WarningSheetLight.png new file mode 100644 index 0000000000000000000000000000000000000000..e93d003e08a8977bcb037b340f7aad01e51b0916 GIT binary patch literal 569 zcmV-90>=G`P)_b|qsSt|l~Zj)b{%RT+>=x2t98rmvG_h+aDt$>JSR(})C! znnre?^44{Ytc`8#Jc8=8I`$Ft^ugg4^e%88c#wOAf8XGEX@+nWR5PuQn$VNL))ezs ztBkh=()OJtcs^O@+7x{Gp4PuNVDK?)RvCjFfo_67A7*HMN;^JS0r}-rBM1^`Oz;YL zm|EAS_7<_|SfOLZ_DY?K?~EIRcfFHWe26rDMqo`6V2xsbr-_a=0AT{CE-$W~uEV7B zh+3VrSb10DLg#5PJ>3KpxK_>Zj*Zx8 zRi;wfrsw>G-$|z31YXfL-N#S;4cG_0wk=*ioyI|0aXlWuL^OyH^-i?Ke{<~;rD6rA zOrtqL1NM}tSR92Jrj0j3%p)Z4e0 z1CtOjRvGhkp>x~hu}MdSsAl$-1eROqwyhSvs zYN4tYZ{o9zhx@Qn89q_rE_r;IY*1qmKS0zS3T@X)Xxk#ckt4TWmlFeL8Cm|wG8RdS z^z@%5#wI&x5)>L77{H \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..9cecc1d --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + {one line to give the program's name and a brief idea of what it does.} + Copyright (C) {year} {name of author} + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + {project} Copyright (C) {year} {fullname} + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/Local.testsettings b/Local.testsettings new file mode 100644 index 0000000..456a190 --- /dev/null +++ b/Local.testsettings @@ -0,0 +1,10 @@ + + + Il s'agit des paramètres de test par défaut pour une série de tests locale. + + + + + + + \ No newline at end of file diff --git a/README.md b/README.md index cd87b70..7475902 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,18 @@ # NurseryManager-Project -Application de gestion de crèche \ No newline at end of file +Stakeholders: + +* University of Brighton +* Université Paris-Descartes +* Simon Priet (simon.priet@gmail.com) +* Jane Challenger Gillitt (J.M.Challenger.Gillitt@brighton.ac.uk) + +Under GNU Licence, 2013 + +## Objectives + +The first objective of this project was to develop a software for the module "Individual Project". The project was spread over the years 2012 and 2013. +When it came to making this program, I used concepts taught during previous years, like the use of an object-oriented language, making a database connection, making an application. It is also necessary to succeed in thinking about the responsibilities and the organization of modules of the application itself, in order to make an easy development. In order to do this, I thought about using Visual Studio and VB language in dot net version 3.5. +There are two criteria: modularity and sturdiness. +Modularity consists of decomposing (or viewing) the software as various modules. Theses modules, called “classes” are interconnected and work in a way that each class has a unique responsibility. +Sturdiness consists of using error and exception management mechanisms provided by the language. If possible, the documentation system and units tests will be used. In any cases, the debug mode provided by Microsoft in Visual Studio is still a very good tool. diff --git a/TestProjectCreche/BabySitterTest.vb b/TestProjectCreche/BabySitterTest.vb new file mode 100644 index 0000000..c0f50b4 --- /dev/null +++ b/TestProjectCreche/BabySitterTest.vb @@ -0,0 +1,108 @@ +Imports Microsoft.VisualStudio.TestTools.UnitTesting + +Imports ApplicationCrèche_1 + + + +'''

+'''Classe de test pour BabySitterTest, destinée à contenir tous +'''les tests unitaires BabySitterTest +''' + _ +Public Class BabySitterTest + + + Private testContextInstance As TestContext + + ''' + '''Obtient ou définit le contexte de test qui fournit + '''des informations sur la série de tests active ainsi que ses fonctionnalités. + ''' + Public Property TestContext() As TestContext + Get + Return testContextInstance + End Get + Set(value As TestContext) + testContextInstance = Value + End Set + End Property + +#Region "Attributs de tests supplémentaires" + ' + 'Vous pouvez utiliser les attributs supplémentaires suivants lorsque vous écrivez vos tests : + ' + 'Utilisez ClassInitialize pour exécuter du code avant d'exécuter le premier test dans la classe + ' _ + 'Public Shared Sub MyClassInitialize(ByVal testContext As TestContext) + 'End Sub + ' + 'Utilisez ClassCleanup pour exécuter du code après que tous les tests ont été exécutés dans une classe + ' _ + 'Public Shared Sub MyClassCleanup() + 'End Sub + ' + 'Utilisez TestInitialize pour exécuter du code avant d'exécuter chaque test + ' _ + 'Public Sub MyTestInitialize() + 'End Sub + ' + 'Utilisez TestCleanup pour exécuter du code après que chaque test a été exécuté + ' _ + 'Public Sub MyTestCleanup() + 'End Sub + ' +#End Region + + + ''' + '''Test pour Constructeur BabySitter + ''' + _ + Public Sub BabySitterConstructorTest() + Dim id As Integer = 0 ' TODO: initialisez à une valeur appropriée + Dim fname As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim lname As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim phone1 As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim phone2 As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim target As BabySitter = New BabySitter(id, fname, lname, phone1, phone2) + Assert.Inconclusive("TODO: implémentez le code pour vérifier la cible") + End Sub + + ''' + '''Test pour phone1 + ''' + _ + Public Sub phone1Test() + Dim id As Integer = 0 ' TODO: initialisez à une valeur appropriée + Dim fname As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim lname As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim phone1 As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim phone2 As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim target As BabySitter = New BabySitter(id, fname, lname, phone1, phone2) ' TODO: initialisez à une valeur appropriée + Dim expected As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim actual As String + target.phone1 = expected + actual = target.phone1 + Assert.AreEqual(expected, actual) + Assert.Inconclusive("Vérifiez l'exactitude de cette méthode de test.") + End Sub + + ''' + '''Test pour phone2 + ''' + _ + Public Sub phone2Test() + Dim id As Integer = 0 ' TODO: initialisez à une valeur appropriée + Dim fname As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim lname As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim phone1 As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim phone2 As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim target As BabySitter = New BabySitter(id, fname, lname, phone1, phone2) ' TODO: initialisez à une valeur appropriée + Dim expected As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim actual As String + target.phone2 = expected + actual = target.phone2 + Assert.AreEqual(expected, actual) + Assert.Inconclusive("Vérifiez l'exactitude de cette méthode de test.") + End Sub +End Class diff --git a/TestProjectCreche/ChildTest.vb b/TestProjectCreche/ChildTest.vb new file mode 100644 index 0000000..ec8910e --- /dev/null +++ b/TestProjectCreche/ChildTest.vb @@ -0,0 +1,185 @@ +Imports System + +Imports Microsoft.VisualStudio.TestTools.UnitTesting + +Imports ApplicationCrèche_1 + + + +''' +'''Classe de test pour ChildTest, destinée à contenir tous +'''les tests unitaires ChildTest +''' + _ +Public Class ChildTest + + + Private testContextInstance As TestContext + + ''' + '''Obtient ou définit le contexte de test qui fournit + '''des informations sur la série de tests active ainsi que ses fonctionnalités. + ''' + Public Property TestContext() As TestContext + Get + Return testContextInstance + End Get + Set(value As TestContext) + testContextInstance = Value + End Set + End Property + +#Region "Attributs de tests supplémentaires" + ' + 'Vous pouvez utiliser les attributs supplémentaires suivants lorsque vous écrivez vos tests : + ' + 'Utilisez ClassInitialize pour exécuter du code avant d'exécuter le premier test dans la classe + ' _ + 'Public Shared Sub MyClassInitialize(ByVal testContext As TestContext) + 'End Sub + ' + 'Utilisez ClassCleanup pour exécuter du code après que tous les tests ont été exécutés dans une classe + ' _ + 'Public Shared Sub MyClassCleanup() + 'End Sub + ' + 'Utilisez TestInitialize pour exécuter du code avant d'exécuter chaque test + ' _ + 'Public Sub MyTestInitialize() + 'End Sub + ' + 'Utilisez TestCleanup pour exécuter du code après que chaque test a été exécuté + ' _ + 'Public Sub MyTestCleanup() + 'End Sub + ' +#End Region + + + ''' + '''Test pour Constructeur Child + ''' + _ + Public Sub ChildConstructorTest() + Dim id As Integer = 0 ' TODO: initialisez à une valeur appropriée + Dim fname As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim lname As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim address As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim born As DateTime = New DateTime() ' TODO: initialisez à une valeur appropriée + Dim meet As Meet = Nothing ' TODO: initialisez à une valeur appropriée + Dim parent1 As Parent = Nothing ' TODO: initialisez à une valeur appropriée + Dim parent2 As Parent = Nothing ' TODO: initialisez à une valeur appropriée + Dim target As Child = New Child(id, fname, lname, address, born, meet, parent1, parent2) + Assert.Inconclusive("TODO: implémentez le code pour vérifier la cible") + End Sub + + ''' + '''Test pour address + ''' + _ + Public Sub addressTest() + Dim id As Integer = 0 ' TODO: initialisez à une valeur appropriée + Dim fname As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim lname As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim address As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim born As DateTime = New DateTime() ' TODO: initialisez à une valeur appropriée + Dim meet As Meet = Nothing ' TODO: initialisez à une valeur appropriée + Dim parent1 As Parent = Nothing ' TODO: initialisez à une valeur appropriée + Dim parent2 As Parent = Nothing ' TODO: initialisez à une valeur appropriée + Dim target As Child = New Child(id, fname, lname, address, born, meet, parent1, parent2) ' TODO: initialisez à une valeur appropriée + Dim expected As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim actual As String + target.address = expected + actual = target.address + Assert.AreEqual(expected, actual) + Assert.Inconclusive("Vérifiez l'exactitude de cette méthode de test.") + End Sub + + ''' + '''Test pour bornDate + ''' + _ + Public Sub bornDateTest() + Dim id As Integer = 0 ' TODO: initialisez à une valeur appropriée + Dim fname As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim lname As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim address As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim born As DateTime = New DateTime() ' TODO: initialisez à une valeur appropriée + Dim meet As Meet = Nothing ' TODO: initialisez à une valeur appropriée + Dim parent1 As Parent = Nothing ' TODO: initialisez à une valeur appropriée + Dim parent2 As Parent = Nothing ' TODO: initialisez à une valeur appropriée + Dim target As Child = New Child(id, fname, lname, address, born, meet, parent1, parent2) ' TODO: initialisez à une valeur appropriée + Dim expected As DateTime = New DateTime() ' TODO: initialisez à une valeur appropriée + Dim actual As DateTime + target.bornDate = expected + actual = target.bornDate + Assert.AreEqual(expected, actual) + Assert.Inconclusive("Vérifiez l'exactitude de cette méthode de test.") + End Sub + + ''' + '''Test pour meet + ''' + _ + Public Sub meetTest() + Dim id As Integer = 0 ' TODO: initialisez à une valeur appropriée + Dim fname As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim lname As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim address As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim born As DateTime = New DateTime() ' TODO: initialisez à une valeur appropriée + Dim meet As Meet = Nothing ' TODO: initialisez à une valeur appropriée + Dim parent1 As Parent = Nothing ' TODO: initialisez à une valeur appropriée + Dim parent2 As Parent = Nothing ' TODO: initialisez à une valeur appropriée + Dim target As Child = New Child(id, fname, lname, address, born, meet, parent1, parent2) ' TODO: initialisez à une valeur appropriée + Dim expected As Meet = Nothing ' TODO: initialisez à une valeur appropriée + Dim actual As Meet + target.meet = expected + actual = target.meet + Assert.AreEqual(expected, actual) + Assert.Inconclusive("Vérifiez l'exactitude de cette méthode de test.") + End Sub + + ''' + '''Test pour parent1 + ''' + _ + Public Sub parent1Test() + Dim id As Integer = 0 ' TODO: initialisez à une valeur appropriée + Dim fname As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim lname As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim address As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim born As DateTime = New DateTime() ' TODO: initialisez à une valeur appropriée + Dim meet As Meet = Nothing ' TODO: initialisez à une valeur appropriée + Dim parent1 As Parent = Nothing ' TODO: initialisez à une valeur appropriée + Dim parent2 As Parent = Nothing ' TODO: initialisez à une valeur appropriée + Dim target As Child = New Child(id, fname, lname, address, born, meet, parent1, parent2) ' TODO: initialisez à une valeur appropriée + Dim expected As Parent = Nothing ' TODO: initialisez à une valeur appropriée + Dim actual As Parent + target.parent1 = expected + actual = target.parent1 + Assert.AreEqual(expected, actual) + Assert.Inconclusive("Vérifiez l'exactitude de cette méthode de test.") + End Sub + + ''' + '''Test pour parent2 + ''' + _ + Public Sub parent2Test() + Dim id As Integer = 0 ' TODO: initialisez à une valeur appropriée + Dim fname As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim lname As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim address As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim born As DateTime = New DateTime() ' TODO: initialisez à une valeur appropriée + Dim meet As Meet = Nothing ' TODO: initialisez à une valeur appropriée + Dim parent1 As Parent = Nothing ' TODO: initialisez à une valeur appropriée + Dim parent2 As Parent = Nothing ' TODO: initialisez à une valeur appropriée + Dim target As Child = New Child(id, fname, lname, address, born, meet, parent1, parent2) ' TODO: initialisez à une valeur appropriée + Dim expected As Parent = Nothing ' TODO: initialisez à une valeur appropriée + Dim actual As Parent + target.parent2 = expected + actual = target.parent2 + Assert.AreEqual(expected, actual) + Assert.Inconclusive("Vérifiez l'exactitude de cette méthode de test.") + End Sub +End Class diff --git a/TestProjectCreche/MeetTest.vb b/TestProjectCreche/MeetTest.vb new file mode 100644 index 0000000..c25cc0b --- /dev/null +++ b/TestProjectCreche/MeetTest.vb @@ -0,0 +1,192 @@ +Imports System.Collections.Generic + +Imports Microsoft.VisualStudio.TestTools.UnitTesting + +Imports ApplicationCrèche_1 + + + +''' +'''Classe de test pour MeetTest, destinée à contenir tous +'''les tests unitaires MeetTest +''' + _ +Public Class MeetTest + + + Private testContextInstance As TestContext + + ''' + '''Obtient ou définit le contexte de test qui fournit + '''des informations sur la série de tests active ainsi que ses fonctionnalités. + ''' + Public Property TestContext() As TestContext + Get + Return testContextInstance + End Get + Set(value As TestContext) + testContextInstance = Value + End Set + End Property + +#Region "Attributs de tests supplémentaires" + ' + 'Vous pouvez utiliser les attributs supplémentaires suivants lorsque vous écrivez vos tests : + ' + 'Utilisez ClassInitialize pour exécuter du code avant d'exécuter le premier test dans la classe + ' _ + 'Public Shared Sub MyClassInitialize(ByVal testContext As TestContext) + 'End Sub + ' + 'Utilisez ClassCleanup pour exécuter du code après que tous les tests ont été exécutés dans une classe + ' _ + 'Public Shared Sub MyClassCleanup() + 'End Sub + ' + 'Utilisez TestInitialize pour exécuter du code avant d'exécuter chaque test + ' _ + 'Public Sub MyTestInitialize() + 'End Sub + ' + 'Utilisez TestCleanup pour exécuter du code après que chaque test a été exécuté + ' _ + 'Public Sub MyTestCleanup() + 'End Sub + ' +#End Region + + + ''' + '''Test pour Constructeur Meet + ''' + _ + Public Sub MeetConstructorTest() + Dim weekDayName As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim weekDayName2 As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim weekDayName3 As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim weekDayName4 As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim weekDayName5 As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim weekDayName6 As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim weekDayName7 As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim target As Meet = New Meet(weekDayName, weekDayName2, weekDayName3, weekDayName4, weekDayName5, weekDayName6, weekDayName7) + Assert.Inconclusive("TODO: implémentez le code pour vérifier la cible") + End Sub + + ''' + '''Test pour Constructeur Meet + ''' + _ + Public Sub MeetConstructorTest1() + Dim target As Meet = New Meet() + Assert.Inconclusive("TODO: implémentez le code pour vérifier la cible") + End Sub + + ''' + '''Test pour friday + ''' + _ + Public Sub fridayTest() + Dim target As Meet = New Meet() ' TODO: initialisez à une valeur appropriée + Dim expected As Boolean = False ' TODO: initialisez à une valeur appropriée + Dim actual As Boolean + target.friday = expected + actual = target.friday + Assert.AreEqual(expected, actual) + Assert.Inconclusive("Vérifiez l'exactitude de cette méthode de test.") + End Sub + + ''' + '''Test pour monday + ''' + _ + Public Sub mondayTest() + Dim target As Meet = New Meet() ' TODO: initialisez à une valeur appropriée + Dim expected As Boolean = False ' TODO: initialisez à une valeur appropriée + Dim actual As Boolean + target.monday = expected + actual = target.monday + Assert.AreEqual(expected, actual) + Assert.Inconclusive("Vérifiez l'exactitude de cette méthode de test.") + End Sub + + ''' + '''Test pour saturday + ''' + _ + Public Sub saturdayTest() + Dim target As Meet = New Meet() ' TODO: initialisez à une valeur appropriée + Dim expected As Boolean = False ' TODO: initialisez à une valeur appropriée + Dim actual As Boolean + target.saturday = expected + actual = target.saturday + Assert.AreEqual(expected, actual) + Assert.Inconclusive("Vérifiez l'exactitude de cette méthode de test.") + End Sub + + ''' + '''Test pour sunday + ''' + _ + Public Sub sundayTest() + Dim target As Meet = New Meet() ' TODO: initialisez à une valeur appropriée + Dim expected As Boolean = False ' TODO: initialisez à une valeur appropriée + Dim actual As Boolean + target.sunday = expected + actual = target.sunday + Assert.AreEqual(expected, actual) + Assert.Inconclusive("Vérifiez l'exactitude de cette méthode de test.") + End Sub + + ''' + '''Test pour thursday + ''' + _ + Public Sub thursdayTest() + Dim target As Meet = New Meet() ' TODO: initialisez à une valeur appropriée + Dim expected As Boolean = False ' TODO: initialisez à une valeur appropriée + Dim actual As Boolean + target.thursday = expected + actual = target.thursday + Assert.AreEqual(expected, actual) + Assert.Inconclusive("Vérifiez l'exactitude de cette méthode de test.") + End Sub + + ''' + '''Test pour tuesday + ''' + _ + Public Sub tuesdayTest() + Dim target As Meet = New Meet() ' TODO: initialisez à une valeur appropriée + Dim expected As Boolean = False ' TODO: initialisez à une valeur appropriée + Dim actual As Boolean + target.tuesday = expected + actual = target.tuesday + Assert.AreEqual(expected, actual) + Assert.Inconclusive("Vérifiez l'exactitude de cette méthode de test.") + End Sub + + ''' + '''Test pour wednesday + ''' + _ + Public Sub wednesdayTest() + Dim target As Meet = New Meet() ' TODO: initialisez à une valeur appropriée + Dim expected As Boolean = False ' TODO: initialisez à une valeur appropriée + Dim actual As Boolean + target.wednesday = expected + actual = target.wednesday + Assert.AreEqual(expected, actual) + Assert.Inconclusive("Vérifiez l'exactitude de cette méthode de test.") + End Sub + + ''' + '''Test pour weekdays + ''' + _ + Public Sub weekdaysTest() + Dim target As Meet = New Meet() ' TODO: initialisez à une valeur appropriée + Dim actual As Dictionary(Of String, Boolean) + actual = target.weekdays + Assert.Inconclusive("Vérifiez l'exactitude de cette méthode de test.") + End Sub +End Class diff --git a/TestProjectCreche/My Project/AssemblyInfo.vb b/TestProjectCreche/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..f91e19b --- /dev/null +++ b/TestProjectCreche/My Project/AssemblyInfo.vb @@ -0,0 +1,37 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' Les informations générales relatives à un assembly dépendent de +' l'ensemble d'attributs suivant. Changez les valeurs de ces attributs pour modifier les informations +' associées à un assembly. + +' Passez en revue les valeurs des attributs de l'assembly + + + + + + + + + + + + +'Le GUID suivant est pour l'ID de la typelib si ce projet est exposé à COM + + +' Les informations de version pour un assembly se composent des quatre valeurs suivantes : +' +' Version principale +' Version secondaire +' Numéro de build +' Révision +' +' Vous pouvez spécifier toutes les valeurs ou indiquer les numéros de build et de révision par défaut +' en utilisant '*', comme indiqué ci-dessous : +' + + + diff --git a/TestProjectCreche/MyProjectTest.vb b/TestProjectCreche/MyProjectTest.vb new file mode 100644 index 0000000..6fa872e --- /dev/null +++ b/TestProjectCreche/MyProjectTest.vb @@ -0,0 +1,108 @@ +Imports Microsoft.VisualBasic.ApplicationServices + +Imports Microsoft.VisualStudio.TestTools.UnitTesting + +Imports ApplicationCrèche_1.My + + + +''' +'''Classe de test pour MyProjectTest, destinée à contenir tous +'''les tests unitaires MyProjectTest +''' + _ +Public Class MyProjectTest + + + Private testContextInstance As TestContext + + ''' + '''Obtient ou définit le contexte de test qui fournit + '''des informations sur la série de tests active ainsi que ses fonctionnalités. + ''' + Public Property TestContext() As TestContext + Get + Return testContextInstance + End Get + Set(value As TestContext) + testContextInstance = Value + End Set + End Property + +#Region "Attributs de tests supplémentaires" + ' + 'Vous pouvez utiliser les attributs supplémentaires suivants lorsque vous écrivez vos tests : + ' + 'Utilisez ClassInitialize pour exécuter du code avant d'exécuter le premier test dans la classe + ' _ + 'Public Shared Sub MyClassInitialize(ByVal testContext As TestContext) + 'End Sub + ' + 'Utilisez ClassCleanup pour exécuter du code après que tous les tests ont été exécutés dans une classe + ' _ + 'Public Shared Sub MyClassCleanup() + 'End Sub + ' + 'Utilisez TestInitialize pour exécuter du code avant d'exécuter chaque test + ' _ + 'Public Sub MyTestInitialize() + 'End Sub + ' + 'Utilisez TestCleanup pour exécuter du code après que chaque test a été exécuté + ' _ + 'Public Sub MyTestCleanup() + 'End Sub + ' +#End Region + + + ''' + '''Test pour Application + ''' + _ + Public Sub ApplicationTest() + Dim actual As MyApplication + actual = MyProject.Application + Assert.Inconclusive("Vérifiez l'exactitude de cette méthode de test.") + End Sub + + ''' + '''Test pour Computer + ''' + _ + Public Sub ComputerTest() + Dim actual As MyComputer + actual = MyProject.Computer + Assert.Inconclusive("Vérifiez l'exactitude de cette méthode de test.") + End Sub + + ''' + '''Test pour Forms + ''' + _ + Public Sub FormsTest() + Dim actual As MyProject.MyForms + actual = MyProject.Forms + Assert.Inconclusive("Vérifiez l'exactitude de cette méthode de test.") + End Sub + + ''' + '''Test pour User + ''' + _ + Public Sub UserTest() + Dim actual As User + actual = MyProject.User + Assert.Inconclusive("Vérifiez l'exactitude de cette méthode de test.") + End Sub + + ''' + '''Test pour WebServices + ''' + _ + Public Sub WebServicesTest() + Dim actual As MyProject.MyWebServices + actual = MyProject.WebServices + Assert.Inconclusive("Vérifiez l'exactitude de cette méthode de test.") + End Sub +End Class diff --git a/TestProjectCreche/MySettingsPropertyTest.vb b/TestProjectCreche/MySettingsPropertyTest.vb new file mode 100644 index 0000000..4e9af3d --- /dev/null +++ b/TestProjectCreche/MySettingsPropertyTest.vb @@ -0,0 +1,66 @@ +Imports Microsoft.VisualStudio.TestTools.UnitTesting + +Imports ApplicationCrèche_1.My + + + +''' +'''Classe de test pour MySettingsPropertyTest, destinée à contenir tous +'''les tests unitaires MySettingsPropertyTest +''' + _ +Public Class MySettingsPropertyTest + + + Private testContextInstance As TestContext + + ''' + '''Obtient ou définit le contexte de test qui fournit + '''des informations sur la série de tests active ainsi que ses fonctionnalités. + ''' + Public Property TestContext() As TestContext + Get + Return testContextInstance + End Get + Set(value As TestContext) + testContextInstance = Value + End Set + End Property + +#Region "Attributs de tests supplémentaires" + ' + 'Vous pouvez utiliser les attributs supplémentaires suivants lorsque vous écrivez vos tests : + ' + 'Utilisez ClassInitialize pour exécuter du code avant d'exécuter le premier test dans la classe + ' _ + 'Public Shared Sub MyClassInitialize(ByVal testContext As TestContext) + 'End Sub + ' + 'Utilisez ClassCleanup pour exécuter du code après que tous les tests ont été exécutés dans une classe + ' _ + 'Public Shared Sub MyClassCleanup() + 'End Sub + ' + 'Utilisez TestInitialize pour exécuter du code avant d'exécuter chaque test + ' _ + 'Public Sub MyTestInitialize() + 'End Sub + ' + 'Utilisez TestCleanup pour exécuter du code après que chaque test a été exécuté + ' _ + 'Public Sub MyTestCleanup() + 'End Sub + ' +#End Region + + + ''' + '''Test pour Settings + ''' + _ + Public Sub SettingsTest() + Dim actual As MySettings + actual = MySettingsProperty.Settings + Assert.Inconclusive("Vérifiez l'exactitude de cette méthode de test.") + End Sub +End Class diff --git a/TestProjectCreche/ParentTest.vb b/TestProjectCreche/ParentTest.vb new file mode 100644 index 0000000..49ca67a --- /dev/null +++ b/TestProjectCreche/ParentTest.vb @@ -0,0 +1,108 @@ +Imports Microsoft.VisualStudio.TestTools.UnitTesting + +Imports ApplicationCrèche_1 + + + +''' +'''Classe de test pour ParentTest, destinée à contenir tous +'''les tests unitaires ParentTest +''' + _ +Public Class ParentTest + + + Private testContextInstance As TestContext + + ''' + '''Obtient ou définit le contexte de test qui fournit + '''des informations sur la série de tests active ainsi que ses fonctionnalités. + ''' + Public Property TestContext() As TestContext + Get + Return testContextInstance + End Get + Set(value As TestContext) + testContextInstance = Value + End Set + End Property + +#Region "Attributs de tests supplémentaires" + ' + 'Vous pouvez utiliser les attributs supplémentaires suivants lorsque vous écrivez vos tests : + ' + 'Utilisez ClassInitialize pour exécuter du code avant d'exécuter le premier test dans la classe + ' _ + 'Public Shared Sub MyClassInitialize(ByVal testContext As TestContext) + 'End Sub + ' + 'Utilisez ClassCleanup pour exécuter du code après que tous les tests ont été exécutés dans une classe + ' _ + 'Public Shared Sub MyClassCleanup() + 'End Sub + ' + 'Utilisez TestInitialize pour exécuter du code avant d'exécuter chaque test + ' _ + 'Public Sub MyTestInitialize() + 'End Sub + ' + 'Utilisez TestCleanup pour exécuter du code après que chaque test a été exécuté + ' _ + 'Public Sub MyTestCleanup() + 'End Sub + ' +#End Region + + + ''' + '''Test pour Constructeur Parent + ''' + _ + Public Sub ParentConstructorTest() + Dim id As Integer = 0 ' TODO: initialisez à une valeur appropriée + Dim fname As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim lname As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim phone As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim address As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim target As Parent = New Parent(id, fname, lname, phone, address) + Assert.Inconclusive("TODO: implémentez le code pour vérifier la cible") + End Sub + + ''' + '''Test pour address + ''' + _ + Public Sub addressTest() + Dim id As Integer = 0 ' TODO: initialisez à une valeur appropriée + Dim fname As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim lname As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim phone As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim address As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim target As Parent = New Parent(id, fname, lname, phone, address) ' TODO: initialisez à une valeur appropriée + Dim expected As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim actual As String + target.address = expected + actual = target.address + Assert.AreEqual(expected, actual) + Assert.Inconclusive("Vérifiez l'exactitude de cette méthode de test.") + End Sub + + ''' + '''Test pour phone + ''' + _ + Public Sub phoneTest() + Dim id As Integer = 0 ' TODO: initialisez à une valeur appropriée + Dim fname As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim lname As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim phone As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim address As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim target As Parent = New Parent(id, fname, lname, phone, address) ' TODO: initialisez à une valeur appropriée + Dim expected As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim actual As String + target.phone = expected + actual = target.phone + Assert.AreEqual(expected, actual) + Assert.Inconclusive("Vérifiez l'exactitude de cette méthode de test.") + End Sub +End Class diff --git a/TestProjectCreche/PersonTest.vb b/TestProjectCreche/PersonTest.vb new file mode 100644 index 0000000..95491fd --- /dev/null +++ b/TestProjectCreche/PersonTest.vb @@ -0,0 +1,101 @@ +Imports Microsoft.VisualStudio.TestTools.UnitTesting + +Imports ApplicationCrèche_1 + + + +''' +'''Classe de test pour PersonTest, destinée à contenir tous +'''les tests unitaires PersonTest +''' + _ +Public Class PersonTest + + + Private testContextInstance As TestContext + + ''' + '''Obtient ou définit le contexte de test qui fournit + '''des informations sur la série de tests active ainsi que ses fonctionnalités. + ''' + Public Property TestContext() As TestContext + Get + Return testContextInstance + End Get + Set(value As TestContext) + testContextInstance = Value + End Set + End Property + +#Region "Attributs de tests supplémentaires" + ' + 'Vous pouvez utiliser les attributs supplémentaires suivants lorsque vous écrivez vos tests : + ' + 'Utilisez ClassInitialize pour exécuter du code avant d'exécuter le premier test dans la classe + ' _ + 'Public Shared Sub MyClassInitialize(ByVal testContext As TestContext) + 'End Sub + ' + 'Utilisez ClassCleanup pour exécuter du code après que tous les tests ont été exécutés dans une classe + ' _ + 'Public Shared Sub MyClassCleanup() + 'End Sub + ' + 'Utilisez TestInitialize pour exécuter du code avant d'exécuter chaque test + ' _ + 'Public Sub MyTestInitialize() + 'End Sub + ' + 'Utilisez TestCleanup pour exécuter du code après que chaque test a été exécuté + ' _ + 'Public Sub MyTestCleanup() + 'End Sub + ' +#End Region + + + Friend Overridable Function CreatePerson() As Person + 'TODO: instanciez une classe concrète appropriée. + Dim target As Person = Nothing + Return target + End Function + + ''' + '''Test pour firstname + ''' + _ + Public Sub firstnameTest() + Dim target As Person = CreatePerson() ' TODO: initialisez à une valeur appropriée + Dim expected As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim actual As String + target.firstname = expected + actual = target.firstname + Assert.AreEqual(expected, actual) + Assert.Inconclusive("Vérifiez l'exactitude de cette méthode de test.") + End Sub + + ''' + '''Test pour id + ''' + _ + Public Sub idTest() + Dim target As Person = CreatePerson() ' TODO: initialisez à une valeur appropriée + Dim actual As Integer + actual = target.id + Assert.Inconclusive("Vérifiez l'exactitude de cette méthode de test.") + End Sub + + ''' + '''Test pour lastname + ''' + _ + Public Sub lastnameTest() + Dim target As Person = CreatePerson() ' TODO: initialisez à une valeur appropriée + Dim expected As String = String.Empty ' TODO: initialisez à une valeur appropriée + Dim actual As String + target.lastname = expected + actual = target.lastname + Assert.AreEqual(expected, actual) + Assert.Inconclusive("Vérifiez l'exactitude de cette méthode de test.") + End Sub +End Class diff --git a/TestProjectCreche/ResourcesTest.vb b/TestProjectCreche/ResourcesTest.vb new file mode 100644 index 0000000..b26b748 --- /dev/null +++ b/TestProjectCreche/ResourcesTest.vb @@ -0,0 +1,83 @@ +Imports System.Resources + +Imports System.Globalization + +Imports Microsoft.VisualStudio.TestTools.UnitTesting + +Imports ApplicationCrèche_1.My.Resources + + + +''' +'''Classe de test pour ResourcesTest, destinée à contenir tous +'''les tests unitaires ResourcesTest +''' + _ +Public Class ResourcesTest + + + Private testContextInstance As TestContext + + ''' + '''Obtient ou définit le contexte de test qui fournit + '''des informations sur la série de tests active ainsi que ses fonctionnalités. + ''' + Public Property TestContext() As TestContext + Get + Return testContextInstance + End Get + Set(value As TestContext) + testContextInstance = Value + End Set + End Property + +#Region "Attributs de tests supplémentaires" + ' + 'Vous pouvez utiliser les attributs supplémentaires suivants lorsque vous écrivez vos tests : + ' + 'Utilisez ClassInitialize pour exécuter du code avant d'exécuter le premier test dans la classe + ' _ + 'Public Shared Sub MyClassInitialize(ByVal testContext As TestContext) + 'End Sub + ' + 'Utilisez ClassCleanup pour exécuter du code après que tous les tests ont été exécutés dans une classe + ' _ + 'Public Shared Sub MyClassCleanup() + 'End Sub + ' + 'Utilisez TestInitialize pour exécuter du code avant d'exécuter chaque test + ' _ + 'Public Sub MyTestInitialize() + 'End Sub + ' + 'Utilisez TestCleanup pour exécuter du code après que chaque test a été exécuté + ' _ + 'Public Sub MyTestCleanup() + 'End Sub + ' +#End Region + + + ''' + '''Test pour Culture + ''' + _ + Public Sub CultureTest() + Dim expected As CultureInfo = Nothing ' TODO: initialisez à une valeur appropriée + Dim actual As CultureInfo + Resources.Culture = expected + actual = Resources.Culture + Assert.AreEqual(expected, actual) + Assert.Inconclusive("Vérifiez l'exactitude de cette méthode de test.") + End Sub + + ''' + '''Test pour ResourceManager + ''' + _ + Public Sub ResourceManagerTest() + Dim actual As ResourceManager + actual = Resources.ResourceManager + Assert.Inconclusive("Vérifiez l'exactitude de cette méthode de test.") + End Sub +End Class diff --git a/TestProjectCreche/SQLManagerTest.vb b/TestProjectCreche/SQLManagerTest.vb new file mode 100644 index 0000000..eb4a2f2 --- /dev/null +++ b/TestProjectCreche/SQLManagerTest.vb @@ -0,0 +1,115 @@ +Imports System.Collections.Generic + +Imports Microsoft.VisualStudio.TestTools.UnitTesting + +Imports ApplicationCrèche_1 + + + +''' +'''Classe de test pour SQLManagerTest, destinée à contenir tous +'''les tests unitaires SQLManagerTest +''' + _ +Public Class SQLManagerTest + + + Private testContextInstance As TestContext + + ''' + '''Obtient ou définit le contexte de test qui fournit + '''des informations sur la série de tests active ainsi que ses fonctionnalités. + ''' + Public Property TestContext() As TestContext + Get + Return testContextInstance + End Get + Set(value As TestContext) + testContextInstance = Value + End Set + End Property + +#Region "Attributs de tests supplémentaires" + ' + 'Vous pouvez utiliser les attributs supplémentaires suivants lorsque vous écrivez vos tests : + ' + 'Utilisez ClassInitialize pour exécuter du code avant d'exécuter le premier test dans la classe + ' _ + 'Public Shared Sub MyClassInitialize(ByVal testContext As TestContext) + 'End Sub + ' + 'Utilisez ClassCleanup pour exécuter du code après que tous les tests ont été exécutés dans une classe + ' _ + 'Public Shared Sub MyClassCleanup() + 'End Sub + ' + 'Utilisez TestInitialize pour exécuter du code avant d'exécuter chaque test + ' _ + 'Public Sub MyTestInitialize() + 'End Sub + ' + 'Utilisez TestCleanup pour exécuter du code après que chaque test a été exécuté + ' _ + 'Public Sub MyTestCleanup() + 'End Sub + ' +#End Region + + + ''' + '''Test pour Constructeur SQLManager + ''' + _ + Public Sub SQLManagerConstructorTest() + Dim target As SQLManager = New SQLManager() + End Sub + + ''' + '''Test pour addChild + ''' + _ + Public Sub addChildTest() + Dim target As SQLManager = New SQLManager() ' TODO: initialisez à une valeur appropriée + Dim aChild As Child = Nothing ' TODO: initialisez à une valeur appropriée + target.addChild(aChild) + Assert.Inconclusive("Une méthode qui ne retourne pas une valeur ne peut pas être vérifiée.") + End Sub + + ''' + '''Test pour editChild + ''' + _ + Public Sub editChildTest() + Dim target As SQLManager = New SQLManager() ' TODO: initialisez à une valeur appropriée + Dim aChild As Child = Nothing ' TODO: initialisez à une valeur appropriée + target.editChild(aChild) + Assert.Inconclusive("Une méthode qui ne retourne pas une valeur ne peut pas être vérifiée.") + End Sub + + ''' + '''Test pour getChildByID + ''' + _ + Public Sub getChildByIDTest() + Dim target As SQLManager = New SQLManager() ' TODO: initialisez à une valeur appropriée + Dim id As Integer = 0 ' TODO: initialisez à une valeur appropriée + Dim expected As Child = Nothing ' TODO: initialisez à une valeur appropriée + Dim actual As Child + actual = target.getChildByID(id) + Assert.AreEqual(expected, actual) + Assert.Inconclusive("Vérifiez l'exactitude de cette méthode de test.") + End Sub + + ''' + '''Test pour getChildren + ''' + _ + Public Sub getChildrenTest() + Dim target As SQLManager = New SQLManager() ' TODO: initialisez à une valeur appropriée + Dim expected As List(Of Child) = Nothing ' TODO: initialisez à une valeur appropriée + Dim actual As List(Of Child) + actual = target.getChildren + Assert.AreEqual(expected, actual) + Assert.Inconclusive("Vérifiez l'exactitude de cette méthode de test.") + End Sub +End Class diff --git a/TestProjectCreche/TestProjectCreche.vbproj b/TestProjectCreche/TestProjectCreche.vbproj new file mode 100644 index 0000000..6f3cc74 --- /dev/null +++ b/TestProjectCreche/TestProjectCreche.vbproj @@ -0,0 +1,125 @@ + + + + Debug + AnyCPU + + + + + {9ECEEE15-A011-4654-AA8D-28E3889EB563} + Library + TestProjectCreche + TestProjectCreche + 512 + Windows + v3.5 + {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + $(DevEnvDir)PublicAssemblies\ + + + true + full + true + true + bin\Debug\ + TestProjectCreche.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + TestProjectCreche.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + On + + + Binary + + + Off + + + On + + + + True + + + + + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + + + + + + + + + + + + + + + + False + + + + + + + + + + + + + + + + + {B4F616BE-465C-48AC-85E6-672DA34168F3} + ApplicationCrèche 1 + True + + + + + \ No newline at end of file diff --git a/TraceAndTestImpact.testsettings b/TraceAndTestImpact.testsettings new file mode 100644 index 0000000..f6e8bb5 --- /dev/null +++ b/TraceAndTestImpact.testsettings @@ -0,0 +1,21 @@ + + + Il s'agit des paramètres de test pour trace et impact de test. + + + + + + + + + + + + + + + + + + \ No newline at end of file