From a7f5370340f0e8860e2a0a8ac64ee6e601eab54c Mon Sep 17 00:00:00 2001 From: Mehrdad Shirvani Date: Sun, 22 Jun 2025 11:02:30 +0330 Subject: [PATCH] vault backup: 2025-06-22 11:02:30 --- .../DesignTimeBuild/.dtbcache.v2 | Bin ...358bcc67-b3e5-4cd2-9984-3aecd4842c87.vsidx | Bin ...99aeb7ce-2563-4631-b966-40de4255c41b.vsidx | Bin ...d07aa008-5d90-4a0f-91a4-fd404b9f6842.vsidx | Bin .../.vs/DILastSession/v17/.futdcache.v2 | Bin .../DILastSession/.vs/DILastSession/v17/.suo | Bin .../v17/DocumentLayout.backup.json | 0 .../.vs/DILastSession/v17/DocumentLayout.json | 0 .../dilastsession.metadata.v9.bin | Bin .../dilastsession.projects.v9.bin | Bin .../dilastsession.strings.v9.bin | Bin .../DILastSession/DILastSession.csproj | 0 .../DILastSession/DILastSession.sln | 0 .../ExternalService/Service01.cs | 0 .../ExternalService/Service02.cs | 0 .../ExternalService/Service03.cs | 0 .../Framework/Base/BaseService.cs | 0 .../Framework/Interface/IService.cs | 0 .../DILastSession/LifeCycle/A.cs | 0 .../DILastSession/LifeCycle/B.cs | 0 .../DILastSession/LifeCycle/C.cs | 0 .../DILastSession/DILastSession/Program.cs | 0 .../bin/Debug/net8.0/DILastSession.deps.json | 0 .../bin/Debug/net8.0/DILastSession.dll | Bin .../bin/Debug/net8.0/DILastSession.exe | Bin .../bin/Debug/net8.0/DILastSession.pdb | Bin .../net8.0/DILastSession.runtimeconfig.json | 0 .../DILastSession.csproj.nuget.dgspec.json | 0 .../obj/DILastSession.csproj.nuget.g.props | 0 .../obj/DILastSession.csproj.nuget.g.targets | 0 ...CoreApp,Version=v8.0.AssemblyAttributes.cs | 0 .../net8.0/DILastSession.AssemblyInfo.cs | 0 .../DILastSession.AssemblyInfoInputs.cache | 0 ....GeneratedMSBuildEditorConfig.editorconfig | 0 .../net8.0/DILastSession.GlobalUsings.g.cs | 0 .../Debug/net8.0/DILastSession.assets.cache | Bin ...ILastSession.csproj.BuildWithSkipAnalyzers | 0 ...LastSession.csproj.CoreCompileInputs.cache | 0 .../DILastSession.csproj.FileListAbsolute.txt | 0 .../obj/Debug/net8.0/DILastSession.dll | Bin .../DILastSession.genruntimeconfig.cache | 0 .../obj/Debug/net8.0/DILastSession.pdb | Bin .../net8.0/DILastSession.sourcelink.json | 0 .../obj/Debug/net8.0/apphost.exe | Bin .../obj/Debug/net8.0/ref/DILastSession.dll | Bin .../obj/Debug/net8.0/refint/DILastSession.dll | Bin .../DILastSession/obj/project.assets.json | 0 .../DILastSession/obj/project.nuget.cache | 0 .../DILastSession/Session Notes.txt | 0 ...794c0bb5-712e-4ca0-a462-b9205f93f5e5.vsidx | Bin ...ec0a0821-a410-4fd0-ad0d-393b5ba9f39b.vsidx | Bin .../Projects}/.vs/Session07/v16/.suo | Bin .../Projects}/.vs/Session07/v17/.suo | Bin .../Session07/v17/DocumentLayout.backup.json | 0 .../.vs/Session07/v17/DocumentLayout.json | 0 .../Projects}/DIP_Solution01.rar | Bin .../Projects}/DIP_Solution01.zip | Bin .../Projects}/DIP_Solution01/App.config | 0 .../DIP_Solution01/DIP_Solution01.csproj | 0 .../ExternalService/Service01.cs | 0 .../ExternalService/Service02.cs | 0 .../ExternalService/Service03.cs | 0 .../Projects}/DIP_Solution01/LifeCycle/A.cs | 0 .../Projects}/DIP_Solution01/LifeCycle/B.cs | 0 .../Projects}/DIP_Solution01/LifeCycle/C.cs | 0 .../Projects}/DIP_Solution01/Program.cs | 0 .../DIP_Solution01/Properties/AssemblyInfo.cs | 0 .../bin/Debug/DIP_Solution01.exe | Bin .../bin/Debug/DIP_Solution01.exe.config | 0 .../bin/Debug/DIP_Solution01.pdb | Bin ...ework,Version=v4.7.2.AssemblyAttributes.cs | 0 ..._Solution01.csproj.AssemblyReference.cache | Bin ..._Solution01.csproj.CoreCompileInputs.cache | 0 ...DIP_Solution01.csproj.FileListAbsolute.txt | 0 .../obj/Debug/DIP_Solution01.exe | Bin .../obj/Debug/DIP_Solution01.pdb | Bin ...gnTimeResolveAssemblyReferencesInput.cache | Bin .../Projects}/DIP_Solution02/App.config | 0 .../DIP_Solution02/DIP_Solution02.csproj | 0 .../ExternalService/Service01.cs | 0 .../ExternalService/Service02.cs | 0 .../ExternalService/Service03.cs | 0 .../Projects}/DIP_Solution02/LifeCycle/A.cs | 0 .../Projects}/DIP_Solution02/LifeCycle/B.cs | 0 .../Projects}/DIP_Solution02/LifeCycle/C.cs | 0 .../Projects}/DIP_Solution02/Program.cs | 0 .../DIP_Solution02/Properties/AssemblyInfo.cs | 0 .../bin/Debug/DIP_Solution02.exe | Bin .../bin/Debug/DIP_Solution02.exe.config | 0 .../bin/Debug/DIP_Solution02.pdb | Bin ...ework,Version=v4.7.2.AssemblyAttributes.cs | 0 ..._Solution02.csproj.AssemblyReference.cache | Bin ..._Solution02.csproj.CoreCompileInputs.cache | 0 ...DIP_Solution02.csproj.FileListAbsolute.txt | 0 .../obj/Debug/DIP_Solution02.exe | Bin .../obj/Debug/DIP_Solution02.pdb | Bin ...gnTimeResolveAssemblyReferencesInput.cache | Bin .../Projects}/DIP_Solution03.zip | Bin .../Projects}/DIP_Solution03/App.config | 0 .../DIP_Solution03/DIP_Solution03.csproj | 0 .../ExternalService/Service01.cs | 0 .../ExternalService/Service02.cs | 0 .../ExternalService/Service03.cs | 0 .../Projects}/DIP_Solution03/LifeCycle/A.cs | 0 .../Projects}/DIP_Solution03/LifeCycle/B.cs | 0 .../Projects}/DIP_Solution03/LifeCycle/C.cs | 0 .../Projects}/DIP_Solution03/Program.cs | 0 .../DIP_Solution03/Properties/AssemblyInfo.cs | 0 .../Projects}/DIP_Solution03/Service.cs | 0 .../bin/Debug/DIP_Solution03.exe | Bin .../bin/Debug/DIP_Solution03.exe.config | 0 .../bin/Debug/DIP_Solution03.pdb | Bin ...ework,Version=v4.7.2.AssemblyAttributes.cs | 0 ..._Solution03.csproj.AssemblyReference.cache | Bin ..._Solution03.csproj.CoreCompileInputs.cache | 0 ...DIP_Solution03.csproj.FileListAbsolute.txt | 0 .../obj/Debug/DIP_Solution03.exe | Bin .../obj/Debug/DIP_Solution03.pdb | Bin ...gnTimeResolveAssemblyReferencesInput.cache | Bin .../Projects}/DIP_Solution04/App.config | 0 .../DIP_Solution04/DIP_Solution04.csproj | 0 .../ExternalService/Service01.cs | 0 .../ExternalService/Service02.cs | 0 .../ExternalService/Service03.cs | 0 .../Framework/Base/BaseService.cs | 0 .../Framework/Interface/IService.cs | 0 .../Projects}/DIP_Solution04/LifeCycle/A.cs | 0 .../Projects}/DIP_Solution04/LifeCycle/B.cs | 0 .../Projects}/DIP_Solution04/LifeCycle/C.cs | 0 .../Projects}/DIP_Solution04/Program.cs | 0 .../DIP_Solution04/Properties/AssemblyInfo.cs | 0 .../bin/Debug/DIP_Solution04.exe | Bin .../bin/Debug/DIP_Solution04.exe.config | 0 .../bin/Debug/DIP_Solution04.pdb | Bin ...ework,Version=v4.7.2.AssemblyAttributes.cs | 0 ..._Solution04.csproj.AssemblyReference.cache | Bin ..._Solution04.csproj.CoreCompileInputs.cache | 0 ...DIP_Solution04.csproj.FileListAbsolute.txt | 0 .../obj/Debug/DIP_Solution04.exe | Bin .../obj/Debug/DIP_Solution04.pdb | Bin ...gnTimeResolveAssemblyReferencesInput.cache | Bin .../Projects}/DIP_Solution05/App.config | 0 .../DIP_Solution05/DIP_Solution05.csproj | 0 .../ExternalService/Service01.cs | 0 .../ExternalService/Service02.cs | 0 .../ExternalService/Service03.cs | 0 .../Framework/Base/BaseService.cs | 0 .../Framework/Interface/IService.cs | 0 .../Projects}/DIP_Solution05/LifeCycle/A.cs | 0 .../Projects}/DIP_Solution05/LifeCycle/B.cs | 0 .../Projects}/DIP_Solution05/LifeCycle/C.cs | 0 .../Projects}/DIP_Solution05/Program.cs | 0 .../DIP_Solution05/Properties/AssemblyInfo.cs | 0 .../bin/Debug/DIP_Solution05.exe | Bin .../bin/Debug/DIP_Solution05.exe.config | 0 .../bin/Debug/DIP_Solution05.pdb | Bin ...ework,Version=v4.7.2.AssemblyAttributes.cs | 0 ..._Solution05.csproj.AssemblyReference.cache | Bin ..._Solution05.csproj.CoreCompileInputs.cache | 0 ...DIP_Solution05.csproj.FileListAbsolute.txt | 0 .../obj/Debug/DIP_Solution05.exe | Bin .../obj/Debug/DIP_Solution05.pdb | Bin ...gnTimeResolveAssemblyReferencesInput.cache | Bin .../Projects}/Session07.sln | 0 .../Session07.md} | 0 ...ojectStructure.md => Project Structure.md} | 11 +- ...cument.md => Session01 Additional Info.md} | 156 ---- .../Session01/Session01 Backend.md | 156 ++++ ...reparation.md => Session01 Preparation.md} | 2 +- .../Session02/Session02 Additional Info.md | 62 ++ ...on 02 Document.md => Session02 Backend.md} | 66 +- .../Session02 Fixes.md} | 2 +- ...on 03 Document.md => Session03 Backend.md} | 133 --- .../Session03/Session03 Preparation.md | 131 +++ .../Session04/Session04 Additional Info.md | 320 ++++++++ .../{Session04.md => Session04 Backend.md} | 324 +------- .../Session05/React/Mosh React.md | 1 + .../Session05/React}/Resources.md | 0 .../Session05/Session05 Additional Info.md | 0 .../Session05/Session05 Backend.md | 19 + .../{Session05.md => Session05 Frontend.md} | 45 - .../{Session06.md => Session06 Frontend.md} | 2 - .../Session07/Session07 Additional Info.md | 12 +- .../Session07/Session07 Backend.md | 2 +- .../Session08/New Roadmap.md | 58 -- .../Session09/Database Transactions.md | 766 ++++++++++++++++++ .../Session09/Session09 Backend.md | 4 + .../docs/AlibabaERD-Version02.pdf | Bin 118914 -> 118828 bytes .../docs/AlibabaERD-Version02.vsdx | Bin 86677 -> 86287 bytes 189 files changed, 1475 insertions(+), 797 deletions(-) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/.vs/DILastSession/DesignTimeBuild/.dtbcache.v2 (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/.vs/DILastSession/FileContentIndex/358bcc67-b3e5-4cd2-9984-3aecd4842c87.vsidx (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/.vs/DILastSession/FileContentIndex/99aeb7ce-2563-4631-b966-40de4255c41b.vsidx (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/.vs/DILastSession/FileContentIndex/d07aa008-5d90-4a0f-91a4-fd404b9f6842.vsidx (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/.vs/DILastSession/v17/.futdcache.v2 (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/.vs/DILastSession/v17/.suo (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/.vs/DILastSession/v17/DocumentLayout.backup.json (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/.vs/DILastSession/v17/DocumentLayout.json (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/.vs/ProjectEvaluation/dilastsession.metadata.v9.bin (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/.vs/ProjectEvaluation/dilastsession.projects.v9.bin (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/.vs/ProjectEvaluation/dilastsession.strings.v9.bin (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/DILastSession.csproj (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/DILastSession.sln (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/ExternalService/Service01.cs (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/ExternalService/Service02.cs (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/ExternalService/Service03.cs (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/Framework/Base/BaseService.cs (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/Framework/Interface/IService.cs (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/LifeCycle/A.cs (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/LifeCycle/B.cs (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/LifeCycle/C.cs (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/Program.cs (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/bin/Debug/net8.0/DILastSession.deps.json (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/bin/Debug/net8.0/DILastSession.dll (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/bin/Debug/net8.0/DILastSession.exe (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/bin/Debug/net8.0/DILastSession.pdb (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/bin/Debug/net8.0/DILastSession.runtimeconfig.json (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/obj/DILastSession.csproj.nuget.dgspec.json (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/obj/DILastSession.csproj.nuget.g.props (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/obj/DILastSession.csproj.nuget.g.targets (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.AssemblyInfo.cs (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.AssemblyInfoInputs.cache (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.GeneratedMSBuildEditorConfig.editorconfig (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.GlobalUsings.g.cs (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.assets.cache (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.csproj.BuildWithSkipAnalyzers (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.csproj.CoreCompileInputs.cache (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.csproj.FileListAbsolute.txt (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.dll (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.genruntimeconfig.cache (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.pdb (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.sourcelink.json (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/obj/Debug/net8.0/apphost.exe (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/obj/Debug/net8.0/ref/DILastSession.dll (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/obj/Debug/net8.0/refint/DILastSession.dll (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/obj/project.assets.json (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/DILastSession/obj/project.nuget.cache (100%) rename 01_IntroductionSessions/{ => Session07}/DILastSession/Session Notes.txt (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/.vs/Session07/FileContentIndex/794c0bb5-712e-4ca0-a462-b9205f93f5e5.vsidx (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/.vs/Session07/FileContentIndex/ec0a0821-a410-4fd0-ad0d-393b5ba9f39b.vsidx (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/.vs/Session07/v16/.suo (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/.vs/Session07/v17/.suo (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/.vs/Session07/v17/DocumentLayout.backup.json (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/.vs/Session07/v17/DocumentLayout.json (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution01.rar (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution01.zip (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution01/App.config (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution01/DIP_Solution01.csproj (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution01/ExternalService/Service01.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution01/ExternalService/Service02.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution01/ExternalService/Service03.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution01/LifeCycle/A.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution01/LifeCycle/B.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution01/LifeCycle/C.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution01/Program.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution01/Properties/AssemblyInfo.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution01/bin/Debug/DIP_Solution01.exe (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution01/bin/Debug/DIP_Solution01.exe.config (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution01/bin/Debug/DIP_Solution01.pdb (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution01/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution01/obj/Debug/DIP_Solution01.csproj.AssemblyReference.cache (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution01/obj/Debug/DIP_Solution01.csproj.CoreCompileInputs.cache (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution01/obj/Debug/DIP_Solution01.csproj.FileListAbsolute.txt (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution01/obj/Debug/DIP_Solution01.exe (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution01/obj/Debug/DIP_Solution01.pdb (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution01/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution02/App.config (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution02/DIP_Solution02.csproj (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution02/ExternalService/Service01.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution02/ExternalService/Service02.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution02/ExternalService/Service03.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution02/LifeCycle/A.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution02/LifeCycle/B.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution02/LifeCycle/C.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution02/Program.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution02/Properties/AssemblyInfo.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution02/bin/Debug/DIP_Solution02.exe (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution02/bin/Debug/DIP_Solution02.exe.config (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution02/bin/Debug/DIP_Solution02.pdb (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution02/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution02/obj/Debug/DIP_Solution02.csproj.AssemblyReference.cache (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution02/obj/Debug/DIP_Solution02.csproj.CoreCompileInputs.cache (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution02/obj/Debug/DIP_Solution02.csproj.FileListAbsolute.txt (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution02/obj/Debug/DIP_Solution02.exe (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution02/obj/Debug/DIP_Solution02.pdb (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution02/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution03.zip (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution03/App.config (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution03/DIP_Solution03.csproj (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution03/ExternalService/Service01.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution03/ExternalService/Service02.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution03/ExternalService/Service03.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution03/LifeCycle/A.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution03/LifeCycle/B.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution03/LifeCycle/C.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution03/Program.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution03/Properties/AssemblyInfo.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution03/Service.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution03/bin/Debug/DIP_Solution03.exe (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution03/bin/Debug/DIP_Solution03.exe.config (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution03/bin/Debug/DIP_Solution03.pdb (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution03/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution03/obj/Debug/DIP_Solution03.csproj.AssemblyReference.cache (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution03/obj/Debug/DIP_Solution03.csproj.CoreCompileInputs.cache (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution03/obj/Debug/DIP_Solution03.csproj.FileListAbsolute.txt (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution03/obj/Debug/DIP_Solution03.exe (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution03/obj/Debug/DIP_Solution03.pdb (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution03/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution04/App.config (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution04/DIP_Solution04.csproj (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution04/ExternalService/Service01.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution04/ExternalService/Service02.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution04/ExternalService/Service03.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution04/Framework/Base/BaseService.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution04/Framework/Interface/IService.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution04/LifeCycle/A.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution04/LifeCycle/B.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution04/LifeCycle/C.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution04/Program.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution04/Properties/AssemblyInfo.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution04/bin/Debug/DIP_Solution04.exe (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution04/bin/Debug/DIP_Solution04.exe.config (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution04/bin/Debug/DIP_Solution04.pdb (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution04/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution04/obj/Debug/DIP_Solution04.csproj.AssemblyReference.cache (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution04/obj/Debug/DIP_Solution04.csproj.CoreCompileInputs.cache (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution04/obj/Debug/DIP_Solution04.csproj.FileListAbsolute.txt (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution04/obj/Debug/DIP_Solution04.exe (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution04/obj/Debug/DIP_Solution04.pdb (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution04/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution05/App.config (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution05/DIP_Solution05.csproj (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution05/ExternalService/Service01.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution05/ExternalService/Service02.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution05/ExternalService/Service03.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution05/Framework/Base/BaseService.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution05/Framework/Interface/IService.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution05/LifeCycle/A.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution05/LifeCycle/B.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution05/LifeCycle/C.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution05/Program.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution05/Properties/AssemblyInfo.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution05/bin/Debug/DIP_Solution05.exe (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution05/bin/Debug/DIP_Solution05.exe.config (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution05/bin/Debug/DIP_Solution05.pdb (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution05/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution05/obj/Debug/DIP_Solution05.csproj.AssemblyReference.cache (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution05/obj/Debug/DIP_Solution05.csproj.CoreCompileInputs.cache (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution05/obj/Debug/DIP_Solution05.csproj.FileListAbsolute.txt (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution05/obj/Debug/DIP_Solution05.exe (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution05/obj/Debug/DIP_Solution05.pdb (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/DIP_Solution05/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache (100%) rename 01_IntroductionSessions/{DILastSession/ALI_Session07/Session07/Session07 => Session07/Projects}/Session07.sln (100%) rename 01_IntroductionSessions/{DILastSession/DILastSession.md => Session07/Session07.md} (100%) rename 02_ProjectOrientedSessions/Session00/{ProjectStructure.md => Project Structure.md} (97%) rename 02_ProjectOrientedSessions/Session01/{Session 01 Document.md => Session01 Additional Info.md} (57%) create mode 100644 02_ProjectOrientedSessions/Session01/Session01 Backend.md rename 02_ProjectOrientedSessions/Session01/{Session 01 Preparation.md => Session01 Preparation.md} (95%) create mode 100644 02_ProjectOrientedSessions/Session02/Session02 Additional Info.md rename 02_ProjectOrientedSessions/Session02/{Session 02 Document.md => Session02 Backend.md} (84%) rename 02_ProjectOrientedSessions/{Session02-Fixes/Join Table.md => Session02/Session02 Fixes.md} (98%) rename 02_ProjectOrientedSessions/Session03/{Session 03 Document.md => Session03 Backend.md} (51%) create mode 100644 02_ProjectOrientedSessions/Session03/Session03 Preparation.md create mode 100644 02_ProjectOrientedSessions/Session04/Session04 Additional Info.md rename 02_ProjectOrientedSessions/Session04/{Session04.md => Session04 Backend.md} (52%) create mode 100644 02_ProjectOrientedSessions/Session05/React/Mosh React.md rename {React => 02_ProjectOrientedSessions/Session05/React}/Resources.md (100%) rename React/Mosh React.md => 02_ProjectOrientedSessions/Session05/Session05 Additional Info.md (100%) create mode 100644 02_ProjectOrientedSessions/Session05/Session05 Backend.md rename 02_ProjectOrientedSessions/Session05/{Session05.md => Session05 Frontend.md} (96%) rename 02_ProjectOrientedSessions/Session06/{Session06.md => Session06 Frontend.md} (99%) delete mode 100644 02_ProjectOrientedSessions/Session08/New Roadmap.md create mode 100644 02_ProjectOrientedSessions/Session09/Database Transactions.md create mode 100644 02_ProjectOrientedSessions/Session09/Session09 Backend.md diff --git a/01_IntroductionSessions/DILastSession/DILastSession/.vs/DILastSession/DesignTimeBuild/.dtbcache.v2 b/01_IntroductionSessions/Session07/DILastSession/DILastSession/.vs/DILastSession/DesignTimeBuild/.dtbcache.v2 similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/.vs/DILastSession/DesignTimeBuild/.dtbcache.v2 rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/.vs/DILastSession/DesignTimeBuild/.dtbcache.v2 diff --git a/01_IntroductionSessions/DILastSession/DILastSession/.vs/DILastSession/FileContentIndex/358bcc67-b3e5-4cd2-9984-3aecd4842c87.vsidx b/01_IntroductionSessions/Session07/DILastSession/DILastSession/.vs/DILastSession/FileContentIndex/358bcc67-b3e5-4cd2-9984-3aecd4842c87.vsidx similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/.vs/DILastSession/FileContentIndex/358bcc67-b3e5-4cd2-9984-3aecd4842c87.vsidx rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/.vs/DILastSession/FileContentIndex/358bcc67-b3e5-4cd2-9984-3aecd4842c87.vsidx diff --git a/01_IntroductionSessions/DILastSession/DILastSession/.vs/DILastSession/FileContentIndex/99aeb7ce-2563-4631-b966-40de4255c41b.vsidx b/01_IntroductionSessions/Session07/DILastSession/DILastSession/.vs/DILastSession/FileContentIndex/99aeb7ce-2563-4631-b966-40de4255c41b.vsidx similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/.vs/DILastSession/FileContentIndex/99aeb7ce-2563-4631-b966-40de4255c41b.vsidx rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/.vs/DILastSession/FileContentIndex/99aeb7ce-2563-4631-b966-40de4255c41b.vsidx diff --git a/01_IntroductionSessions/DILastSession/DILastSession/.vs/DILastSession/FileContentIndex/d07aa008-5d90-4a0f-91a4-fd404b9f6842.vsidx b/01_IntroductionSessions/Session07/DILastSession/DILastSession/.vs/DILastSession/FileContentIndex/d07aa008-5d90-4a0f-91a4-fd404b9f6842.vsidx similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/.vs/DILastSession/FileContentIndex/d07aa008-5d90-4a0f-91a4-fd404b9f6842.vsidx rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/.vs/DILastSession/FileContentIndex/d07aa008-5d90-4a0f-91a4-fd404b9f6842.vsidx diff --git a/01_IntroductionSessions/DILastSession/DILastSession/.vs/DILastSession/v17/.futdcache.v2 b/01_IntroductionSessions/Session07/DILastSession/DILastSession/.vs/DILastSession/v17/.futdcache.v2 similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/.vs/DILastSession/v17/.futdcache.v2 rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/.vs/DILastSession/v17/.futdcache.v2 diff --git a/01_IntroductionSessions/DILastSession/DILastSession/.vs/DILastSession/v17/.suo b/01_IntroductionSessions/Session07/DILastSession/DILastSession/.vs/DILastSession/v17/.suo similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/.vs/DILastSession/v17/.suo rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/.vs/DILastSession/v17/.suo diff --git a/01_IntroductionSessions/DILastSession/DILastSession/.vs/DILastSession/v17/DocumentLayout.backup.json b/01_IntroductionSessions/Session07/DILastSession/DILastSession/.vs/DILastSession/v17/DocumentLayout.backup.json similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/.vs/DILastSession/v17/DocumentLayout.backup.json rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/.vs/DILastSession/v17/DocumentLayout.backup.json diff --git a/01_IntroductionSessions/DILastSession/DILastSession/.vs/DILastSession/v17/DocumentLayout.json b/01_IntroductionSessions/Session07/DILastSession/DILastSession/.vs/DILastSession/v17/DocumentLayout.json similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/.vs/DILastSession/v17/DocumentLayout.json rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/.vs/DILastSession/v17/DocumentLayout.json diff --git a/01_IntroductionSessions/DILastSession/DILastSession/.vs/ProjectEvaluation/dilastsession.metadata.v9.bin b/01_IntroductionSessions/Session07/DILastSession/DILastSession/.vs/ProjectEvaluation/dilastsession.metadata.v9.bin similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/.vs/ProjectEvaluation/dilastsession.metadata.v9.bin rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/.vs/ProjectEvaluation/dilastsession.metadata.v9.bin diff --git a/01_IntroductionSessions/DILastSession/DILastSession/.vs/ProjectEvaluation/dilastsession.projects.v9.bin b/01_IntroductionSessions/Session07/DILastSession/DILastSession/.vs/ProjectEvaluation/dilastsession.projects.v9.bin similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/.vs/ProjectEvaluation/dilastsession.projects.v9.bin rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/.vs/ProjectEvaluation/dilastsession.projects.v9.bin diff --git a/01_IntroductionSessions/DILastSession/DILastSession/.vs/ProjectEvaluation/dilastsession.strings.v9.bin b/01_IntroductionSessions/Session07/DILastSession/DILastSession/.vs/ProjectEvaluation/dilastsession.strings.v9.bin similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/.vs/ProjectEvaluation/dilastsession.strings.v9.bin rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/.vs/ProjectEvaluation/dilastsession.strings.v9.bin diff --git a/01_IntroductionSessions/DILastSession/DILastSession/DILastSession.csproj b/01_IntroductionSessions/Session07/DILastSession/DILastSession/DILastSession.csproj similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/DILastSession.csproj rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/DILastSession.csproj diff --git a/01_IntroductionSessions/DILastSession/DILastSession/DILastSession.sln b/01_IntroductionSessions/Session07/DILastSession/DILastSession/DILastSession.sln similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/DILastSession.sln rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/DILastSession.sln diff --git a/01_IntroductionSessions/DILastSession/DILastSession/ExternalService/Service01.cs b/01_IntroductionSessions/Session07/DILastSession/DILastSession/ExternalService/Service01.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/ExternalService/Service01.cs rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/ExternalService/Service01.cs diff --git a/01_IntroductionSessions/DILastSession/DILastSession/ExternalService/Service02.cs b/01_IntroductionSessions/Session07/DILastSession/DILastSession/ExternalService/Service02.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/ExternalService/Service02.cs rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/ExternalService/Service02.cs diff --git a/01_IntroductionSessions/DILastSession/DILastSession/ExternalService/Service03.cs b/01_IntroductionSessions/Session07/DILastSession/DILastSession/ExternalService/Service03.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/ExternalService/Service03.cs rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/ExternalService/Service03.cs diff --git a/01_IntroductionSessions/DILastSession/DILastSession/Framework/Base/BaseService.cs b/01_IntroductionSessions/Session07/DILastSession/DILastSession/Framework/Base/BaseService.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/Framework/Base/BaseService.cs rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/Framework/Base/BaseService.cs diff --git a/01_IntroductionSessions/DILastSession/DILastSession/Framework/Interface/IService.cs b/01_IntroductionSessions/Session07/DILastSession/DILastSession/Framework/Interface/IService.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/Framework/Interface/IService.cs rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/Framework/Interface/IService.cs diff --git a/01_IntroductionSessions/DILastSession/DILastSession/LifeCycle/A.cs b/01_IntroductionSessions/Session07/DILastSession/DILastSession/LifeCycle/A.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/LifeCycle/A.cs rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/LifeCycle/A.cs diff --git a/01_IntroductionSessions/DILastSession/DILastSession/LifeCycle/B.cs b/01_IntroductionSessions/Session07/DILastSession/DILastSession/LifeCycle/B.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/LifeCycle/B.cs rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/LifeCycle/B.cs diff --git a/01_IntroductionSessions/DILastSession/DILastSession/LifeCycle/C.cs b/01_IntroductionSessions/Session07/DILastSession/DILastSession/LifeCycle/C.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/LifeCycle/C.cs rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/LifeCycle/C.cs diff --git a/01_IntroductionSessions/DILastSession/DILastSession/Program.cs b/01_IntroductionSessions/Session07/DILastSession/DILastSession/Program.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/Program.cs rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/Program.cs diff --git a/01_IntroductionSessions/DILastSession/DILastSession/bin/Debug/net8.0/DILastSession.deps.json b/01_IntroductionSessions/Session07/DILastSession/DILastSession/bin/Debug/net8.0/DILastSession.deps.json similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/bin/Debug/net8.0/DILastSession.deps.json rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/bin/Debug/net8.0/DILastSession.deps.json diff --git a/01_IntroductionSessions/DILastSession/DILastSession/bin/Debug/net8.0/DILastSession.dll b/01_IntroductionSessions/Session07/DILastSession/DILastSession/bin/Debug/net8.0/DILastSession.dll similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/bin/Debug/net8.0/DILastSession.dll rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/bin/Debug/net8.0/DILastSession.dll diff --git a/01_IntroductionSessions/DILastSession/DILastSession/bin/Debug/net8.0/DILastSession.exe b/01_IntroductionSessions/Session07/DILastSession/DILastSession/bin/Debug/net8.0/DILastSession.exe similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/bin/Debug/net8.0/DILastSession.exe rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/bin/Debug/net8.0/DILastSession.exe diff --git a/01_IntroductionSessions/DILastSession/DILastSession/bin/Debug/net8.0/DILastSession.pdb b/01_IntroductionSessions/Session07/DILastSession/DILastSession/bin/Debug/net8.0/DILastSession.pdb similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/bin/Debug/net8.0/DILastSession.pdb rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/bin/Debug/net8.0/DILastSession.pdb diff --git a/01_IntroductionSessions/DILastSession/DILastSession/bin/Debug/net8.0/DILastSession.runtimeconfig.json b/01_IntroductionSessions/Session07/DILastSession/DILastSession/bin/Debug/net8.0/DILastSession.runtimeconfig.json similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/bin/Debug/net8.0/DILastSession.runtimeconfig.json rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/bin/Debug/net8.0/DILastSession.runtimeconfig.json diff --git a/01_IntroductionSessions/DILastSession/DILastSession/obj/DILastSession.csproj.nuget.dgspec.json b/01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/DILastSession.csproj.nuget.dgspec.json similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/obj/DILastSession.csproj.nuget.dgspec.json rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/DILastSession.csproj.nuget.dgspec.json diff --git a/01_IntroductionSessions/DILastSession/DILastSession/obj/DILastSession.csproj.nuget.g.props b/01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/DILastSession.csproj.nuget.g.props similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/obj/DILastSession.csproj.nuget.g.props rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/DILastSession.csproj.nuget.g.props diff --git a/01_IntroductionSessions/DILastSession/DILastSession/obj/DILastSession.csproj.nuget.g.targets b/01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/DILastSession.csproj.nuget.g.targets similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/obj/DILastSession.csproj.nuget.g.targets rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/DILastSession.csproj.nuget.g.targets diff --git a/01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs diff --git a/01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.AssemblyInfo.cs b/01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.AssemblyInfo.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.AssemblyInfo.cs rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.AssemblyInfo.cs diff --git a/01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.AssemblyInfoInputs.cache b/01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.AssemblyInfoInputs.cache similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.AssemblyInfoInputs.cache rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.AssemblyInfoInputs.cache diff --git a/01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.GeneratedMSBuildEditorConfig.editorconfig b/01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.GeneratedMSBuildEditorConfig.editorconfig similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.GeneratedMSBuildEditorConfig.editorconfig rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.GeneratedMSBuildEditorConfig.editorconfig diff --git a/01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.GlobalUsings.g.cs b/01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.GlobalUsings.g.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.GlobalUsings.g.cs rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.GlobalUsings.g.cs diff --git a/01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.assets.cache b/01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.assets.cache similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.assets.cache rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.assets.cache diff --git a/01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.csproj.BuildWithSkipAnalyzers b/01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.csproj.BuildWithSkipAnalyzers similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.csproj.BuildWithSkipAnalyzers rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.csproj.BuildWithSkipAnalyzers diff --git a/01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.csproj.CoreCompileInputs.cache b/01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.csproj.CoreCompileInputs.cache similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.csproj.CoreCompileInputs.cache rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.csproj.CoreCompileInputs.cache diff --git a/01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.csproj.FileListAbsolute.txt b/01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.csproj.FileListAbsolute.txt similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.csproj.FileListAbsolute.txt rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.csproj.FileListAbsolute.txt diff --git a/01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.dll b/01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.dll similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.dll rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.dll diff --git a/01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.genruntimeconfig.cache b/01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.genruntimeconfig.cache similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.genruntimeconfig.cache rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.genruntimeconfig.cache diff --git a/01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.pdb b/01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.pdb similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.pdb rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.pdb diff --git a/01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.sourcelink.json b/01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.sourcelink.json similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.sourcelink.json rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/DILastSession.sourcelink.json diff --git a/01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/apphost.exe b/01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/apphost.exe similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/apphost.exe rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/apphost.exe diff --git a/01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/ref/DILastSession.dll b/01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/ref/DILastSession.dll similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/ref/DILastSession.dll rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/ref/DILastSession.dll diff --git a/01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/refint/DILastSession.dll b/01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/refint/DILastSession.dll similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/obj/Debug/net8.0/refint/DILastSession.dll rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/Debug/net8.0/refint/DILastSession.dll diff --git a/01_IntroductionSessions/DILastSession/DILastSession/obj/project.assets.json b/01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/project.assets.json similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/obj/project.assets.json rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/project.assets.json diff --git a/01_IntroductionSessions/DILastSession/DILastSession/obj/project.nuget.cache b/01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/project.nuget.cache similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession/obj/project.nuget.cache rename to 01_IntroductionSessions/Session07/DILastSession/DILastSession/obj/project.nuget.cache diff --git a/01_IntroductionSessions/DILastSession/Session Notes.txt b/01_IntroductionSessions/Session07/DILastSession/Session Notes.txt similarity index 100% rename from 01_IntroductionSessions/DILastSession/Session Notes.txt rename to 01_IntroductionSessions/Session07/DILastSession/Session Notes.txt diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/.vs/Session07/FileContentIndex/794c0bb5-712e-4ca0-a462-b9205f93f5e5.vsidx b/01_IntroductionSessions/Session07/Projects/.vs/Session07/FileContentIndex/794c0bb5-712e-4ca0-a462-b9205f93f5e5.vsidx similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/.vs/Session07/FileContentIndex/794c0bb5-712e-4ca0-a462-b9205f93f5e5.vsidx rename to 01_IntroductionSessions/Session07/Projects/.vs/Session07/FileContentIndex/794c0bb5-712e-4ca0-a462-b9205f93f5e5.vsidx diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/.vs/Session07/FileContentIndex/ec0a0821-a410-4fd0-ad0d-393b5ba9f39b.vsidx b/01_IntroductionSessions/Session07/Projects/.vs/Session07/FileContentIndex/ec0a0821-a410-4fd0-ad0d-393b5ba9f39b.vsidx similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/.vs/Session07/FileContentIndex/ec0a0821-a410-4fd0-ad0d-393b5ba9f39b.vsidx rename to 01_IntroductionSessions/Session07/Projects/.vs/Session07/FileContentIndex/ec0a0821-a410-4fd0-ad0d-393b5ba9f39b.vsidx diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/.vs/Session07/v16/.suo b/01_IntroductionSessions/Session07/Projects/.vs/Session07/v16/.suo similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/.vs/Session07/v16/.suo rename to 01_IntroductionSessions/Session07/Projects/.vs/Session07/v16/.suo diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/.vs/Session07/v17/.suo b/01_IntroductionSessions/Session07/Projects/.vs/Session07/v17/.suo similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/.vs/Session07/v17/.suo rename to 01_IntroductionSessions/Session07/Projects/.vs/Session07/v17/.suo diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/.vs/Session07/v17/DocumentLayout.backup.json b/01_IntroductionSessions/Session07/Projects/.vs/Session07/v17/DocumentLayout.backup.json similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/.vs/Session07/v17/DocumentLayout.backup.json rename to 01_IntroductionSessions/Session07/Projects/.vs/Session07/v17/DocumentLayout.backup.json diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/.vs/Session07/v17/DocumentLayout.json b/01_IntroductionSessions/Session07/Projects/.vs/Session07/v17/DocumentLayout.json similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/.vs/Session07/v17/DocumentLayout.json rename to 01_IntroductionSessions/Session07/Projects/.vs/Session07/v17/DocumentLayout.json diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01.rar b/01_IntroductionSessions/Session07/Projects/DIP_Solution01.rar similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01.rar rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution01.rar diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01.zip b/01_IntroductionSessions/Session07/Projects/DIP_Solution01.zip similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01.zip rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution01.zip diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/App.config b/01_IntroductionSessions/Session07/Projects/DIP_Solution01/App.config similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/App.config rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution01/App.config diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/DIP_Solution01.csproj b/01_IntroductionSessions/Session07/Projects/DIP_Solution01/DIP_Solution01.csproj similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/DIP_Solution01.csproj rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution01/DIP_Solution01.csproj diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/ExternalService/Service01.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution01/ExternalService/Service01.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/ExternalService/Service01.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution01/ExternalService/Service01.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/ExternalService/Service02.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution01/ExternalService/Service02.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/ExternalService/Service02.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution01/ExternalService/Service02.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/ExternalService/Service03.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution01/ExternalService/Service03.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/ExternalService/Service03.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution01/ExternalService/Service03.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/LifeCycle/A.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution01/LifeCycle/A.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/LifeCycle/A.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution01/LifeCycle/A.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/LifeCycle/B.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution01/LifeCycle/B.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/LifeCycle/B.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution01/LifeCycle/B.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/LifeCycle/C.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution01/LifeCycle/C.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/LifeCycle/C.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution01/LifeCycle/C.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/Program.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution01/Program.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/Program.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution01/Program.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/Properties/AssemblyInfo.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution01/Properties/AssemblyInfo.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/Properties/AssemblyInfo.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution01/Properties/AssemblyInfo.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/bin/Debug/DIP_Solution01.exe b/01_IntroductionSessions/Session07/Projects/DIP_Solution01/bin/Debug/DIP_Solution01.exe similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/bin/Debug/DIP_Solution01.exe rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution01/bin/Debug/DIP_Solution01.exe diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/bin/Debug/DIP_Solution01.exe.config b/01_IntroductionSessions/Session07/Projects/DIP_Solution01/bin/Debug/DIP_Solution01.exe.config similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/bin/Debug/DIP_Solution01.exe.config rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution01/bin/Debug/DIP_Solution01.exe.config diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/bin/Debug/DIP_Solution01.pdb b/01_IntroductionSessions/Session07/Projects/DIP_Solution01/bin/Debug/DIP_Solution01.pdb similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/bin/Debug/DIP_Solution01.pdb rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution01/bin/Debug/DIP_Solution01.pdb diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution01/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution01/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/obj/Debug/DIP_Solution01.csproj.AssemblyReference.cache b/01_IntroductionSessions/Session07/Projects/DIP_Solution01/obj/Debug/DIP_Solution01.csproj.AssemblyReference.cache similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/obj/Debug/DIP_Solution01.csproj.AssemblyReference.cache rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution01/obj/Debug/DIP_Solution01.csproj.AssemblyReference.cache diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/obj/Debug/DIP_Solution01.csproj.CoreCompileInputs.cache b/01_IntroductionSessions/Session07/Projects/DIP_Solution01/obj/Debug/DIP_Solution01.csproj.CoreCompileInputs.cache similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/obj/Debug/DIP_Solution01.csproj.CoreCompileInputs.cache rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution01/obj/Debug/DIP_Solution01.csproj.CoreCompileInputs.cache diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/obj/Debug/DIP_Solution01.csproj.FileListAbsolute.txt b/01_IntroductionSessions/Session07/Projects/DIP_Solution01/obj/Debug/DIP_Solution01.csproj.FileListAbsolute.txt similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/obj/Debug/DIP_Solution01.csproj.FileListAbsolute.txt rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution01/obj/Debug/DIP_Solution01.csproj.FileListAbsolute.txt diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/obj/Debug/DIP_Solution01.exe b/01_IntroductionSessions/Session07/Projects/DIP_Solution01/obj/Debug/DIP_Solution01.exe similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/obj/Debug/DIP_Solution01.exe rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution01/obj/Debug/DIP_Solution01.exe diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/obj/Debug/DIP_Solution01.pdb b/01_IntroductionSessions/Session07/Projects/DIP_Solution01/obj/Debug/DIP_Solution01.pdb similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/obj/Debug/DIP_Solution01.pdb rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution01/obj/Debug/DIP_Solution01.pdb diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/01_IntroductionSessions/Session07/Projects/DIP_Solution01/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution01/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution01/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/App.config b/01_IntroductionSessions/Session07/Projects/DIP_Solution02/App.config similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/App.config rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution02/App.config diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/DIP_Solution02.csproj b/01_IntroductionSessions/Session07/Projects/DIP_Solution02/DIP_Solution02.csproj similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/DIP_Solution02.csproj rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution02/DIP_Solution02.csproj diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/ExternalService/Service01.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution02/ExternalService/Service01.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/ExternalService/Service01.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution02/ExternalService/Service01.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/ExternalService/Service02.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution02/ExternalService/Service02.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/ExternalService/Service02.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution02/ExternalService/Service02.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/ExternalService/Service03.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution02/ExternalService/Service03.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/ExternalService/Service03.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution02/ExternalService/Service03.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/LifeCycle/A.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution02/LifeCycle/A.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/LifeCycle/A.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution02/LifeCycle/A.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/LifeCycle/B.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution02/LifeCycle/B.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/LifeCycle/B.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution02/LifeCycle/B.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/LifeCycle/C.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution02/LifeCycle/C.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/LifeCycle/C.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution02/LifeCycle/C.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/Program.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution02/Program.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/Program.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution02/Program.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/Properties/AssemblyInfo.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution02/Properties/AssemblyInfo.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/Properties/AssemblyInfo.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution02/Properties/AssemblyInfo.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/bin/Debug/DIP_Solution02.exe b/01_IntroductionSessions/Session07/Projects/DIP_Solution02/bin/Debug/DIP_Solution02.exe similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/bin/Debug/DIP_Solution02.exe rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution02/bin/Debug/DIP_Solution02.exe diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/bin/Debug/DIP_Solution02.exe.config b/01_IntroductionSessions/Session07/Projects/DIP_Solution02/bin/Debug/DIP_Solution02.exe.config similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/bin/Debug/DIP_Solution02.exe.config rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution02/bin/Debug/DIP_Solution02.exe.config diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/bin/Debug/DIP_Solution02.pdb b/01_IntroductionSessions/Session07/Projects/DIP_Solution02/bin/Debug/DIP_Solution02.pdb similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/bin/Debug/DIP_Solution02.pdb rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution02/bin/Debug/DIP_Solution02.pdb diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution02/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution02/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/obj/Debug/DIP_Solution02.csproj.AssemblyReference.cache b/01_IntroductionSessions/Session07/Projects/DIP_Solution02/obj/Debug/DIP_Solution02.csproj.AssemblyReference.cache similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/obj/Debug/DIP_Solution02.csproj.AssemblyReference.cache rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution02/obj/Debug/DIP_Solution02.csproj.AssemblyReference.cache diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/obj/Debug/DIP_Solution02.csproj.CoreCompileInputs.cache b/01_IntroductionSessions/Session07/Projects/DIP_Solution02/obj/Debug/DIP_Solution02.csproj.CoreCompileInputs.cache similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/obj/Debug/DIP_Solution02.csproj.CoreCompileInputs.cache rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution02/obj/Debug/DIP_Solution02.csproj.CoreCompileInputs.cache diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/obj/Debug/DIP_Solution02.csproj.FileListAbsolute.txt b/01_IntroductionSessions/Session07/Projects/DIP_Solution02/obj/Debug/DIP_Solution02.csproj.FileListAbsolute.txt similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/obj/Debug/DIP_Solution02.csproj.FileListAbsolute.txt rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution02/obj/Debug/DIP_Solution02.csproj.FileListAbsolute.txt diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/obj/Debug/DIP_Solution02.exe b/01_IntroductionSessions/Session07/Projects/DIP_Solution02/obj/Debug/DIP_Solution02.exe similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/obj/Debug/DIP_Solution02.exe rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution02/obj/Debug/DIP_Solution02.exe diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/obj/Debug/DIP_Solution02.pdb b/01_IntroductionSessions/Session07/Projects/DIP_Solution02/obj/Debug/DIP_Solution02.pdb similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/obj/Debug/DIP_Solution02.pdb rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution02/obj/Debug/DIP_Solution02.pdb diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/01_IntroductionSessions/Session07/Projects/DIP_Solution02/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution02/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution02/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03.zip b/01_IntroductionSessions/Session07/Projects/DIP_Solution03.zip similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03.zip rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution03.zip diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/App.config b/01_IntroductionSessions/Session07/Projects/DIP_Solution03/App.config similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/App.config rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution03/App.config diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/DIP_Solution03.csproj b/01_IntroductionSessions/Session07/Projects/DIP_Solution03/DIP_Solution03.csproj similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/DIP_Solution03.csproj rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution03/DIP_Solution03.csproj diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/ExternalService/Service01.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution03/ExternalService/Service01.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/ExternalService/Service01.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution03/ExternalService/Service01.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/ExternalService/Service02.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution03/ExternalService/Service02.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/ExternalService/Service02.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution03/ExternalService/Service02.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/ExternalService/Service03.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution03/ExternalService/Service03.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/ExternalService/Service03.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution03/ExternalService/Service03.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/LifeCycle/A.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution03/LifeCycle/A.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/LifeCycle/A.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution03/LifeCycle/A.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/LifeCycle/B.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution03/LifeCycle/B.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/LifeCycle/B.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution03/LifeCycle/B.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/LifeCycle/C.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution03/LifeCycle/C.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/LifeCycle/C.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution03/LifeCycle/C.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/Program.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution03/Program.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/Program.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution03/Program.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/Properties/AssemblyInfo.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution03/Properties/AssemblyInfo.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/Properties/AssemblyInfo.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution03/Properties/AssemblyInfo.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/Service.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution03/Service.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/Service.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution03/Service.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/bin/Debug/DIP_Solution03.exe b/01_IntroductionSessions/Session07/Projects/DIP_Solution03/bin/Debug/DIP_Solution03.exe similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/bin/Debug/DIP_Solution03.exe rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution03/bin/Debug/DIP_Solution03.exe diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/bin/Debug/DIP_Solution03.exe.config b/01_IntroductionSessions/Session07/Projects/DIP_Solution03/bin/Debug/DIP_Solution03.exe.config similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/bin/Debug/DIP_Solution03.exe.config rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution03/bin/Debug/DIP_Solution03.exe.config diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/bin/Debug/DIP_Solution03.pdb b/01_IntroductionSessions/Session07/Projects/DIP_Solution03/bin/Debug/DIP_Solution03.pdb similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/bin/Debug/DIP_Solution03.pdb rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution03/bin/Debug/DIP_Solution03.pdb diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution03/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution03/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/obj/Debug/DIP_Solution03.csproj.AssemblyReference.cache b/01_IntroductionSessions/Session07/Projects/DIP_Solution03/obj/Debug/DIP_Solution03.csproj.AssemblyReference.cache similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/obj/Debug/DIP_Solution03.csproj.AssemblyReference.cache rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution03/obj/Debug/DIP_Solution03.csproj.AssemblyReference.cache diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/obj/Debug/DIP_Solution03.csproj.CoreCompileInputs.cache b/01_IntroductionSessions/Session07/Projects/DIP_Solution03/obj/Debug/DIP_Solution03.csproj.CoreCompileInputs.cache similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/obj/Debug/DIP_Solution03.csproj.CoreCompileInputs.cache rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution03/obj/Debug/DIP_Solution03.csproj.CoreCompileInputs.cache diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/obj/Debug/DIP_Solution03.csproj.FileListAbsolute.txt b/01_IntroductionSessions/Session07/Projects/DIP_Solution03/obj/Debug/DIP_Solution03.csproj.FileListAbsolute.txt similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/obj/Debug/DIP_Solution03.csproj.FileListAbsolute.txt rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution03/obj/Debug/DIP_Solution03.csproj.FileListAbsolute.txt diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/obj/Debug/DIP_Solution03.exe b/01_IntroductionSessions/Session07/Projects/DIP_Solution03/obj/Debug/DIP_Solution03.exe similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/obj/Debug/DIP_Solution03.exe rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution03/obj/Debug/DIP_Solution03.exe diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/obj/Debug/DIP_Solution03.pdb b/01_IntroductionSessions/Session07/Projects/DIP_Solution03/obj/Debug/DIP_Solution03.pdb similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/obj/Debug/DIP_Solution03.pdb rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution03/obj/Debug/DIP_Solution03.pdb diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/01_IntroductionSessions/Session07/Projects/DIP_Solution03/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution03/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution03/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/App.config b/01_IntroductionSessions/Session07/Projects/DIP_Solution04/App.config similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/App.config rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution04/App.config diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/DIP_Solution04.csproj b/01_IntroductionSessions/Session07/Projects/DIP_Solution04/DIP_Solution04.csproj similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/DIP_Solution04.csproj rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution04/DIP_Solution04.csproj diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/ExternalService/Service01.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution04/ExternalService/Service01.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/ExternalService/Service01.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution04/ExternalService/Service01.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/ExternalService/Service02.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution04/ExternalService/Service02.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/ExternalService/Service02.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution04/ExternalService/Service02.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/ExternalService/Service03.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution04/ExternalService/Service03.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/ExternalService/Service03.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution04/ExternalService/Service03.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/Framework/Base/BaseService.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution04/Framework/Base/BaseService.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/Framework/Base/BaseService.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution04/Framework/Base/BaseService.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/Framework/Interface/IService.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution04/Framework/Interface/IService.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/Framework/Interface/IService.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution04/Framework/Interface/IService.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/LifeCycle/A.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution04/LifeCycle/A.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/LifeCycle/A.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution04/LifeCycle/A.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/LifeCycle/B.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution04/LifeCycle/B.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/LifeCycle/B.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution04/LifeCycle/B.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/LifeCycle/C.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution04/LifeCycle/C.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/LifeCycle/C.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution04/LifeCycle/C.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/Program.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution04/Program.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/Program.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution04/Program.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/Properties/AssemblyInfo.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution04/Properties/AssemblyInfo.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/Properties/AssemblyInfo.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution04/Properties/AssemblyInfo.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/bin/Debug/DIP_Solution04.exe b/01_IntroductionSessions/Session07/Projects/DIP_Solution04/bin/Debug/DIP_Solution04.exe similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/bin/Debug/DIP_Solution04.exe rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution04/bin/Debug/DIP_Solution04.exe diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/bin/Debug/DIP_Solution04.exe.config b/01_IntroductionSessions/Session07/Projects/DIP_Solution04/bin/Debug/DIP_Solution04.exe.config similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/bin/Debug/DIP_Solution04.exe.config rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution04/bin/Debug/DIP_Solution04.exe.config diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/bin/Debug/DIP_Solution04.pdb b/01_IntroductionSessions/Session07/Projects/DIP_Solution04/bin/Debug/DIP_Solution04.pdb similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/bin/Debug/DIP_Solution04.pdb rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution04/bin/Debug/DIP_Solution04.pdb diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution04/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution04/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/obj/Debug/DIP_Solution04.csproj.AssemblyReference.cache b/01_IntroductionSessions/Session07/Projects/DIP_Solution04/obj/Debug/DIP_Solution04.csproj.AssemblyReference.cache similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/obj/Debug/DIP_Solution04.csproj.AssemblyReference.cache rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution04/obj/Debug/DIP_Solution04.csproj.AssemblyReference.cache diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/obj/Debug/DIP_Solution04.csproj.CoreCompileInputs.cache b/01_IntroductionSessions/Session07/Projects/DIP_Solution04/obj/Debug/DIP_Solution04.csproj.CoreCompileInputs.cache similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/obj/Debug/DIP_Solution04.csproj.CoreCompileInputs.cache rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution04/obj/Debug/DIP_Solution04.csproj.CoreCompileInputs.cache diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/obj/Debug/DIP_Solution04.csproj.FileListAbsolute.txt b/01_IntroductionSessions/Session07/Projects/DIP_Solution04/obj/Debug/DIP_Solution04.csproj.FileListAbsolute.txt similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/obj/Debug/DIP_Solution04.csproj.FileListAbsolute.txt rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution04/obj/Debug/DIP_Solution04.csproj.FileListAbsolute.txt diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/obj/Debug/DIP_Solution04.exe b/01_IntroductionSessions/Session07/Projects/DIP_Solution04/obj/Debug/DIP_Solution04.exe similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/obj/Debug/DIP_Solution04.exe rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution04/obj/Debug/DIP_Solution04.exe diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/obj/Debug/DIP_Solution04.pdb b/01_IntroductionSessions/Session07/Projects/DIP_Solution04/obj/Debug/DIP_Solution04.pdb similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/obj/Debug/DIP_Solution04.pdb rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution04/obj/Debug/DIP_Solution04.pdb diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/01_IntroductionSessions/Session07/Projects/DIP_Solution04/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution04/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution04/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/App.config b/01_IntroductionSessions/Session07/Projects/DIP_Solution05/App.config similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/App.config rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution05/App.config diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/DIP_Solution05.csproj b/01_IntroductionSessions/Session07/Projects/DIP_Solution05/DIP_Solution05.csproj similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/DIP_Solution05.csproj rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution05/DIP_Solution05.csproj diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/ExternalService/Service01.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution05/ExternalService/Service01.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/ExternalService/Service01.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution05/ExternalService/Service01.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/ExternalService/Service02.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution05/ExternalService/Service02.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/ExternalService/Service02.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution05/ExternalService/Service02.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/ExternalService/Service03.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution05/ExternalService/Service03.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/ExternalService/Service03.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution05/ExternalService/Service03.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/Framework/Base/BaseService.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution05/Framework/Base/BaseService.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/Framework/Base/BaseService.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution05/Framework/Base/BaseService.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/Framework/Interface/IService.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution05/Framework/Interface/IService.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/Framework/Interface/IService.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution05/Framework/Interface/IService.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/LifeCycle/A.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution05/LifeCycle/A.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/LifeCycle/A.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution05/LifeCycle/A.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/LifeCycle/B.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution05/LifeCycle/B.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/LifeCycle/B.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution05/LifeCycle/B.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/LifeCycle/C.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution05/LifeCycle/C.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/LifeCycle/C.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution05/LifeCycle/C.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/Program.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution05/Program.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/Program.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution05/Program.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/Properties/AssemblyInfo.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution05/Properties/AssemblyInfo.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/Properties/AssemblyInfo.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution05/Properties/AssemblyInfo.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/bin/Debug/DIP_Solution05.exe b/01_IntroductionSessions/Session07/Projects/DIP_Solution05/bin/Debug/DIP_Solution05.exe similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/bin/Debug/DIP_Solution05.exe rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution05/bin/Debug/DIP_Solution05.exe diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/bin/Debug/DIP_Solution05.exe.config b/01_IntroductionSessions/Session07/Projects/DIP_Solution05/bin/Debug/DIP_Solution05.exe.config similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/bin/Debug/DIP_Solution05.exe.config rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution05/bin/Debug/DIP_Solution05.exe.config diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/bin/Debug/DIP_Solution05.pdb b/01_IntroductionSessions/Session07/Projects/DIP_Solution05/bin/Debug/DIP_Solution05.pdb similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/bin/Debug/DIP_Solution05.pdb rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution05/bin/Debug/DIP_Solution05.pdb diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs b/01_IntroductionSessions/Session07/Projects/DIP_Solution05/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution05/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/obj/Debug/DIP_Solution05.csproj.AssemblyReference.cache b/01_IntroductionSessions/Session07/Projects/DIP_Solution05/obj/Debug/DIP_Solution05.csproj.AssemblyReference.cache similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/obj/Debug/DIP_Solution05.csproj.AssemblyReference.cache rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution05/obj/Debug/DIP_Solution05.csproj.AssemblyReference.cache diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/obj/Debug/DIP_Solution05.csproj.CoreCompileInputs.cache b/01_IntroductionSessions/Session07/Projects/DIP_Solution05/obj/Debug/DIP_Solution05.csproj.CoreCompileInputs.cache similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/obj/Debug/DIP_Solution05.csproj.CoreCompileInputs.cache rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution05/obj/Debug/DIP_Solution05.csproj.CoreCompileInputs.cache diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/obj/Debug/DIP_Solution05.csproj.FileListAbsolute.txt b/01_IntroductionSessions/Session07/Projects/DIP_Solution05/obj/Debug/DIP_Solution05.csproj.FileListAbsolute.txt similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/obj/Debug/DIP_Solution05.csproj.FileListAbsolute.txt rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution05/obj/Debug/DIP_Solution05.csproj.FileListAbsolute.txt diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/obj/Debug/DIP_Solution05.exe b/01_IntroductionSessions/Session07/Projects/DIP_Solution05/obj/Debug/DIP_Solution05.exe similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/obj/Debug/DIP_Solution05.exe rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution05/obj/Debug/DIP_Solution05.exe diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/obj/Debug/DIP_Solution05.pdb b/01_IntroductionSessions/Session07/Projects/DIP_Solution05/obj/Debug/DIP_Solution05.pdb similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/obj/Debug/DIP_Solution05.pdb rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution05/obj/Debug/DIP_Solution05.pdb diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/01_IntroductionSessions/Session07/Projects/DIP_Solution05/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/DIP_Solution05/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache rename to 01_IntroductionSessions/Session07/Projects/DIP_Solution05/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache diff --git a/01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/Session07.sln b/01_IntroductionSessions/Session07/Projects/Session07.sln similarity index 100% rename from 01_IntroductionSessions/DILastSession/ALI_Session07/Session07/Session07/Session07.sln rename to 01_IntroductionSessions/Session07/Projects/Session07.sln diff --git a/01_IntroductionSessions/DILastSession/DILastSession.md b/01_IntroductionSessions/Session07/Session07.md similarity index 100% rename from 01_IntroductionSessions/DILastSession/DILastSession.md rename to 01_IntroductionSessions/Session07/Session07.md diff --git a/02_ProjectOrientedSessions/Session00/ProjectStructure.md b/02_ProjectOrientedSessions/Session00/Project Structure.md similarity index 97% rename from 02_ProjectOrientedSessions/Session00/ProjectStructure.md rename to 02_ProjectOrientedSessions/Session00/Project Structure.md index bde5ff2..20aa49e 100644 --- a/02_ProjectOrientedSessions/Session00/ProjectStructure.md +++ b/02_ProjectOrientedSessions/Session00/Project Structure.md @@ -37,7 +37,6 @@ Clean Architecture consists of **four main layers**: } } ``` - --- @@ -213,6 +212,8 @@ This ensures the **business logic is central** and **not coupled** to frameworks - Domain Project - Packages: - AutoMapper + - Microsoft.AspNetCore.Authentication.JwtBearer + - System.IdentityModel.Tokens.Jwt - Microsoft.EntityFrameworkCore.Design - Microsoft.EntityFrameworkCore.SqlServer - Microsoft.EntityFrameworkCore.Tools @@ -273,6 +274,9 @@ This ensures the **business logic is central** and **not coupled** to frameworks - Domain Project - Packages: - Microsoft.EntityFrameworkCore.SqlServer + - Microsoft.EntityFrameworkCore.Design + - Microsoft.EntityFrameworkCore.Proxies + - Microsoft.EntityFrameworkCore.Tools --- ### **Additional Projects (Optional)** @@ -281,8 +285,3 @@ This ensures the **business logic is central** and **not coupled** to frameworks - 📂 `MyApp.Shared` – Shared utilities (cross-cutting concerns like constants, helpers). -# Frontend Project Structure (Will most likely change in future) - -```shell -npx create-react-app alibabaclone-frontend --use-npm --template typescript cd alibabaclone-frontend npm start -``` \ No newline at end of file diff --git a/02_ProjectOrientedSessions/Session01/Session 01 Document.md b/02_ProjectOrientedSessions/Session01/Session01 Additional Info.md similarity index 57% rename from 02_ProjectOrientedSessions/Session01/Session 01 Document.md rename to 02_ProjectOrientedSessions/Session01/Session01 Additional Info.md index eaa4707..361fba5 100644 --- a/02_ProjectOrientedSessions/Session01/Session 01 Document.md +++ b/02_ProjectOrientedSessions/Session01/Session01 Additional Info.md @@ -1,159 +1,3 @@ -## Branching -- [ ] Create the develop branch -- [ ] Create the feature/domain-entities branch based on develop - -## `IEntity.cs` -- [ ] Create the IEntity **interface** - -> Location: Domain Project > Framework > Interfaces -```C# -public interface IEntity -{ - public TKey Id { get; set; } -} -``` -## `Entity.cs` -- [ ] Create the Entity **class** - -> Location: Domain Project > Framework > Base -```C# -public class Entity : IEntity -{ - public TKey Id{ get; set; } -} -``` - -### Why do we need IEntity and Entity? (Chat GPT): -> this approach is **valid and commonly used** in **Domain-Driven Design (DDD)** and **Clean Architecture**. It provides **consistency**, **reusability**, and **common functionality** across all entities. -## Create Entities -> Location: Domain Project > Aggregates > (RelatedFolder) - -### They all (with the exception of join tables) should inherit Entity, and you should specify the datatype of the Id -### Use the latest version of ERD to specify the properties -### You can use this project as a reference: -https://github.com/MehrdadShirvani/AlibabaClone-Backend/tree/develop/AlibabaClone.Domain/Aggregates -### Link to the ERD: -https://github.com/TheOrderOfPhoenix/ASP.NET/tree/main/02_ProjectOrientedSessions/docs - -### One Example: - -```C# -public class Account : Entity -{ - public required string PhoneNumber { get; set; } - public required string Password { set; get; } - public string? Email { get; set; } - public long? PersonId { get; set; } -} -``` - -## Add Navigation Properties -### What is a navigation property? (the following pieces of code are just there for educational purposes) -#### **🔹 Navigation Properties in Entity Framework Core: Everything You Need to Know** - ---- - -#### **📌 What Are Navigation Properties?** - -Navigation properties in Entity Framework Core (EF Core) **represent relationships between entities**. They allow you to **navigate** (follow) the relationships between different tables using **C# objects** instead of writing SQL joins manually. - -For example, if you have a **Ticket** entity related to a **Buyer**, the navigation property allows you to access the buyer from a ticket without writing a separate SQL query. - ---- - -#### **🔹 Types of Navigation Properties** - -Navigation properties can be of two types: - -| Relationship Type | Description | -| ---------------------------------- | ----------------------------------------------------------------------------- | -| **Reference Navigation Property** | Represents a **single entity** related to another (one-to-one or many-to-one) | -| **Collection Navigation Property** | Represents **a list of related entities** (one-to-many or many-to-many) | - ---- - -#### **🔹 How to Define Navigation Properties?** - -##### **🔹 One-to-Many Example** - -A **Buyer** can have **multiple Tickets**, but each **Ticket** belongs to one **Buyer**. - -```csharp -public class Buyer -{ - public int Id { get; set; } - public string Name { get; set; } - - // Navigation Property (One Buyer → Many Tickets) - public virtual ICollection Tickets { get; set; } = new List(); -} - -public class Ticket -{ - public int Id { get; set; } - public int BuyerId { get; set; } - - // Navigation Property (Many Tickets → One Buyer) - public virtual Buyer Buyer { get; set; } -} -``` - -##### **🔹 One-to-One Example** - -A **Ticket** can have only **one Transaction**, and a **Transaction** belongs to exactly **one Ticket**. - -```csharp -public class Ticket -{ - public int Id { get; set; } - - // One-to-One Navigation Property - public virtual Transaction Transaction { get; set; } -} - -public class Transaction -{ - public int Id { get; set; } - public int TicketId { get; set; } - - // One-to-One Navigation Property - public virtual Ticket Ticket { get; set; } -} -``` - -##### **🔹 Many-to-Many Example** - -A **Buyer** can buy **many Tickets**, and each **Ticket** can be bought by **many Buyers** (if resale is allowed). - -```csharp -public class Buyer -{ - public int Id { get; set; } - public string Name { get; set; } - - // Many-to-Many Navigation Property - public virtual ICollection Tickets { get; set; } = new List(); -} - -public class Ticket -{ - public int Id { get; set; } - - // Many-to-Many Navigation Property - public virtual ICollection Buyers { get; set; } = new List(); -} -``` - -### Add the needed navigation properties inside entities -- [ ] Figure out what navigation properties are needed based on the ERD, and use this project as a reference: -https://github.com/MehrdadShirvani/AlibabaClone-Backend/tree/develop/AlibabaClone.Domain/Aggregates -- [ ] Don't forget to mark all the navigation properties as `virtual` - -## Add a NuGet package to Infrastructure Project -- [ ] Add `Microsoft.EntityFrameworkCore.Proxies` to Infrastructure Project -## Create a pull request and merge the current branch with develop - -# Side Notes ## **Choosing the right datatype for integer values, specially IDs (Chat GPT):** ### **1️⃣ Integer Data Types (int, short, long) in C# and SQL Server** diff --git a/02_ProjectOrientedSessions/Session01/Session01 Backend.md b/02_ProjectOrientedSessions/Session01/Session01 Backend.md new file mode 100644 index 0000000..02289a7 --- /dev/null +++ b/02_ProjectOrientedSessions/Session01/Session01 Backend.md @@ -0,0 +1,156 @@ +# Branching +- [ ] Create the develop branch +- [ ] Create the feature/domain-entities branch based on develop + +# `IEntity.cs` +- [ ] Create the IEntity **interface** + +> Location: Domain Project > Framework > Interfaces +```C# +public interface IEntity +{ + public TKey Id { get; set; } +} +``` +# `Entity.cs` +- [ ] Create the Entity **class** + +> Location: Domain Project > Framework > Base +```C# +public class Entity : IEntity +{ + public TKey Id{ get; set; } +} +``` + +### Why do we need IEntity and Entity? (Chat GPT): +> this approach is **valid and commonly used** in **Domain-Driven Design (DDD)** and **Clean Architecture**. It provides **consistency**, **reusability**, and **common functionality** across all entities. +# Create Entities +> Location: Domain Project > Aggregates > (RelatedFolder) + +### They all (with the exception of join tables) should inherit Entity, and you should specify the datatype of the Id +### Use the latest version of ERD to specify the properties +### You can use this project as a reference: +https://github.com/MehrdadShirvani/AlibabaClone-Backend/tree/develop/AlibabaClone.Domain/Aggregates +### Link to the ERD: +https://github.com/TheOrderOfPhoenix/ASP.NET/tree/main/02_ProjectOrientedSessions/docs + +### One Example: + +```C# +public class Account : Entity +{ + public required string PhoneNumber { get; set; } + public required string Password { set; get; } + public string? Email { get; set; } + public long? PersonId { get; set; } +} +``` + +# Add Navigation Properties +### What is a navigation property? (the following pieces of code are just there for educational purposes) +#### **🔹 Navigation Properties in Entity Framework Core: Everything You Need to Know** + +--- + +#### **📌 What Are Navigation Properties?** + +Navigation properties in Entity Framework Core (EF Core) **represent relationships between entities**. They allow you to **navigate** (follow) the relationships between different tables using **C# objects** instead of writing SQL joins manually. + +For example, if you have a **Ticket** entity related to a **Buyer**, the navigation property allows you to access the buyer from a ticket without writing a separate SQL query. + +--- + +#### **🔹 Types of Navigation Properties** + +Navigation properties can be of two types: + +| Relationship Type | Description | +| ---------------------------------- | ----------------------------------------------------------------------------- | +| **Reference Navigation Property** | Represents a **single entity** related to another (one-to-one or many-to-one) | +| **Collection Navigation Property** | Represents **a list of related entities** (one-to-many or many-to-many) | + +--- + +#### **🔹 How to Define Navigation Properties?** + +##### **🔹 One-to-Many Example** + +A **Buyer** can have **multiple Tickets**, but each **Ticket** belongs to one **Buyer**. + +```csharp +public class Buyer +{ + public int Id { get; set; } + public string Name { get; set; } + + // Navigation Property (One Buyer → Many Tickets) + public virtual ICollection Tickets { get; set; } = new List(); +} + +public class Ticket +{ + public int Id { get; set; } + public int BuyerId { get; set; } + + // Navigation Property (Many Tickets → One Buyer) + public virtual Buyer Buyer { get; set; } +} +``` + +##### **🔹 One-to-One Example** + +A **Ticket** can have only **one Transaction**, and a **Transaction** belongs to exactly **one Ticket**. + +```csharp +public class Ticket +{ + public int Id { get; set; } + + // One-to-One Navigation Property + public virtual Transaction Transaction { get; set; } +} + +public class Transaction +{ + public int Id { get; set; } + public int TicketId { get; set; } + + // One-to-One Navigation Property + public virtual Ticket Ticket { get; set; } +} +``` + +##### **🔹 Many-to-Many Example** + +A **Buyer** can buy **many Tickets**, and each **Ticket** can be bought by **many Buyers** (if resale is allowed). + +```csharp +public class Buyer +{ + public int Id { get; set; } + public string Name { get; set; } + + // Many-to-Many Navigation Property + public virtual ICollection Tickets { get; set; } = new List(); +} + +public class Ticket +{ + public int Id { get; set; } + + // Many-to-Many Navigation Property + public virtual ICollection Buyers { get; set; } = new List(); +} +``` + +### Add the needed navigation properties inside entities +- [ ] Figure out what navigation properties are needed based on the ERD, and use this project as a reference: +https://github.com/MehrdadShirvani/AlibabaClone-Backend/tree/develop/AlibabaClone.Domain/Aggregates +- [ ] Don't forget to mark all the navigation properties as `virtual` + +# Add Packages to Infrastructure Project +- [ ] Add `Microsoft.EntityFrameworkCore.Proxies` to Infrastructure Project +# Merge +- [ ] Create a PR and merge the current branch with develop + diff --git a/02_ProjectOrientedSessions/Session01/Session 01 Preparation.md b/02_ProjectOrientedSessions/Session01/Session01 Preparation.md similarity index 95% rename from 02_ProjectOrientedSessions/Session01/Session 01 Preparation.md rename to 02_ProjectOrientedSessions/Session01/Session01 Preparation.md index 642b965..8cdee6b 100644 --- a/02_ProjectOrientedSessions/Session01/Session 01 Preparation.md +++ b/02_ProjectOrientedSessions/Session01/Session01 Preparation.md @@ -14,7 +14,7 @@ Meditates between the domain and data mapping layers, acting like an **in-memory - Decouples your application from persistence frameworks - Promotes testability > Repository should not have methods like Update and Save -## A little note on Unit of Work +# Unit of Work Keeps track of changes and coordinates the writings and savings ## Implementation: https://youtu.be/rtXpYpZdOzM?t=703 diff --git a/02_ProjectOrientedSessions/Session02/Session02 Additional Info.md b/02_ProjectOrientedSessions/Session02/Session02 Additional Info.md new file mode 100644 index 0000000..518be24 --- /dev/null +++ b/02_ProjectOrientedSessions/Session02/Session02 Additional Info.md @@ -0,0 +1,62 @@ +## Cardinality +### Cardinality in Database Relationships + +Cardinality in databases refers to the number of relationships between records in two tables. It defines how many instances of one entity can be associated with instances of another entity. Cardinality is a crucial concept in database design because it ensures data integrity and optimizes query performance. + +--- + +### **Types of Cardinality** + +1. **One-to-One (1:1)** + + - Each record in Table A is related to exactly one record in Table B, and vice versa. + + - Example: A _person_ has one _passport_, and a _passport_ belongs to only one _person_. + + - Implementation: Typically enforced with a **unique foreign key**. + +2. **One-to-Many (1:M)** + + - A record in Table A can have multiple related records in Table B, but a record in Table B is linked to only one record in Table A. + + - Example: A _customer_ can place multiple _orders_, but each _order_ is placed by only one _customer_. + + - Implementation: A **foreign key** in Table B referring to the primary key in Table A. + +3. **Many-to-Many (M:M)** + + - Multiple records in Table A can relate to multiple records in Table B. + + - Example: _Students_ enroll in multiple _courses_, and each _course_ has multiple _students_. + + - Implementation: A **junction (bridge) table** with foreign keys referencing both tables. + + +--- + +### **Cardinality Constraints** + +Cardinality can be further specified using **minimum and maximum** constraints: + +- **(0,1): Optional One** → A record may or may not be related. + +- **(1,1): Mandatory One** → A record must always be related to exactly one record. + +- **(0,N): Optional Many** → A record may have many related records or none. + +- **(1,N): Mandatory Many** → A record must have at least one related record. + + +--- + +### **Practical Example** + +Consider a database with `Students` and `Courses`: + +- **One-to-Many:** A _teacher_ teaches multiple _courses_, but each _course_ has only one _teacher_. + +- **Many-to-Many:** _Students_ enroll in multiple _courses_, and _courses_ have multiple _students_. This is implemented using a **StudentCourses** junction table. + + +Would you like a more detailed example or SQL implementation? 🚀 + diff --git a/02_ProjectOrientedSessions/Session02/Session 02 Document.md b/02_ProjectOrientedSessions/Session02/Session02 Backend.md similarity index 84% rename from 02_ProjectOrientedSessions/Session02/Session 02 Document.md rename to 02_ProjectOrientedSessions/Session02/Session02 Backend.md index ae06d51..a6e7bf5 100644 --- a/02_ProjectOrientedSessions/Session02/Session 02 Document.md +++ b/02_ProjectOrientedSessions/Session02/Session02 Backend.md @@ -448,7 +448,7 @@ app.Run(); ``` Add-Migration InitialCreate ``` -- [ ] In case of scuccues: +- [ ] In case of succus: ``` Update-Database ``` @@ -456,67 +456,3 @@ Update-Database - [ ] Create a PR and merge the current branch with develop --- -# Additional Notes -## Cardinality -### Cardinality in Database Relationships - -Cardinality in databases refers to the number of relationships between records in two tables. It defines how many instances of one entity can be associated with instances of another entity. Cardinality is a crucial concept in database design because it ensures data integrity and optimizes query performance. - ---- - -### **Types of Cardinality** - -1. **One-to-One (1:1)** - - - Each record in Table A is related to exactly one record in Table B, and vice versa. - - - Example: A _person_ has one _passport_, and a _passport_ belongs to only one _person_. - - - Implementation: Typically enforced with a **unique foreign key**. - -2. **One-to-Many (1:M)** - - - A record in Table A can have multiple related records in Table B, but a record in Table B is linked to only one record in Table A. - - - Example: A _customer_ can place multiple _orders_, but each _order_ is placed by only one _customer_. - - - Implementation: A **foreign key** in Table B referring to the primary key in Table A. - -3. **Many-to-Many (M:M)** - - - Multiple records in Table A can relate to multiple records in Table B. - - - Example: _Students_ enroll in multiple _courses_, and each _course_ has multiple _students_. - - - Implementation: A **junction (bridge) table** with foreign keys referencing both tables. - - ---- - -### **Cardinality Constraints** - -Cardinality can be further specified using **minimum and maximum** constraints: - -- **(0,1): Optional One** → A record may or may not be related. - -- **(1,1): Mandatory One** → A record must always be related to exactly one record. - -- **(0,N): Optional Many** → A record may have many related records or none. - -- **(1,N): Mandatory Many** → A record must have at least one related record. - - ---- - -### **Practical Example** - -Consider a database with `Students` and `Courses`: - -- **One-to-Many:** A _teacher_ teaches multiple _courses_, but each _course_ has only one _teacher_. - -- **Many-to-Many:** _Students_ enroll in multiple _courses_, and _courses_ have multiple _students_. This is implemented using a **StudentCourses** junction table. - - -Would you like a more detailed example or SQL implementation? 🚀 - -## \ No newline at end of file diff --git a/02_ProjectOrientedSessions/Session02-Fixes/Join Table.md b/02_ProjectOrientedSessions/Session02/Session02 Fixes.md similarity index 98% rename from 02_ProjectOrientedSessions/Session02-Fixes/Join Table.md rename to 02_ProjectOrientedSessions/Session02/Session02 Fixes.md index 1867d1d..2b601ee 100644 --- a/02_ProjectOrientedSessions/Session02-Fixes/Join Table.md +++ b/02_ProjectOrientedSessions/Session02/Session02 Fixes.md @@ -1,5 +1,5 @@ -Great question! The **accountRole** table is a **many-to-many join table** with only two foreign keys (`AccountId`, `RoleId`) and no extra fields. Since it's just linking **Accounts** and **Roles**, you might not need a repository for it. Let's explore the best approach. + The **accountRole** table is a **many-to-many join table** with only two foreign keys (`AccountId`, `RoleId`) and no extra fields. Since it's just linking **Accounts** and **Roles**, you might not need a repository for it. Let's explore the best approach. --- diff --git a/02_ProjectOrientedSessions/Session03/Session 03 Document.md b/02_ProjectOrientedSessions/Session03/Session03 Backend.md similarity index 51% rename from 02_ProjectOrientedSessions/Session03/Session 03 Document.md rename to 02_ProjectOrientedSessions/Session03/Session03 Backend.md index 9590e70..511e8be 100644 --- a/02_ProjectOrientedSessions/Session03/Session 03 Document.md +++ b/02_ProjectOrientedSessions/Session03/Session03 Backend.md @@ -1,136 +1,3 @@ -# Introduction to Repository Pattern (Chat GPT): -The **Repository Pattern** in ASP.NET Core is a design pattern used to separate business logic from data access logic by providing an abstraction layer over database operations. This pattern improves maintainability, testability, and flexibility in applications by encapsulating database operations in dedicated repository classes. - ---- -## **Why Use the Repository Pattern?** - -### **Pros:** - -1. **Abstraction from ORM (Entity Framework Core)** - - Prevents direct dependency on EF Core, making it easier to swap out the data access layer in the future. - -2. **Better Code Organization** - - Separates concerns by keeping data logic in repositories and business logic in services/controllers. - -3. **Improved Testability** - - Makes it easier to mock repositories in unit tests. - -4. **Encapsulation of Queries** - - Common queries can be abstracted, reducing repetition. - -5. **Centralized Data Access Logic** - - Ensures a single location for handling CRUD operations. - - ---- - -## **Comparison: Repository Pattern vs. Direct DbSet Operations** - -| Feature | Using Repository Pattern | Using DbSet Directly in Controllers | -| -------------------------- | -------------------------------------- | -------------------------------------- | -| **Separation of Concerns** | ✅ Maintains separation | ❌ Business and data access logic mixed | -| **Testability** | ✅ Easy to mock and test | ❌ Harder to mock DbContext | -| **Code Reusability** | ✅ Common operations are encapsulated | ❌ Repetitive DbSet calls | -| **Flexibility** | ✅ Can switch database providers easily | ❌ Tightly coupled to EF Core | - ---- - -## **Implementation of the Repository Pattern** - -We will create: - -1. **IRepository** (Generic repository interface) - -2. **Repository** (Generic repository implementation) - -3. **Entity-specific repositories** (e.g., `ICustomerRepository` and `CustomerRepository`) - - -# Introduction to Unit of Work Pattern (Chat GPT): - -## **What is the Unit of Work Pattern?** - -The **Unit of Work (UoW)** pattern is a **centralized mechanism** to manage **database transactions** and ensure that multiple repository operations are treated as a single unit of execution. It acts as a wrapper around multiple repositories to **coordinate their changes and commit them in one go**. - ---- - -## **Advantages of Unit of Work** - -### **1. Single Transaction for Multiple Operations** - -- If you're performing **multiple database operations** across different repositories, **Unit of Work ensures atomicity**. -- If one operation fails, everything is **rolled back** (when using explicit transactions). - -### **2. Better Performance** - -- **Without UoW:** Every repository would call `SaveChangesAsync()` separately, causing multiple round trips to the database. -- **With UoW:** All changes are saved **at once**, reducing the number of database calls. -### **3. Maintains Consistency** -- When multiple repositories modify related entities, **UoW ensures that all changes are either committed or discarded together**. -### **4. Improves Testability** -- Unit of Work allows you to **mock database changes** and write unit tests efficiently without worrying about inconsistent data states. -### **5. Prevents Partial Updates** -- If multiple repositories handle different entities in the same operation, calling `SaveChangesAsync()` in individual repositories could lead to **partial updates** if one operation succeeds and another fails. - ---- - -## **Why Should `SaveChanges()` NOT Be in the Repository?** - -### **1. Each Repository Should Not Control Transactions** - -If each repository calls `SaveChangesAsync()`, **you lose control over transactions**. - -#### **Example Problem (Without UoW)** - -Imagine you have two repositories: `CustomerRepository` and `OrderRepository`. -If you try to **add a customer** and **add an order** separately, each calling `SaveChangesAsync()`: - -```csharp -var customer = new Customer { Name = "John Doe" }; -await _customerRepository.AddAsync(customer); -await _customerRepository.SaveChangesAsync(); // ❌ First database call - -var order = new Order { CustomerId = customer.Id, TotalAmount = 100 }; -await _orderRepository.AddAsync(order); -await _orderRepository.SaveChangesAsync(); // ❌ Second database call -``` - -**What happens if the second `SaveChangesAsync()` fails?** - -- The customer has already been saved, but the order is missing. -- **Your database is left in an inconsistent state!** - -### **2. Database Round Trips (Performance Issue)** - -If each repository calls `SaveChangesAsync()`, you end up with **multiple database calls** instead of batching them into a single transaction. - -```csharp -await _customerRepository.SaveChangesAsync(); // ❌ DB call -await _orderRepository.SaveChangesAsync(); // ❌ Another DB call -``` - -Using **Unit of Work**, all changes can be saved in one go: - -```csharp -await _unitOfWork.SaveChangesAsync(); // ✅ One database call -``` - -This **reduces network latency** and improves **database performance**. - -### **3. Promotes Separation of Concerns** - -- **Repositories should focus on CRUD operations** (data retrieval and manipulation). -- **Unit of Work should manage transactions**. -- This makes the code **cleaner and easier to maintain**. ---- - -## **Key Takeaways** - -✔ **Unit of Work ensures all database operations are part of a single transaction**. -✔ **Repositories should NOT call `SaveChangesAsync()` to avoid multiple transactions**. -✔ **EF Core tracks changes, so calling `SaveChangesAsync()` once is enough**. -✔ **Using UoW improves performance, consistency, and maintainability**. ---- # 1. Implementing Repository Pattern ## Branching diff --git a/02_ProjectOrientedSessions/Session03/Session03 Preparation.md b/02_ProjectOrientedSessions/Session03/Session03 Preparation.md new file mode 100644 index 0000000..bbc0838 --- /dev/null +++ b/02_ProjectOrientedSessions/Session03/Session03 Preparation.md @@ -0,0 +1,131 @@ +# Introduction to Repository Pattern (Chat GPT): +The **Repository Pattern** in ASP.NET Core is a design pattern used to separate business logic from data access logic by providing an abstraction layer over database operations. This pattern improves maintainability, testability, and flexibility in applications by encapsulating database operations in dedicated repository classes. + +--- +## **Why Use the Repository Pattern?** + +### **Pros:** + +1. **Abstraction from ORM (Entity Framework Core)** + - Prevents direct dependency on EF Core, making it easier to swap out the data access layer in the future. + +2. **Better Code Organization** + - Separates concerns by keeping data logic in repositories and business logic in services/controllers. + +3. **Improved Testability** + - Makes it easier to mock repositories in unit tests. + +4. **Encapsulation of Queries** + - Common queries can be abstracted, reducing repetition. + +5. **Centralized Data Access Logic** + - Ensures a single location for handling CRUD operations. + + +--- + +## **Comparison: Repository Pattern vs. Direct DbSet Operations** + +| Feature | Using Repository Pattern | Using DbSet Directly in Controllers | +| -------------------------- | -------------------------------------- | -------------------------------------- | +| **Separation of Concerns** | ✅ Maintains separation | ❌ Business and data access logic mixed | +| **Testability** | ✅ Easy to mock and test | ❌ Harder to mock DbContext | +| **Code Reusability** | ✅ Common operations are encapsulated | ❌ Repetitive DbSet calls | +| **Flexibility** | ✅ Can switch database providers easily | ❌ Tightly coupled to EF Core | + +--- + +## **Implementation of the Repository Pattern** + +We will create: + +1. **IRepository** (Generic repository interface) +2. **Repository** (Generic repository implementation) +3. **Entity-specific repositories** (e.g., `ICustomerRepository` and `CustomerRepository`) + + +# Introduction to Unit of Work Pattern (Chat GPT): + +## **What is the Unit of Work Pattern?** + +The **Unit of Work (UoW)** pattern is a **centralized mechanism** to manage **database transactions** and ensure that multiple repository operations are treated as a single unit of execution. It acts as a wrapper around multiple repositories to **coordinate their changes and commit them in one go**. + +--- + +## **Advantages of Unit of Work** + +### **1. Single Transaction for Multiple Operations** + +- If you're performing **multiple database operations** across different repositories, **Unit of Work ensures atomicity**. +- If one operation fails, everything is **rolled back** (when using explicit transactions). + +### **2. Better Performance** + +- **Without UoW:** Every repository would call `SaveChangesAsync()` separately, causing multiple round trips to the database. +- **With UoW:** All changes are saved **at once**, reducing the number of database calls. +### **3. Maintains Consistency** +- When multiple repositories modify related entities, **UoW ensures that all changes are either committed or discarded together**. +### **4. Improves Testability** +- Unit of Work allows you to **mock database changes** and write unit tests efficiently without worrying about inconsistent data states. +### **5. Prevents Partial Updates** +- If multiple repositories handle different entities in the same operation, calling `SaveChangesAsync()` in individual repositories could lead to **partial updates** if one operation succeeds and another fails. + +--- + +## **Why Should `SaveChanges()` NOT Be in the Repository?** + +### **1. Each Repository Should Not Control Transactions** + +If each repository calls `SaveChangesAsync()`, **you lose control over transactions**. + +#### **Example Problem (Without UoW)** + +Imagine you have two repositories: `CustomerRepository` and `OrderRepository`. +If you try to **add a customer** and **add an order** separately, each calling `SaveChangesAsync()`: + +```csharp +var customer = new Customer { Name = "John Doe" }; +await _customerRepository.AddAsync(customer); +await _customerRepository.SaveChangesAsync(); // ❌ First database call + +var order = new Order { CustomerId = customer.Id, TotalAmount = 100 }; +await _orderRepository.AddAsync(order); +await _orderRepository.SaveChangesAsync(); // ❌ Second database call +``` + +**What happens if the second `SaveChangesAsync()` fails?** + +- The customer has already been saved, but the order is missing. +- **Your database is left in an inconsistent state!** + +### **2. Database Round Trips (Performance Issue)** + +If each repository calls `SaveChangesAsync()`, you end up with **multiple database calls** instead of batching them into a single transaction. + +```csharp +await _customerRepository.SaveChangesAsync(); // ❌ DB call +await _orderRepository.SaveChangesAsync(); // ❌ Another DB call +``` + +Using **Unit of Work**, all changes can be saved in one go: + +```csharp +await _unitOfWork.SaveChangesAsync(); // ✅ One database call +``` + +This **reduces network latency** and improves **database performance**. + +### **3. Promotes Separation of Concerns** + +- **Repositories should focus on CRUD operations** (data retrieval and manipulation). +- **Unit of Work should manage transactions**. +- This makes the code **cleaner and easier to maintain**. +--- + +## **Key Takeaways** + +✔ **Unit of Work ensures all database operations are part of a single transaction**. +✔ **Repositories should NOT call `SaveChangesAsync()` to avoid multiple transactions**. +✔ **EF Core tracks changes, so calling `SaveChangesAsync()` once is enough**. +✔ **Using UoW improves performance, consistency, and maintainability**. +-- \ No newline at end of file diff --git a/02_ProjectOrientedSessions/Session04/Session04 Additional Info.md b/02_ProjectOrientedSessions/Session04/Session04 Additional Info.md new file mode 100644 index 0000000..651c561 --- /dev/null +++ b/02_ProjectOrientedSessions/Session04/Session04 Additional Info.md @@ -0,0 +1,320 @@ +### 1. **Should I have an `IEntityService` and then `EntityService` for each of my entities?** + +Not necessarily **for _every_** entity — only if it **makes sense**. + +- The Application Layer should expose **use cases** — not just CRUD logic for each entity. + +- If an entity has business logic or interactions that need orchestration (e.g., validations, aggregations, calling repositories, etc.), then **yes**, create a service. + +- Otherwise, for basic operations, **directly using a repository (via a unit of work or interface)** from the use case handler might be fine. +### 2. **Is it OK to have services not related to a specific entity?** + +Absolutely, **yes**. In fact, that’s expected in a Clean Architecture setup. + +Examples: + +- A `ReportGenerationService` that combines bookings, customers, and payments. + +- A `TokenService` for authentication tokens. + +- A `CurrencyConversionService` that hits an external API. + +- A `NotificationService` that sends emails or SMS. + + +👉 As long as these services **live in the Application Layer** and follow **dependency inversion** (i.e., they depend only on interfaces, not implementations), you’re doing great. + +### 3. **Is it necessary to have an interface for each service?** + + + +### 🔹 **What’s the Difference Between Services and Repositories?** + +| Aspect | **Service** | **Repository** | +| ------------------ | ---------------------------------------------------------------------- | --------------------------------------------------------------- | +| **Layer** | Application Layer | Domain Layer (interface), Infrastructure Layer (implementation) | +| **Responsibility** | **Orchestrates business logic** / use cases | **Data access abstraction** | +| **Focus** | Coordinates multiple domain/repo operations, validation, business flow | Fetching/storing data for a specific entity | +| **Example** | `PlaceOrderService`, `ReportService` | `ICustomerRepository`, `IOrderRepository` | + +### What does `init` mean? + +`init` is an **access modifier for properties** that allows you to **set a property only during object initialization**, **but not after**. + + +## Should I use `class` or `record` for DTOs in Clean Architecture? + +### 🔵 Short answer: + +> **Use `record` for DTOs when possible** — it's clean, immutable by default, and semantically perfect for data transfer. + +--- + +### 🔍 Why `record` is a great fit for DTOs + +| Feature | `record` | `class` | +| ----------------------- | ----------------- | ---------------------------- | +| Immutable by default | ✅ (with `init`) | ❌ (need manual setup) | +| Value-based equality | ✅ | ❌ (ref-based by default) | +| Concise syntax | ✅ | ❌ (more boilerplate) | +| Use for data containers | ✅ (perfect fit) | ✅ (but more verbose) | +| Custom behavior/logic | ❌ (less suitable) | ✅ (better for rich behavior) | +### But when should you prefer `class`? + +Use `class` if your DTO or model: + +- Needs to be **mutable** after creation + +- Has to **interact with legacy APIs/libraries** + +- Needs **inheritance or polymorphism** (not well supported in `record`) + +- Has **rich behavior** (logic, methods, validation, etc.) + + +> For example, in the Domain Layer (Entities, ValueObjects), you'll usually stick to **`class`** — because that's where behavior lives. + +## RESTful APIs: +https://aws.amazon.com/what-is/restful-api/#:~:text=RESTful%20API%20is%20an%20interface,applications%20to%20perform%20various%20tasks. + +## What Conditions Make an API RESTful? + +### Key Principles of REST: + +1. **Statelessness**: + + - Each API call must contain all the information the server needs to fulfill the request (no session state). Each request is independent. + +2. **Resource Identification**: + + - Resources (e.g., customers, orders) should be identified using URIs. Use nouns in URIs, not verbs. + +3. **HTTP Methods**: + + - Use standard HTTP methods to represent actions: + + - **GET**: Retrieve a resource. + + - **POST**: Create a new resource. + + - **PUT**: Update a resource entirely. + + - **PATCH**: Update a resource partially. + + - **DELETE**: Remove a resource. + +4. **Use of Standard Status Codes**: + + - Return appropriate HTTP status codes (e.g., `200 OK`, `201 Created`, `404 Not Found`, `500 Internal Server Error`). + +5. **HATEOAS**: + + - (Hypermedia as the Engine of Application State) - Provide links to related resources within the responses. + + +### Multiple GET Methods in One Controller: + +- **Yes, you can have multiple GET methods in one controller**. The key is to differentiate them based on routes and parameters. + +- For example: + + +```c# +[ApiController] +[Route("api/[controller]")] +public class CustomerController : ControllerBase { + + [HttpGet("{id}")] + public IActionResult GetCustomerById(int id) { /*...*/ } + + [HttpGet] + public IActionResult GetAllCustomers() { /*...*/ } + + [HttpGet("{id}/orders")] + public IActionResult GetCustomerOrders(int id) { /*...*/ } +} +``` + + +- **Routing**: ASP.NET Core uses route templates to differentiate these actions. The combination of route parameters, query strings, and action names can help separate the GET requests. + + +## List-like stuff in `C#` +Absolutely, let’s go over the main “list-like” data types in C#. They all serve similar purposes—holding multiple items—but differ in functionality, performance, and use cases. Here’s a detailed breakdown: + +🔷 1. `IEnumerable` + +- Namespace: System.Collections.Generic + +- Most basic "list-like" abstraction. + +- Read-only (forward-only iteration). + +- You can use foreach on it. + +- Doesn’t support indexing (no .Count, no [i]). + +- Often used as the return type to expose a stream of data without giving full collection control. + + +Example: + +```csharp +IEnumerable numbers = GetNumbers(); // Lazy-loaded maybe +foreach (var num in numbers) + Console.WriteLine(num); +``` + +💡 Ideal when: + +- You want to return a sequence without exposing modification. + +- You’re using LINQ chains. + +- You’re returning data from a database query. + + +--- + +🔷 2. ICollection + +- Extends IEnumerable. + +- Adds Count and Add/Remove/Clear methods. + +- Still abstract—List and HashSet implement it. + + +💡 Useful when: + +- You want to expose a collection that can be modified (e.g. Add or Remove). + +- You care about the Count. + + +--- + +🔷 3. IList + +- Extends ICollection and IEnumerable. + +- Adds index access: list[0] etc. + +- Think of it like a mutable array with dynamic size. + + +💡 Use when: + +- You want ordered collection with indexing. + +- You need to insert, remove, or replace items at specific positions. + + +--- + +🔷 4. List + +- A concrete class (not interface). + +- Implements IList, ICollection, IEnumerable. + +- Backed by an array (auto-resizes). + +- Fast read and write. + +- Supports Add, Remove, Insert, IndexOf, etc. + + +Example: + +```csharp +var list = new List(); +list.Add("One"); +list.Add("Two"); +var second = list[1]; // "Two" +``` + +💡 Go-to general purpose collection. + +--- + +🔷 5. IReadOnlyCollection & IReadOnlyList + +- IReadOnlyCollection: Just Count and IEnumerable. + +- IReadOnlyList: Adds indexing without modification. + +- Used to expose lists safely (read-only). + + +💡 Used when: + +- You want to return a list, but prevent any changes. + + +--- + +🔷 6. Array (T[]) + +- Fixed-size. + +- Fastest for indexing. + +- Cannot change size. + +- Implements IList (via Array). + + +Example: + +```csharp +int[] numbers = new int[5]; +numbers[0] = 42; +``` + +💡 Great for performance-sensitive or fixed-size data. + +--- + +🔷 7. ObservableCollection + +- For WPF/Blazor/WinForms data-binding. + +- Notifies UI when items are added/removed. + +- Implements IList. + + +💡 Use in UI apps when the view needs to react to collection changes. + +--- + +🔷 8. HashSet + +- Unordered, no duplicates. + +- Implements ICollection, not IList. + +- No index access. + + +💡 Best for fast membership checking (contains x). + +--- + +🔷 Summary Table + +|Type|Indexing|Modifiable|Ordered|Duplicates|Use Case| +|---|---|---|---|---|---| +|IEnumerable|❌|❌|✔️|✔️|Basic read-only stream or LINQ chaining| +|ICollection|❌|✔️|✔️|✔️|Expose modifiable group of items| +|IList|✔️|✔️|✔️|✔️|Full-featured list abstraction| +|List|✔️|✔️|✔️|✔️|Standard go-to collection| +|IReadOnlyList|✔️|❌|✔️|✔️|Return data safely from service or repo| +|Array (T[])|✔️|✔️|✔️|✔️|Fixed-size, performant indexing| +|ObservableCollection|✔️|✔️|✔️|✔️|UI binding for collections| +|HashSet|❌|✔️|❌|❌|Fast lookup, uniqueness enforcement| + +— + +If you tell me the scenario (e.g. search results, modifying a cart, populating a drop-down), I can recommend the best type for it. Want that? diff --git a/02_ProjectOrientedSessions/Session04/Session04.md b/02_ProjectOrientedSessions/Session04/Session04 Backend.md similarity index 52% rename from 02_ProjectOrientedSessions/Session04/Session04.md rename to 02_ProjectOrientedSessions/Session04/Session04 Backend.md index a5ac8ab..f5e5bcb 100644 --- a/02_ProjectOrientedSessions/Session04/Session04.md +++ b/02_ProjectOrientedSessions/Session04/Session04 Backend.md @@ -220,7 +220,7 @@ public enum ResultStatus You can read more about enums: [W3Schools](https://www.w3schools.com/cs/cs_enums.php) -# IService & Service +# `IService` & Service Now, use `I[Entity]Repositry` and `IUnitOfWork` in services to implement business logic @@ -361,325 +361,3 @@ You are provided with a SQL script, that adds some sample data into the followin # Merge - [ ] Create a PR and merge the current branch with develop - -# Additional Info -### 1. **Should I have an `IEntityService` and then `EntityService` for each of my entities?** - -Not necessarily **for _every_** entity — only if it **makes sense**. - -- The Application Layer should expose **use cases** — not just CRUD logic for each entity. - -- If an entity has business logic or interactions that need orchestration (e.g., validations, aggregations, calling repositories, etc.), then **yes**, create a service. - -- Otherwise, for basic operations, **directly using a repository (via a unit of work or interface)** from the use case handler might be fine. -### 2. **Is it OK to have services not related to a specific entity?** - -Absolutely, **yes**. In fact, that’s expected in a Clean Architecture setup. - -Examples: - -- A `ReportGenerationService` that combines bookings, customers, and payments. - -- A `TokenService` for authentication tokens. - -- A `CurrencyConversionService` that hits an external API. - -- A `NotificationService` that sends emails or SMS. - - -👉 As long as these services **live in the Application Layer** and follow **dependency inversion** (i.e., they depend only on interfaces, not implementations), you’re doing great. - -### 3. **Is it necessary to have an interface for each service?** - - - -### 🔹 **What’s the Difference Between Services and Repositories?** - -| Aspect | **Service** | **Repository** | -| ------------------ | ---------------------------------------------------------------------- | --------------------------------------------------------------- | -| **Layer** | Application Layer | Domain Layer (interface), Infrastructure Layer (implementation) | -| **Responsibility** | **Orchestrates business logic** / use cases | **Data access abstraction** | -| **Focus** | Coordinates multiple domain/repo operations, validation, business flow | Fetching/storing data for a specific entity | -| **Example** | `PlaceOrderService`, `ReportService` | `ICustomerRepository`, `IOrderRepository` | - -### What does `init` mean? - -`init` is an **access modifier for properties** that allows you to **set a property only during object initialization**, **but not after**. - - -## Should I use `class` or `record` for DTOs in Clean Architecture? - -### 🔵 Short answer: - -> **Use `record` for DTOs when possible** — it's clean, immutable by default, and semantically perfect for data transfer. - ---- - -### 🔍 Why `record` is a great fit for DTOs - -| Feature | `record` | `class` | -| ----------------------- | ----------------- | ---------------------------- | -| Immutable by default | ✅ (with `init`) | ❌ (need manual setup) | -| Value-based equality | ✅ | ❌ (ref-based by default) | -| Concise syntax | ✅ | ❌ (more boilerplate) | -| Use for data containers | ✅ (perfect fit) | ✅ (but more verbose) | -| Custom behavior/logic | ❌ (less suitable) | ✅ (better for rich behavior) | -### But when should you prefer `class`? - -Use `class` if your DTO or model: - -- Needs to be **mutable** after creation - -- Has to **interact with legacy APIs/libraries** - -- Needs **inheritance or polymorphism** (not well supported in `record`) - -- Has **rich behavior** (logic, methods, validation, etc.) - - -> For example, in the Domain Layer (Entities, ValueObjects), you'll usually stick to **`class`** — because that's where behavior lives. - -## RESTful APIs: -https://aws.amazon.com/what-is/restful-api/#:~:text=RESTful%20API%20is%20an%20interface,applications%20to%20perform%20various%20tasks. - -## What Conditions Make an API RESTful? - -### Key Principles of REST: - -1. **Statelessness**: - - - Each API call must contain all the information the server needs to fulfill the request (no session state). Each request is independent. - -2. **Resource Identification**: - - - Resources (e.g., customers, orders) should be identified using URIs. Use nouns in URIs, not verbs. - -3. **HTTP Methods**: - - - Use standard HTTP methods to represent actions: - - - **GET**: Retrieve a resource. - - - **POST**: Create a new resource. - - - **PUT**: Update a resource entirely. - - - **PATCH**: Update a resource partially. - - - **DELETE**: Remove a resource. - -4. **Use of Standard Status Codes**: - - - Return appropriate HTTP status codes (e.g., `200 OK`, `201 Created`, `404 Not Found`, `500 Internal Server Error`). - -5. **HATEOAS**: - - - (Hypermedia as the Engine of Application State) - Provide links to related resources within the responses. - - -### Multiple GET Methods in One Controller: - -- **Yes, you can have multiple GET methods in one controller**. The key is to differentiate them based on routes and parameters. - -- For example: - - -```c# -[ApiController] -[Route("api/[controller]")] -public class CustomerController : ControllerBase { - - [HttpGet("{id}")] - public IActionResult GetCustomerById(int id) { /*...*/ } - - [HttpGet] - public IActionResult GetAllCustomers() { /*...*/ } - - [HttpGet("{id}/orders")] - public IActionResult GetCustomerOrders(int id) { /*...*/ } -} -``` - - -- **Routing**: ASP.NET Core uses route templates to differentiate these actions. The combination of route parameters, query strings, and action names can help separate the GET requests. - - -## List-like stuff in `C#` -Absolutely, let’s go over the main “list-like” data types in C#. They all serve similar purposes—holding multiple items—but differ in functionality, performance, and use cases. Here’s a detailed breakdown: - -🔷 1. `IEnumerable` - -- Namespace: System.Collections.Generic - -- Most basic "list-like" abstraction. - -- Read-only (forward-only iteration). - -- You can use foreach on it. - -- Doesn’t support indexing (no .Count, no [i]). - -- Often used as the return type to expose a stream of data without giving full collection control. - - -Example: - -```csharp -IEnumerable numbers = GetNumbers(); // Lazy-loaded maybe -foreach (var num in numbers) - Console.WriteLine(num); -``` - -💡 Ideal when: - -- You want to return a sequence without exposing modification. - -- You’re using LINQ chains. - -- You’re returning data from a database query. - - ---- - -🔷 2. ICollection - -- Extends IEnumerable. - -- Adds Count and Add/Remove/Clear methods. - -- Still abstract—List and HashSet implement it. - - -💡 Useful when: - -- You want to expose a collection that can be modified (e.g. Add or Remove). - -- You care about the Count. - - ---- - -🔷 3. IList - -- Extends ICollection and IEnumerable. - -- Adds index access: list[0] etc. - -- Think of it like a mutable array with dynamic size. - - -💡 Use when: - -- You want ordered collection with indexing. - -- You need to insert, remove, or replace items at specific positions. - - ---- - -🔷 4. List - -- A concrete class (not interface). - -- Implements IList, ICollection, IEnumerable. - -- Backed by an array (auto-resizes). - -- Fast read and write. - -- Supports Add, Remove, Insert, IndexOf, etc. - - -Example: - -```csharp -var list = new List(); -list.Add("One"); -list.Add("Two"); -var second = list[1]; // "Two" -``` - -💡 Go-to general purpose collection. - ---- - -🔷 5. IReadOnlyCollection & IReadOnlyList - -- IReadOnlyCollection: Just Count and IEnumerable. - -- IReadOnlyList: Adds indexing without modification. - -- Used to expose lists safely (read-only). - - -💡 Used when: - -- You want to return a list, but prevent any changes. - - ---- - -🔷 6. Array (T[]) - -- Fixed-size. - -- Fastest for indexing. - -- Cannot change size. - -- Implements IList (via Array). - - -Example: - -```csharp -int[] numbers = new int[5]; -numbers[0] = 42; -``` - -💡 Great for performance-sensitive or fixed-size data. - ---- - -🔷 7. ObservableCollection - -- For WPF/Blazor/WinForms data-binding. - -- Notifies UI when items are added/removed. - -- Implements IList. - - -💡 Use in UI apps when the view needs to react to collection changes. - ---- - -🔷 8. HashSet - -- Unordered, no duplicates. - -- Implements ICollection, not IList. - -- No index access. - - -💡 Best for fast membership checking (contains x). - ---- - -🔷 Summary Table - -|Type|Indexing|Modifiable|Ordered|Duplicates|Use Case| -|---|---|---|---|---|---| -|IEnumerable|❌|❌|✔️|✔️|Basic read-only stream or LINQ chaining| -|ICollection|❌|✔️|✔️|✔️|Expose modifiable group of items| -|IList|✔️|✔️|✔️|✔️|Full-featured list abstraction| -|List|✔️|✔️|✔️|✔️|Standard go-to collection| -|IReadOnlyList|✔️|❌|✔️|✔️|Return data safely from service or repo| -|Array (T[])|✔️|✔️|✔️|✔️|Fixed-size, performant indexing| -|ObservableCollection|✔️|✔️|✔️|✔️|UI binding for collections| -|HashSet|❌|✔️|❌|❌|Fast lookup, uniqueness enforcement| - -— - -If you tell me the scenario (e.g. search results, modifying a cart, populating a drop-down), I can recommend the best type for it. Want that? diff --git a/02_ProjectOrientedSessions/Session05/React/Mosh React.md b/02_ProjectOrientedSessions/Session05/React/Mosh React.md new file mode 100644 index 0000000..12a60f2 --- /dev/null +++ b/02_ProjectOrientedSessions/Session05/React/Mosh React.md @@ -0,0 +1 @@ +- [ ] Watch https://www.youtube.com/watch?v=SqcY0GlETPk&ab_channel=ProgrammingwithMosh \ No newline at end of file diff --git a/React/Resources.md b/02_ProjectOrientedSessions/Session05/React/Resources.md similarity index 100% rename from React/Resources.md rename to 02_ProjectOrientedSessions/Session05/React/Resources.md diff --git a/React/Mosh React.md b/02_ProjectOrientedSessions/Session05/Session05 Additional Info.md similarity index 100% rename from React/Mosh React.md rename to 02_ProjectOrientedSessions/Session05/Session05 Additional Info.md diff --git a/02_ProjectOrientedSessions/Session05/Session05 Backend.md b/02_ProjectOrientedSessions/Session05/Session05 Backend.md new file mode 100644 index 0000000..1066c8b --- /dev/null +++ b/02_ProjectOrientedSessions/Session05/Session05 Backend.md @@ -0,0 +1,19 @@ +# CORS (Backend Repository) +- [ ] open `program.cs` and add the following lines + +```c# +builder.Services.AddCors(options => +{ + options.AddPolicy("Frontend", policy => + { + policy.WithOrigins("http://localhost:5173") + .AllowAnyHeader() + .AllowAnyMethod(); + }); +}); + +... + +app.UseCors("Frontend"); +``` + diff --git a/02_ProjectOrientedSessions/Session05/Session05.md b/02_ProjectOrientedSessions/Session05/Session05 Frontend.md similarity index 96% rename from 02_ProjectOrientedSessions/Session05/Session05.md rename to 02_ProjectOrientedSessions/Session05/Session05 Frontend.md index 8cc07d1..63446a9 100644 --- a/02_ProjectOrientedSessions/Session05/Session05.md +++ b/02_ProjectOrientedSessions/Session05/Session05 Frontend.md @@ -2,25 +2,6 @@ # Preparation - [ ] Watch https://www.youtube.com/watch?v=SqcY0GlETPk&ab_channel=ProgrammingwithMosh -# CORS (Backend Repository) -- [ ] open `program.cs` and add the following lines - -```c# -builder.Services.AddCors(options => -{ - options.AddPolicy("Frontend", policy => - { - policy.WithOrigins("http://localhost:5173") - .AllowAnyHeader() - .AllowAnyMethod(); - }); -}); - -... - -app.UseCors("Frontend"); -``` - # Important Note Before Starting @@ -340,26 +321,18 @@ You're using `React.FC`. - `React.FC` (or `React.FunctionComponent`) is a **TypeScript type** that you can use to type your functional React components. - It **tells TypeScript** that: - - This component is a function - - It **receives props** (in your case, `Props`) - - It **returns JSX** (it returns something React can render) - --- ### Why use it? Here’s what you get when you use `React.FC`: - 1. ✅ **Prop typing** — You get auto-complete and error checking for props. - 2. ✅ **Children** are automatically included. (More on this below.) - 3. ✅ **Cleaner code** because TypeScript understands the shape of the component. - --- @@ -370,7 +343,6 @@ You could just write: ```tsx const TransportationCard = ({ transportation }: Props) => { ... } ``` - and it would work! But you lose some "extra typing safety" like automatic `children` typing. @@ -419,9 +391,6 @@ Because `children` is **always** part of a `React.FC`. --- -Would you like me to also show a real quick **example side-by-side** (with and without `React.FC`) so you can see the difference even more clearly? 🚀 -(It's super fast but very helpful!) - ## `CityDropdown` Component: ### 1. **State Variables** @@ -432,7 +401,6 @@ const [selectedCity, setSelectedCity] = useState(); ``` - `cities`: holds the list of cities retrieved from the backend (starts empty `[]`). - - `selectedCity`: holds the currently selected city’s ID (`number`) or `undefined` if nothing is selected yet. @@ -450,11 +418,8 @@ useEffect(() => { - When the component **mounts** (`[]` dependency array = run once), it calls `agent.Cities.list()`. - `agent.Cities.list()` presumably returns a promise that resolves to an array of `City` objects. - - On success → `setCities` updates the `cities` state. - - On failure → logs an error to the console. - --- @@ -482,9 +447,6 @@ useEffect(() => { - `key` and `value` are the city's `id`. - Displayed text is the city's `title`. ---- -You're very welcome! Let's break it down even more clearly: - --- ### What is `useEffect`? @@ -493,7 +455,6 @@ You're very welcome! Let's break it down even more clearly: It **tells React to run some code after the component renders**. Think of it like: - - _"Hey React, when this component shows up on the screen, please also run this function!"_ @@ -539,18 +500,13 @@ Same with `selectedCity`: **Simple analogy:** Imagine your component is a whiteboard. - - `useState` gives you a small _erasable box_ on the board. - - You can write something there (`cities`, `selectedCity`). - - If you want to change what’s written, you use the special pen `setCities` or `setSelectedCity`, **not your finger** (so React knows it changed and redraws the screen if needed). --- - ## `TransportationCard` Component - ### 1. **The Component Function** ```tsx @@ -564,7 +520,6 @@ const TransportationCard: React.FC = ({ transportation }) => { --- ### 2. **Inside the JSX** - #### 2.1 Left Side — Price and Button ```tsx diff --git a/02_ProjectOrientedSessions/Session06/Session06.md b/02_ProjectOrientedSessions/Session06/Session06 Frontend.md similarity index 99% rename from 02_ProjectOrientedSessions/Session06/Session06.md rename to 02_ProjectOrientedSessions/Session06/Session06 Frontend.md index 2891bb6..e99e80f 100644 --- a/02_ProjectOrientedSessions/Session06/Session06.md +++ b/02_ProjectOrientedSessions/Session06/Session06 Frontend.md @@ -24,8 +24,6 @@ link to project: # Modifying Project From Single Component to Routed Pages - - Originally, your transportation search logic and UI may have all been inside one component — which quickly becomes messy and hard to manage as your app grows. Now we’ve **split the logic into two proper pages**: diff --git a/02_ProjectOrientedSessions/Session07/Session07 Additional Info.md b/02_ProjectOrientedSessions/Session07/Session07 Additional Info.md index 384dee3..b16cc9a 100644 --- a/02_ProjectOrientedSessions/Session07/Session07 Additional Info.md +++ b/02_ProjectOrientedSessions/Session07/Session07 Additional Info.md @@ -777,9 +777,9 @@ console.log(roles); // ["Admin", "Editor", "User"] ### Summary -|Step|How it works| -|---|---| -|JWT creation|Multiple `"role"` claims added to token| -|Backend authorization|Validates token and checks if user has required roles| -|Frontend decoding|Extracts `role` claim(s) as array of strings| -|Frontend UI control|Shows or hides content based on roles| +| Step | How it works | +| --------------------- | ----------------------------------------------------- | +| JWT creation | Multiple `"role"` claims added to token | +| Backend authorization | Validates token and checks if user has required roles | +| Frontend decoding | Extracts `role` claim(s) as array of strings | +| Frontend UI control | Shows or hides content based on roles | diff --git a/02_ProjectOrientedSessions/Session07/Session07 Backend.md b/02_ProjectOrientedSessions/Session07/Session07 Backend.md index b2643eb..92094e0 100644 --- a/02_ProjectOrientedSessions/Session07/Session07 Backend.md +++ b/02_ProjectOrientedSessions/Session07/Session07 Backend.md @@ -1,7 +1,7 @@ # Add a field in Database - [ ] Add `User` field in `Roles` table using SSMS or Seed data in DbContext file -- [ ] Make sure the property `PersonId` is nullable in `Account`, so you can add fields related to "Person" later after registeration +- [ ] Make sure the property `PersonId` is nullable in `Account`, so you can add fields related to "Person" later after registration # Branching - [ ] Create the feature/authentication branch based on develop diff --git a/02_ProjectOrientedSessions/Session08/New Roadmap.md b/02_ProjectOrientedSessions/Session08/New Roadmap.md deleted file mode 100644 index be18433..0000000 --- a/02_ProjectOrientedSessions/Session08/New Roadmap.md +++ /dev/null @@ -1,58 +0,0 @@ - -## Roadmap - -### Setup - -Estimated Time: - days -#### Backend - -- [ ] A -#### Frontend -- [ ] A - - - - -### Profile Page - -#### Creating BankDetailTable -#### ADd data into ticket status -Add phone number in person -person table- make id not unique - add creatorId - -#### -#### Tabs Panel like that (FULL) -#### Account Detail Tab (FULL) -#### My Travels Tab (FULL) -#### List of Travelers Tab (FULL) -#### My Favorites Tab (LATER) -#### Support Tab (LATER) -#### Transactions Tab (FULL) - Add balance to table - inc/dec balance - - -### Buying Tickets -#### Transportation Search Result 3 links -#### Showing seat status -#### The Select Ticket Page - Three different kinds, for bus, train, airplane -##### The header to show details and total price -##### The part for selecting seats (only for bus) -##### the list of people below it - - -### README and documentation - -## Optional Enhancements - -- [ ] Generic – You can use general types to avoid repetition and make code flexible, esp. in API - -- [ ] Responsive UI – Make sure the interface adjusts nicely - -- [ ] Theme – Support light/dark or customizable appearance - -- [ ] Server Log – Keep track of what happens on the server - -- [ ] Index in database – Improve how fast things are found in the database - -- [ ] Optimizing Multithreading – Make background work smoother and faster - -- [ ] Repository Pattern – Organize how data is handled and accessed \ No newline at end of file diff --git a/02_ProjectOrientedSessions/Session09/Database Transactions.md b/02_ProjectOrientedSessions/Session09/Database Transactions.md new file mode 100644 index 0000000..b30efc5 --- /dev/null +++ b/02_ProjectOrientedSessions/Session09/Database Transactions.md @@ -0,0 +1,766 @@ +To **safely handle concurrency** in your `CreateTicketOrderAsync` method — particularly for **seat reservation** on the same `Transportation` — you need to **prevent race conditions** where two users might reserve the same seat or oversell capacity. + +This is a **classic critical section problem**, and you can solve it using **application-level locking**, **database-level locking**, or both. + +--- + +## ✅ Recommended: **Database-level concurrency control + optional distributed lock** + +### 👇 Here’s what you should do: + +--- + +## ✅ 1. Use **pessimistic concurrency** (row-level locking) on the `Transportation` row + +### Why? + +You need to **lock the transportation row** to prevent multiple reservations from modifying the related seats/capacity **at the same time**. + +### How? + +Use EF Core's **raw SQL or transaction-scoped SELECT ... FOR UPDATE** (which translates to SQL row locks): + +```csharp +using var transaction = await _context.Database.BeginTransactionAsync(IsolationLevel.Serializable); + +var transportation = await _context.Transportations + .FromSqlRaw("SELECT * FROM Transportations WITH (UPDLOCK, ROWLOCK) WHERE Id = {0}", dto.TransportationId) + .FirstOrDefaultAsync(); +``` + +- `UPDLOCK`: prevents others from reading for update + +- `ROWLOCK`: locks only the specific row + + +> If using PostgreSQL or MySQL, you’d use `FOR UPDATE` instead. + +--- + +## ✅ 2. Alternatively, use **distributed locking** if you have multiple app instances + +Use something like: + +- **Redis distributed lock** + +- **SQL application locks** (`sp_getapplock`) + +- **SemaphoreSlim static lock** (only for single-instance apps — not safe in web farms) + + +### Example using `sp_getapplock` (SQL Server): + +```sql +EXEC sp_getapplock @Resource = 'lock_transportation_123', @LockMode = 'Exclusive', @LockTimeout = 10000; +``` + +EF version: + +```csharp +await _dbContext.Database.ExecuteSqlRawAsync( + $"EXEC sp_getapplock @Resource = 'transportation_lock_{dto.TransportationId}', @LockMode = 'Exclusive', @LockTimeout = 10000;"); +``` + +✅ This will ensure **only one thread** gets to proceed per `TransportationId`. + +--- + +## ✅ 3. Wrap the reservation logic in a **transaction** + +```csharp +using var transaction = await _context.Database.BeginTransactionAsync(IsolationLevel.Serializable); + +// locking query here +// seat validation +// insert tickets +// save ticket order +// commit + +await _unitOfWork.SaveChangesAsync(); +await transaction.CommitAsync(); +``` + +Use `IsolationLevel.Serializable` or `RepeatableRead` if you’re not doing explicit locking. + +--- + +## ✅ 4. Add a **unique constraint** on `SeatId + TransportationId` (if not already) + +To **enforce uniqueness at DB level** and prevent race conditions from succeeding: + +```sql +ALTER TABLE Tickets ADD CONSTRAINT UQ_Tickets_Seat_Transport UNIQUE (SeatId, TicketStatusId) +WHERE TicketStatusId != 3; -- exclude cancelled +``` + +Or make a logic-safe alternative depending on your schema. + +--- + +## ✅ Final version: Summary of changes + +### In your service: + +```csharp +using var transaction = await _dbContext.Database.BeginTransactionAsync(IsolationLevel.Serializable); + +// Optional: Lock the transportation row to prevent race +await _dbContext.Database.ExecuteSqlRawAsync( + $"EXEC sp_getapplock @Resource = 'transportation_lock_{dto.TransportationId}', @LockMode = 'Exclusive', @LockTimeout = 10000;"); + +// Re-fetch transportation + tickets +var transportation = await _transportationRepository.GetByIdWithTickets(dto.TransportationId); + +// Validate seats +var seatCheck = ValidateTransportationAndSeats(transportation, dto.Travelers); +if (!string.IsNullOrEmpty(seatCheck)) return Result.Error(0, seatCheck); + +// Proceed with reservation +... + +await _unitOfWork.SaveChangesAsync(); +await transaction.CommitAsync(); +``` + +--- + +## 🧠 Summary Table + +|Strategy|Prevents Race?|Web-farm Safe|Recommended For| +|---|---|---|---| +|`sp_getapplock`|✅ Yes|✅ Yes|SQL Server web apps| +|EF raw SQL `WITH (UPDLOCK)`|✅ Yes|✅ Yes|SQL Server monoliths| +|`SemaphoreSlim`|✅ Yes|❌ No|Local-only apps| +|`FOR UPDATE`|✅ Yes|✅ Yes|PostgreSQL, MySQL| + +--- + +Let me know your DB provider and environment (single-instance or multi-instance), and I can generate exact code tailored for that. +Perfect — you're absolutely right to want **the whole process to be atomic**: +→ **Seat allocation**, +→ **Ticket creation**, +→ **Balance checking & payment**, +→ **Transaction creation**, +→ **Traveler creation/upsert**, etc. + +This needs more than just _database-level locks_. You want to **serialize execution** for the same transportation to avoid concurrency conflicts — **across the entire flow**, not just the DB writes. + +--- + +## ✅ Your Goal + +> **For a given `TransportationId`, only one call to `CreateTicketOrderAsync` should execute at a time**, regardless of app instance or user. + +This includes logic **outside EF** (like payment, seat assignment, person creation, etc.). + +--- + +## 🛠️ The Right Solution: **Distributed Application Locking** + +### Use **SQL Server’s `sp_getapplock`** to lock **by `TransportationId`** + +Why? + +- It locks **application-level logic**, not just SQL rows + +- It works across threads, processes, and even app servers + +- It ensures only **one process** can work on that transportation at a time + + +--- + +## ✅ How to Implement in Your Method + +### 🔒 Step 1: Lock by Transportation ID + +Add this at the **start** of your method: + +```csharp +await _dbContext.Database.ExecuteSqlRawAsync( + $"EXEC sp_getapplock @Resource = 'transportation_lock_{dto.TransportationId}', " + + "@LockMode = 'Exclusive', @LockTimeout = 10000;"); +``` + +This ensures that **only one call per transportation** runs at a time. + +If a second request tries to lock the same ID, it waits up to 10 seconds. + +--- + +### 🔁 Step 2: Begin EF Transaction + +This will include all EF operations in a single atomic unit: + +```csharp +using var transaction = await _dbContext.Database.BeginTransactionAsync(); +``` + +--- + +### 🧠 Step 3: Keep the Full Logic As Is, But Within Transaction + +Like this: + +```csharp +public async Task> CreateTicketOrderAsync(long accountId, CreateTicketOrderDto dto) +{ + // 🔒 Lock to prevent concurrency per transportation + await _dbContext.Database.ExecuteSqlRawAsync( + $"EXEC sp_getapplock @Resource = 'transportation_lock_{dto.TransportationId}', " + + "@LockMode = 'Exclusive', @LockTimeout = 10000;"); + + // 🧾 Begin transaction + using var transaction = await _dbContext.Database.BeginTransactionAsync(); + + // 💰 Load account and transportation + var account = await _accountRepository.GetByIdAsync(accountId); + if (account == null) return Result.Error(0, "Account not found"); + + var transportation = await _transportationRepository.GetByIdAsync(dto.TransportationId); + if (transportation == null) return Result.Error(0, "Transportation not found"); + + // 💵 Check balance + var price = transportation.BasePrice * dto.Travelers.Count; + if (account.CurrentBalance < price) + return Result.Error(0, "Not enough money"); + + // ✅ Validate seat availability + var seatCheck = ValidateTransportationAndSeats(transportation, dto.Travelers); + if (!string.IsNullOrEmpty(seatCheck)) + return Result.Error(0, seatCheck); + + // 🪑 Assign seats (if dynamic logic) + await AssignSeatsIfDynamic(transportation.VehicleId, dto.Travelers); + + // 👤 Upsert travelers (can also use same transaction) + await UpsertTravelers(account.Id, dto.Travelers); + + // 🎟️ Create ticket order + var ticketOrder = new TicketOrder + { + BuyerId = account.Id, + CreatedAt = DateTime.UtcNow, + Description = "", + SerialNumber = Guid.NewGuid().ToString("N"), + TransportationId = dto.TransportationId, + }; + await _ticketOrderRepository.AddAsync(ticketOrder); + + // 🎫 Add tickets + foreach (var traveler in dto.Travelers) + { + var ticket = new Ticket + { + CreatedAt = DateTime.UtcNow, + Description = traveler.Description, + SeatId = traveler.SeatId!.Value, + SerialNumber = Guid.NewGuid().ToString("N"), + TicketOrder = ticketOrder, + TicketStatusId = 1, + TravelerId = traveler.Id, + }; + await _ticketRepository.AddAsync(ticket); + } + + // 💳 Commit everything + await _unitOfWork.SaveChangesAsync(); + + // 💸 Withdraw money and create transaction + await _accountService.PayForTicketOrderAsync(account.Id, ticketOrder.Id, price); + + // ✅ Commit transaction + await transaction.CommitAsync(); + + return Result.Success(ticketOrder.Id); +} +``` + +--- + +## 🧱 Summary of Protection + +|Step|Protected?|How| +|---|---|---| +|Prevent concurrent seat assignment|✅|`sp_getapplock` per `TransportationId`| +|Prevent concurrent DB changes|✅|EF `DbTransaction`| +|Prevent double-spend|✅|Balance check inside the same lock + transaction| +|Ensure traveler upserts/tickets are safe|✅|Wrapped in same transaction| + +--- + +## ⚠️ Important Note + +Make sure all the operations (`AssignSeatsIfDynamic`, `UpsertTravelers`, etc.): + +- Use the **same `DbContext`/UnitOfWork** + +- Don’t commit changes prematurely (no `SaveChangesAsync()` before you're ready to commit the whole transaction) + + +--- + +## ✅ Optional (Safety): Add retry logic + +In case of a **deadlock or lock timeout**, you might want to retry the whole operation once. + +--- + +Let me know if you want me to extract this into a reusable helper like: + +```csharp +await _appLockService.ExecuteWithLockAsync($"transportation_lock_{dto.TransportationId}", async () => { + // your reservation logic +}); +``` + +That would clean things up nicely. +Sure. Let’s break down everything you need to know about **transactions** in Entity Framework Core (EF Core) — especially for your case where you're doing **complex operations that must all succeed or fail together**. + +--- + +## 🧾 What is a Transaction? + +A **transaction** is a unit of work that is treated as a **single, indivisible operation**. Either **all of it succeeds** (committed), or **none of it does** (rolled back). + +### 🧠 Properties of a transaction (ACID): + +|Property|Meaning| +|---|---| +|**Atomicity**|All steps succeed or none do| +|**Consistency**|DB remains valid before and after| +|**Isolation**|Transactions don’t interfere with each other| +|**Durability**|Once committed, data is persisted permanently| + +--- + +## ✅ Why You Need Transactions + +In your case, you’re: + +- Assigning seats + +- Creating or updating people + +- Creating a `TicketOrder` + +- Creating multiple `Tickets` + +- Updating account balance & transaction history + + +All of these must either: + +- Complete **fully and safely**, or + +- **Fail entirely**, with no partial data left behind. + + +--- + +## 🧰 Transaction in EF Core: Full Example + +### 🔧 Step-by-step Example: + +```csharp +public async Task> CreateTicketOrderAsync(long accountId, CreateTicketOrderDto dto) +{ + // Begin EF Core transaction + using var transaction = await _dbContext.Database.BeginTransactionAsync(); + + try + { + // Load required entities + var account = await _accountRepository.GetByIdAsync(accountId); + if (account == null) + return Result.Error(0, "Account not found"); + + var transportation = await _transportationRepository.GetByIdAsync(dto.TransportationId); + if (transportation == null) + return Result.Error(0, "Transportation not found"); + + var price = transportation.BasePrice * dto.Travelers.Count; + if (account.CurrentBalance < price) + return Result.Error(0, "Not enough money"); + + // Validate seat assignment + var seatCheck = ValidateTransportationAndSeats(transportation, dto.Travelers); + if (!string.IsNullOrEmpty(seatCheck)) + return Result.Error(0, seatCheck); + + await AssignSeatsIfDynamic(transportation.VehicleId, dto.Travelers); + await UpsertTravelers(account.Id, dto.Travelers); + + // Create ticket order + var ticketOrder = new TicketOrder + { + BuyerId = account.Id, + CreatedAt = DateTime.UtcNow, + SerialNumber = Guid.NewGuid().ToString("N"), + TransportationId = dto.TransportationId, + }; + await _ticketOrderRepository.AddAsync(ticketOrder); + + foreach (var traveler in dto.Travelers) + { + await _ticketRepository.AddAsync(new Ticket + { + CreatedAt = DateTime.UtcNow, + Description = traveler.Description, + SeatId = traveler.SeatId.Value, + SerialNumber = Guid.NewGuid().ToString("N"), + TicketOrder = ticketOrder, + TicketStatusId = 1, + TravelerId = traveler.Id, + }); + } + + // Save changes + await _unitOfWork.SaveChangesAsync(); + + // Withdraw money from account + await _accountService.PayForTicketOrderAsync(account.Id, ticketOrder.Id, price); + + // Commit transaction + await transaction.CommitAsync(); + + return Result.Success(ticketOrder.Id); + } + catch (Exception ex) + { + // Rollback if anything failed + await transaction.RollbackAsync(); + return Result.Error(0, "Reservation failed: " + ex.Message); + } +} +``` + +--- + +## 🔄 Isolation Levels (Advanced) + +### You can specify isolation level when beginning a transaction: + +```csharp +using var transaction = await _dbContext.Database.BeginTransactionAsync(IsolationLevel.Serializable); +``` + +### Common levels: + +|Isolation Level|Description|Use Case| +|---|---|---| +|`ReadCommitted` (default)|No dirty reads|Usually enough| +|`RepeatableRead`|Prevents non-repeatable reads|Seat assignment logic| +|`Serializable`|Full isolation (slower, safer)|Financial or reservation systems| + +--- + +## 🧩 When `SaveChangesAsync()` Commits vs. Not + +Calling `SaveChangesAsync()` **does not commit** the outer transaction — it just writes pending changes to the database. + +The real commit happens only when you call: + +```csharp +await transaction.CommitAsync(); +``` + +If anything fails before that, the changes are **not persisted**. + +--- + +## ✅ Best Practices for Transactions in EF Core + +|Best Practice|Why| +|---|---| +|Keep transactions **short**|Locks and contention increase with time| +|Catch exceptions and **rollback**|Prevent dirty/incomplete data| +|Use **only one DbContext** inside the transaction|EF tracks entities via one unit of work| +|Don’t call SaveChanges too early|May break the atomicity| +|Use **appropriate isolation level**|Based on your concurrency needs| +|Consider retry policy for transient errors|Especially in distributed systems| + +--- + +## ❗ Common Pitfalls + +|Mistake|Problem| +|---|---| +|Mixing DbContext instances inside one transaction|Breaks consistency| +|Committing too early|Later failure still leaves partial data| +|Forgetting rollback in catch|Leaves transaction open or inconsistent| +|Async code outside transaction scope|Could break atomicity or introduce race| + +--- + +## 🧠 Summary: Transaction Essentials + +|Concept|Description| +|---|---| +|`BeginTransactionAsync()`|Starts a manual transaction| +|`SaveChangesAsync()`|Writes changes but doesn’t commit outer transaction| +|`CommitAsync()`|Finalizes all DB changes| +|`RollbackAsync()`|Reverts all changes since the transaction began| +|Scope|All EF/DB actions done within the transaction block| + +--- + +If you'd like, I can create a **generic transaction helper**, or even make this a **middleware** or **interceptor**, depending on how reusable you want this to be. + +Let me know! +Great! These questions show deep thinking about **how transactions and locks actually work** in EF Core and layered architecture. Let’s answer them one by one with real clarity and direction. + +--- + +## ❓ 1. _"I have this method in my `TicketOrderService`, and I don't have access to `_dbContext`."_ + +### ✅ Solution: + +If you're using **Repository + UnitOfWork pattern**, your `UnitOfWork` should expose a method to access the underlying **DbContext** or allow you to start a transaction. + +**👉 Extend your `IUnitOfWork` interface like this:** + +```csharp +public interface IUnitOfWork +{ + Task SaveChangesAsync(); + Task BeginTransactionAsync(IsolationLevel level = IsolationLevel.ReadCommitted); + DbContext Context { get; } // optional +} +``` + +And in your implementation: + +```csharp +public class UnitOfWork : IUnitOfWork +{ + private readonly AppDbContext _context; + + public UnitOfWork(AppDbContext context) => _context = context; + + public Task SaveChangesAsync() => _context.SaveChangesAsync(); + + public Task BeginTransactionAsync(IsolationLevel level = IsolationLevel.ReadCommitted) + => _context.Database.BeginTransactionAsync(level); + + public DbContext Context => _context; +} +``` + +### ✅ Then in your `TicketOrderService`: + +```csharp +using var transaction = await _unitOfWork.BeginTransactionAsync(); +// your operations +await _unitOfWork.SaveChangesAsync(); +await transaction.CommitAsync(); +``` + +This keeps your `Service` clean and architecture-respecting. + +--- + +## ❓ 2. _"How does the transaction hold stuff? Wouldn’t `unitOfWork.SaveChangesAsync()` just save everything?"_ + +### 🔍 Clarification: + +- `SaveChangesAsync()` **writes the changes to the database**, but… + +- **If you're in a transaction**, the database holds those changes in a **temporary, invisible state** until you explicitly call: + + +```csharp +await transaction.CommitAsync(); +``` + +💡 If you **don’t commit**, or you **rollback**, then **those changes are discarded**, even if you called `SaveChangesAsync()`. + +### 👇 Timeline of how EF works in a transaction: + +1. EF tracks entities in memory. + +2. You call `SaveChangesAsync()`. + +3. Changes are written to the DB — but: + + - If inside a transaction, they are **not visible to others yet**. + + - They are held until `CommitAsync()`. + +4. If you call `RollbackAsync()`, all writes are undone. + + +--- + +## ❓ 3. _"How would the lock know that the work with that transportation is finished?"_ + +### 🔒 About `sp_getapplock`: + +This SQL Server feature locks a **named resource** (like `transportation_lock_123`) for **the duration of the current SQL connection and transaction**. + +Here’s how it works: + +|Action|Result| +|---|---| +|You call `sp_getapplock`|SQL Server grants an exclusive lock for the resource| +|You complete the transaction (commit or rollback)|Lock is **automatically released**| +|Your connection is closed or disposed|Lock is released| + +### 🔍 So you don’t need to manually release the lock. + +Just make sure: + +- The **lock and transaction use the same connection** + +- You commit or rollback after the work is done + + +✅ EF Core handles all that automatically when using `Database.BeginTransactionAsync()`. + +--- + +## ✅ Final Advice Recap + +|Question|Answer| +|---|---| +|I don’t have access to `_dbContext`|Expose `BeginTransactionAsync` on your `IUnitOfWork`| +|How does transaction matter if I save mid-way?|It isolates changes — no one sees them until committed| +|How does lock get released?|Automatically when transaction completes or connection closes| + +--- + +Let me know if you want: + +- Sample `UnitOfWork` and `Repository` setup for full support + +- A lock + transaction helper method + +- Unit tests to simulate concurrent reservations + + +You're doing great — this is how robust, real-world software gets built. + +You've unpacked crucial concerns around **transactions**, **unit-of-work (UoW)**, and **application-wide consistency**. Here's a polished breakdown with clear answers and guidance: + +--- + +### ✅ 1. Is it okay to use both Transactions **and** Unit of Work? + +- **Yes, absolutely.** UoW is a design pattern that groups multiple repository operations into one logical unit, while a _transaction_ ensures these operations either all succeed or all fail atomically ([antondevtips.com](https://antondevtips.com/blog/implementing-unit-of-work-pattern-in-ef-core?utm_source=chatgpt.com "Implementing Unit of Work Pattern in EF Core - Anton DevTips")). + +- In EF Core, the **DbContext itself implements UoW**, collecting changes in memory until `SaveChangesAsync()` is called ([reddit.com](https://www.reddit.com/r/dotnet/comments/17npjtx/unit_of_work_pattern_still_necessary_in_net_8/?utm_source=chatgpt.com "Unit of Work Pattern still necessary in .NET 8? : r/dotnet - Reddit")). + +- When you execute **multiple SaveChanges**, or include non-repository logic (e.g., balance updates, payment creation, seat locking), **explicit transactions** ensure the entire flow remains atomic . + + +--- + +### ✅ 2. How exactly to open/close transactions? Where to be careful? + +#### ✨ Use EF to manage transactions in your UoW: + +1. **Extend your `IUnitOfWork`** to include transaction methods: + + ```csharp + Task BeginTransactionAsync(IsolationLevel level = ReadCommitted); + Task SaveChangesAsync(); + ``` + +2. **In your service**, do: + + ```csharp + using var tx = await _unitOfWork.BeginTransactionAsync(); + try { + // perform all operations (seat locks, entity changes, balance, tickets) + await _unitOfWork.SaveChangesAsync(); + await tx.CommitAsync(); + } catch { + await tx.RollbackAsync(); + throw; + } + ``` + +3. **Know the boundaries**: Keep the transaction as short as possible. Open it before critical operations and close it after the final `CommitAsync()`. + + +> 💡 Use `(IsolationLevel.Serializable)` for scenarios like seat reservation where concurrent writes must be prevented ([milanjovanovic.tech](https://www.milanjovanovic.tech/blog/working-with-transactions-in-ef-core?utm_source=chatgpt.com "Working With Transactions In EF Core"), [learn.microsoft.com](https://learn.microsoft.com/en-us/aspnet/mvc/overview/older-versions/getting-started-with-ef-5-using-mvc-4/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application?utm_source=chatgpt.com "Implementing the Repository and Unit of Work Patterns in an ASP ...")). + +--- + +### ✅ 3. Why did things “work” without explicit transactions? + +- **Simple SaveChanges** calls act like atomic units—if they fail, nothing is saved. With just one SaveChanges call, EF wraps it in a default transaction ([stackoverflow.com](https://stackoverflow.com/questions/24636352/unit-of-work-i-dont-need-to-use-transactions?utm_source=chatgpt.com "c# - unit of work - I don't need to use transactions? - Stack Overflow")). + +- However, as soon as your workflow involves **multiple SaveChanges**, **external services**, or **cross-repository updates**, the default behavior is no longer sufficient. A failure midway could leave your data in a partial state. + +- That's where **explicit transaction scopes** come in—to guarantee everything is batched and rolled back if any part fails ([antondevtips.com](https://antondevtips.com/blog/implementing-unit-of-work-pattern-in-ef-core?utm_source=chatgpt.com "Implementing Unit of Work Pattern in EF Core - Anton DevTips")). + + +--- + +### 🧠 TL;DR Summary + +|Concept|Purpose|When Needed| +|---|---|---| +|**Unit of Work**|Organizes multiple EF operations into one commit|Always used with EF DbContext| +|**Implicit transaction**|EF wraps each SaveChanges automatically|Ok for single SaveChanges calls| +|**Explicit transaction**|Manually control commit/rollback across many operations|Needed when multiple SaveChanges, external services, concurrency, etc.| +|**IsolationLevel.Serializable**|Highest locking level to prevent concurrent conflicts|Use for critical resource locks (e.g., seat booking)| +|**Be careful**|Keep transactions short to avoid locks and deadlocks|Avoid long-running operations inside the transaction| + +--- + +If you want, I can provide: + +- **Code templates** for UoW with transaction management + +- **Interceptor or decorator** to automate transaction handling in your services + +- **Concurrency demos** to test seat reservation under load + + +Just say the word! +Absolutely! Let’s clarify both of your statements with authoritative sources: + +--- + +## 1. If I haven't called `BeginTransaction` and call `SaveChanges`, will changes be saved? + +✅ **Yes.** EF Core automatically wraps **every** `SaveChanges()` call in its **own transaction**. This means: + +- If **all operations succeed**, the data is saved. +- If **anything fails**, the entire set is **rolled back**, leaving the DB unchanged. citeturn0search0turn0search9 + +🔁 So even without explicitly starting a transaction, `SaveChanges()` ensures atomicity for that batch of changes. + +--- + +## 2. If I have called `BeginTransaction`, and then call `SaveChanges`, do changes go to the DB immediately? + +✅ **Yes, but context matters.** When you wrap operations in an explicit transaction: + +- Each `SaveChanges()` writes within that transaction. +- However, **none** of these writes become visible to other connections until you call `Commit()`. + +EF also uses **savepoints** internally (for multiple `SaveChanges()` calls) to enable partial rollbacks without rolling back the entire transaction. citeturn0search0turn0search2turn0search3 + +--- + +### 🧩 In Plain English + +| Scenario | SaveChanges Only | BeginTransaction + SaveChanges | +|------------------|--------------------------------------------------|----------------------------------------------------| +| No transaction | Auto-wrapped in its own transaction–immediate. | — | +| With explicit transaction | Writes are within the transaction, not yet committed. | ✔ | +| Rollback before commit | Not possible. SaveChanges is final. | ✔ Rolls everything back. | + +--- + +### ✅ TL;DR + +- ✅ **Without `BeginTransaction`**: `SaveChanges()` is atomic per call—commits or rolls back automatically. +- ✅ **With `BeginTransaction`**: `SaveChanges()` writes into the transaction, but the changes are **held until** you call `Commit()`; `Rollback()` discards them all. + +--- + +Want some **ready-to-use code** to introduce `BeginTransaction()` into your UnitOfWork and services? Just let me know and I’ll supply a clean implementation! \ No newline at end of file diff --git a/02_ProjectOrientedSessions/Session09/Session09 Backend.md b/02_ProjectOrientedSessions/Session09/Session09 Backend.md new file mode 100644 index 0000000..2068844 --- /dev/null +++ b/02_ProjectOrientedSessions/Session09/Session09 Backend.md @@ -0,0 +1,4 @@ +Endpoint for increasing balance +Endpoint for reserving ticket(s) + updating transportation remaining count + adding transaction +Endpoint for getting seats + seeing if each is reserved or not +Creating and sending a pdf downloadable ticket diff --git a/02_ProjectOrientedSessions/docs/AlibabaERD-Version02.pdf b/02_ProjectOrientedSessions/docs/AlibabaERD-Version02.pdf index c08e576b30b8793b0f740057dcd8e9c7558c3228..50c4666ecade47975d1a1b7e47147aedcaa436a6 100644 GIT binary patch delta 94558 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�@xOLPmNa6VUFfE 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 delta 94730 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

h8}bIcM>Pn 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 V{>!j`Xdny~;KRjYVv^TT_#dC|E|dTO diff --git a/02_ProjectOrientedSessions/docs/AlibabaERD-Version02.vsdx b/02_ProjectOrientedSessions/docs/AlibabaERD-Version02.vsdx index 258019be6195e5e5a00d4b12bd7950cddb076e96..f2d2e9f1f618b8488943f3b811b3e66d6900ea6e 100644 GIT binary patch delta 57610 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 delta 57961 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%0Aimw)e`9fA_PY_QRpL`3@SiyFRkH0h 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 BwTS=#