feat: partially reverse-engineered app structure
This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								diagrams/app/structure.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								diagrams/app/structure.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 101 KiB  | 
							
								
								
									
										109
									
								
								diagrams/app/structure.puml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								diagrams/app/structure.puml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,109 @@
 | 
				
			|||||||
 | 
					@startuml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					!theme crt-amber
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class App {
 | 
				
			||||||
 | 
					    Located in: App.xaml -> App.xaml.cs
 | 
				
			||||||
 | 
					    --
 | 
				
			||||||
 | 
					    --
 | 
				
			||||||
 | 
					    ..Startup..
 | 
				
			||||||
 | 
					    // constructor
 | 
				
			||||||
 | 
					    App(): app
 | 
				
			||||||
 | 
					    CreateFileFolder(): String
 | 
				
			||||||
 | 
					    InitializeLogger(): String
 | 
				
			||||||
 | 
					    ParseMinLogLevel(String): LoggerConfiguration 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ..Launched..
 | 
				
			||||||
 | 
					    // entrypoint
 | 
				
			||||||
 | 
					    OnLaunch()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // internal method
 | 
				
			||||||
 | 
					    CreateServices(): IServiceProvider
 | 
				
			||||||
 | 
					    // run migrations
 | 
				
			||||||
 | 
					    Updatedatabase(IServiceProvider): void
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					note left of App: Entrypoint
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class GlobalWrapper {
 | 
				
			||||||
 | 
					    Singleton
 | 
				
			||||||
 | 
					    Saves global application state.
 | 
				
			||||||
 | 
					    Basically a mix of a ton of
 | 
				
			||||||
 | 
					    stuff with no particular order. 
 | 
				
			||||||
 | 
					    Less of a wrapper, and more of util
 | 
				
			||||||
 | 
					    --attributes--
 | 
				
			||||||
 | 
					    ..status info..
 | 
				
			||||||
 | 
					    + LoginStatus: LoginStatusEnum
 | 
				
			||||||
 | 
					    + FileFolder: String
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ..server connection..
 | 
				
			||||||
 | 
					    + ClientTcpThread: ClientTcpThread
 | 
				
			||||||
 | 
					    --operations--
 | 
				
			||||||
 | 
					    ..File Handling / DB Interaction..
 | 
				
			||||||
 | 
					    + AddPictureToDb(Guid, Guid, String): foto
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ..server connection..
 | 
				
			||||||
 | 
					    + ConectToServer(): void
 | 
				
			||||||
 | 
					    + ReconnectToServer(int): void
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ..callbacks..
 | 
				
			||||||
 | 
					    + DownloadCallback(DownloadCallbackArgs): void
 | 
				
			||||||
 | 
					    + PictureGeneratedCallback(ImageGenerationCallbackArgs): void
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Config {
 | 
				
			||||||
 | 
					    Reads/Writes data using ConfigValue.Name as key
 | 
				
			||||||
 | 
					    Reading undefined key returns ConfigValue.Default.
 | 
				
			||||||
 | 
					    --
 | 
				
			||||||
 | 
					    config values
 | 
				
			||||||
 | 
					    ..
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class ConfigValues {
 | 
				
			||||||
 | 
					    Represents an identifier 
 | 
				
			||||||
 | 
					    for a config value
 | 
				
			||||||
 | 
					    also containing the default value.
 | 
				
			||||||
 | 
					    Values are READONLY STATIC
 | 
				
			||||||
 | 
					    --
 | 
				
			||||||
 | 
					    LOG_LEVEL
 | 
				
			||||||
 | 
					    LOG_RETAIN_DAYS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    FILE_FOLDER
 | 
				
			||||||
 | 
					    LOG_FOLDER
 | 
				
			||||||
 | 
					    ASSETS_FOLDER
 | 
				
			||||||
 | 
					    ...
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 ConfigValues "data" -- "accessor" Config:  > Reads values
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class DBManager {
 | 
				
			||||||
 | 
					    Singleton
 | 
				
			||||||
 | 
					    Saves information (paths, ...)
 | 
				
			||||||
 | 
					    of databases
 | 
				
			||||||
 | 
					    --
 | 
				
			||||||
 | 
					    --
 | 
				
			||||||
 | 
					    setClientErrorParams(String)
 | 
				
			||||||
 | 
					    setClientParams(String)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class CleanLocalStorageManager {
 | 
				
			||||||
 | 
					    Singleton
 | 
				
			||||||
 | 
					    Cleans local data if it
 | 
				
			||||||
 | 
					    exceeds value in the config
 | 
				
			||||||
 | 
					    --
 | 
				
			||||||
 | 
					    --
 | 
				
			||||||
 | 
					    // called from App
 | 
				
			||||||
 | 
					    CleanStorage(): void
 | 
				
			||||||
 | 
					    // computes file sizes
 | 
				
			||||||
 | 
					    IsThresholdExceeded(DirectoryInfo): bool
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DBManager .. App: initializes <
 | 
				
			||||||
 | 
					CleanLocalStorageManager .. App: triggers at startup <
 | 
				
			||||||
 | 
					App . Config: reads / writes <
 | 
				
			||||||
 | 
					App .. GlobalWrapper: sets fileFolder, connectToServer <
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@enduml
 | 
				
			||||||
		Reference in New Issue
	
	Block a user