refactor: modularize Beam into new projects and interfaces
- Introduced modularity by splitting Beam into new projects: Beam.Abstractions, Beam.Models, and Beam.Downloaders. - Refactored existing classes into appropriate namespaces and projects. - Replaced specific implementations with abstractions (e.g., SourceLinkBuilder to LinkBuilder, State to IState, etc.). - Updated interfaces: added ITemplate, IArticleData, IDownloadReport, and others for improved extensibility. - Removed deprecated classes like SourceLinkBuilder and StateChangerFactory. - Enhanced link handling in downloaders by refactoring to use `string` over `SourceLink`. - Consolidated shared logic under Beam.Abstractions.
This commit is contained in:
@@ -23,6 +23,16 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Beam.Fluent", "Beam.Fluent\
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Beam.Models", "Beam.Models\Beam.Models.csproj", "{DD98868D-D1CA-4B6F-AC0F-4ADCBCD6DAD1}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Beam.Api", "Beam.Api\Beam.Api.csproj", "{F649DA9C-FEE6-4730-A1C2-67B4FB899337}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Beam.Abstractions", "Beam.Abstractions\Beam.Abstractions.csproj", "{69E7AC2B-19DA-4D3E-B03C-0349EB7C9C0B}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Beam.Exceptions", "Beam.Exceptions\Beam.Exceptions.csproj", "{D3EF0A3E-AA2A-497E-AE77-617591CA9D1A}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Beam.Downloaders", "Beam.Downloaders\Beam.Downloaders.csproj", "{B61296C0-D816-4C33-BAF6-9B662B8EE598}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Beam.Data", "Beam.Data\Beam.Data.csproj", "{99F5026F-180D-46DC-96BF-B3CCE21C2E90}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
@@ -69,6 +79,26 @@ Global
|
||||
{DD98868D-D1CA-4B6F-AC0F-4ADCBCD6DAD1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{DD98868D-D1CA-4B6F-AC0F-4ADCBCD6DAD1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{DD98868D-D1CA-4B6F-AC0F-4ADCBCD6DAD1}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{F649DA9C-FEE6-4730-A1C2-67B4FB899337}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{F649DA9C-FEE6-4730-A1C2-67B4FB899337}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{F649DA9C-FEE6-4730-A1C2-67B4FB899337}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{F649DA9C-FEE6-4730-A1C2-67B4FB899337}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{69E7AC2B-19DA-4D3E-B03C-0349EB7C9C0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{69E7AC2B-19DA-4D3E-B03C-0349EB7C9C0B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{69E7AC2B-19DA-4D3E-B03C-0349EB7C9C0B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{69E7AC2B-19DA-4D3E-B03C-0349EB7C9C0B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{D3EF0A3E-AA2A-497E-AE77-617591CA9D1A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{D3EF0A3E-AA2A-497E-AE77-617591CA9D1A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{D3EF0A3E-AA2A-497E-AE77-617591CA9D1A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{D3EF0A3E-AA2A-497E-AE77-617591CA9D1A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{B61296C0-D816-4C33-BAF6-9B662B8EE598}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{B61296C0-D816-4C33-BAF6-9B662B8EE598}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{B61296C0-D816-4C33-BAF6-9B662B8EE598}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{B61296C0-D816-4C33-BAF6-9B662B8EE598}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{99F5026F-180D-46DC-96BF-B3CCE21C2E90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{99F5026F-180D-46DC-96BF-B3CCE21C2E90}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{99F5026F-180D-46DC-96BF-B3CCE21C2E90}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{99F5026F-180D-46DC-96BF-B3CCE21C2E90}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
Reference in New Issue
Block a user