Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Source code maintenance + bug fixes + features (#25)
* Minor update to DatabaseView designer. * Fixed #15 Cause for app hang was due to a deadlock while creating connections (ex: waiting for Initialization when called by the Init func). Added new CreateInitialConnection which does not check if the database was initialized and InsertDefaultTables uses the connection instead of null. * Fixed #16 first point - release image handle when done * Clear DPFiles at start & fix file handle leak Fixed the issue where the zip archive file handle was not released even when done; call ReleaseArchiveHandles() at the end of ProcessArchive. Updated 7zArchive to kill the 7z process tree if it still exists. * try..catch..me...if..you..can for all archives try catch ReadMetaFiles, ReadContentFiles and others. * Added sorting combo & functionality. * Order by product name not case sensitive, update limit offset for library queries. * added some remove right click action for library items. * updated remove actions for product record form remove now ask for confirmation remove product is implemented and more advanced than the one on library item. * fix compiler error * fixed noImageFound replaced with random image * Changed logo & app appearance and implemented minor UI perf increase. * Update nuget packages * Added new UpdateProductRecord() & UpdateExtractionRecord() along with helper funcs and proprogating changes across DPDatabase * added delegate w/ 5 args * Added functionality to modify product records in the product record form. Note: Doesn't successfully save. * i have no idea what this is. * added new RestoreTriggers() and TempDeleteTriggers() * fixed RemoveValuesWithCondition(), removed transaction?.Dispose() from finally, typo fixes * removed additional update invocations TableUpdated and ProductRecordModified() already invokes the event, no need for it twice. * Updated UpdateRecordQ() * Fixed #19 - explictly unregister form when closed * Added new properties for DPAbstractFile Also removed FileName for DPAbstractArchive since it will be covered by DPAbstractFile. * Addressed #18, still needs work as content folders are being targetted to DAZ directory root folder. Added new CalculateChildRelativePath() and CalculateChildRelativeTargetPath() funcs for DPFolder. Added GetTargetPath() and propogated changes from DPFolder onto here for DPProcessor. * Remove Queue tab temporarily; still in designer. * fixed missing mutex for app * Minor UI adjustment to DB viewer Anchored button and combobox to the right. * Removed tool strip and other unused UI elements. * Added about form, logo links to about form * slight fix for out of bounds exception thrown here * Added new settings * Settings is now using JSON.Net & using serialization * fixed NoImageFound property returning null * Addresses #21 - tags, etc now have char limits Tags, Product Name, Author, SKU, Folders, Files, errored files, now have char limits. * minor ui change - modified text anchor * fixed settings invalid messasge always showing up * fixed length of n + 1 instead of n * Prevent >70 char limit for tags * Disable thumbnail strip if no image is shown. * update version * remove invalid folder * Split up project into multiple NOTE: You will not be able to build at this commit. * rename namespaces, setup dependencies, and more NOTE: You will not be able to build at this commit. * Split up UsefulFuncs.cs, removed ArrayHelper, Up in PathHelper * moved namespace to DAZ_Installer.Core * moved namespace to DAZ_Installer.Core.External * added some vars from DPCommon into Program * prepared for removal of associations from DPAbstractFile - Flipped dictionary keys and valeus - Now use nodes and listviewitem tags. - Added additional condition for 'Select in hierachy' visibility for list view. - Added select in file list view action. * Added new DPProcessSettings * fuck it just upload everything * Addressed destination not enough space infinite loop when cancelled. * Added new properties to MockedDPIOContext due to some weird NSubstitute errors * Updated ProcessArchiveTest_OutOfStorage to now pass. * Replace NSubstitute with Moq and proprogate changes. Moved Fakes to Test projects instead. * Splitting up DPProcessor - added tag provider module Created new AbstractTagProvider and it's default implementation DPTagProvider. Propogated changes to DPProcessor. * Splitting up DPProcessor - added destination determiner Created an abstract destination determiner to determine which files get extracted and to where. Created it's default implentation at DPDestinationDeterminer. Propogated changes. * got rid of some ugly try-catch blocks * Minor logging update to DPProcessor. * Update SetupProcessor to provide fake DestinationDeterminer and TagProvider * Try-Catch everything in processArchievInternal. * add documentation to (Destination/Temp)HasEnoguhSpace functions * Relay extractor extract progress event * Add testing for processing archive after process. * ._. * Create dotnet-test.yml * delete extra iotests. * cancellation token update (not working atm) * Remove unused variables. * Made adjustments to DPProcessorErrorArgs for clarity. * Clarity for DPArchiveEnterArgs * Added func to skip archives * Update to make extractors cancelable. * Removed redundant CancellationToken. * Process archives iteratively (vs recursively) * Add support for cancelling archive and processing entirely. * Remove skip variable * Add CancellationToken * Make interface for DPDatabase. * Update database to be more async friendly. * Remove unnecessary parameter for ProductRecordAdded * Added locks to DPTaskManager * Return task for RemoveProductRecord. * Update IDPDatabase documentation * Add task execute sequentially helper method. * Add DPDatabase tests. * Fix compile errors. * Fix StringWriter import error. * Update app name to Product Manager for DAZ Studio to avoid trademark and other legal issues :) * fix unintentional hiding for Scope * Search for normalized path of current rar file. * Add test subjects for integration testing. * Fix RAR not extracting files split in multi-volume. * Update test subjects * Skip testing files that are directories. * Always copy test subjects to output directory. * Upload integration tests for RAR Extractor * Check for cancellation at start of readheader loop. This is needed to pass the "PeekTest_CancelledDuringOp" test. But also, it's just better to check for cancellation first thing. * Delete src.rar * Add support for Git LFS in dotnet-test.yml * Cache Nuget Packages, change dotnet version, cd to dir * Cache Nuget Packages, cd to dir before test run * figure out this github action weirdness * Remove action, remove warnings, and update verbosity. * Add logging to figure out github actions weridness * fix dotnet cmd * fix dotnet cmd * add logging to solve this mystery * change verbosity again. * update dotnet-test * Add support for Git LFS in dotnet-test.yml * Update to copy always * Addresses #24 - NormalizePath doesnt trim drive letters * Fix #24 - updated path calculation logic. * Remove duplicate WinApp project. * Update README.md * Rename app * get rid of comment * Fix creating incorrect directory * Implement 7z extractor integration tests * Remove unnecessary test. * Implement zip archive integration tests * More reliable Peek, Extract, and Move events. * Moved stream test helpers * Added new GetRootDirectory() * Fixed relative path issues * fixed destination determiner + add tests * Remove DPIDManager class * Make streams more customizable * Fix bug, add content type as tag, add tests * make helper methods private * Fix this. * Fix logic bugs * change security for constants * Remove extracted check + add comment * Add integration testing for DPProcessor * Add testing for DPDazFile * Add testing for DPDSXFile * Downgrading NuGet packages * Make TargetPath setter public. * Fixed rar extractor extracting incorrectly for select files Fixed DPRarExtractor from extracting other files instead of the selected files if not all of the files were being extracted. * Added tests for partial extraction * Fixed subarchive duplication in destination determiner. * Fixed RAR extractor throwing archive corrupt errors Fixed the RAR extractor throwing archive corrupt errors and added tests and updated FakeRAR based on new findings. If the current mode is Extract, then a Test, Extract, or Skip must be called after calling ReadHeader(), otherwise "Archive is corrupt" will be the exception thrown. * Extract DSX Files instead of DazFiles * Fix path is null exception in ExtractedToTarget * Fix subarchives not being processed + scope fix Moved adding the subarchives to process at the end instead of beginning. Removed combining the destination path with the content folder and redirects since the manifest can skip this behavior since the content folders are for when a manifest does not exist. * fixed subarchives having empty TargetPath + typo If Automatic was an InstallOption, the filePathPart would always be empty since no overridePath is being provided and RelativeTargetPath is empty since the archive is not in a content folder, but is targeted by the algorithm. The subarchives would have an incorrect path only returning the temp path. Additionally, in the DetermineViaFileSense the parent archive's TargetPath was accidentially being set to the child's TargetPath which was incomplete. This resulted in the subarchive having an empty TargetPath. * Created new Testing Suite tool * Target x64 only * Setup real data testing for DPProcessor * Remove logging * Complete real data testing * addressed handling encrypted 7z archives * implement cancel + updated ui responsiveness * fixed not handling encrypted headers correctly * adjust xcopy parameters * fixed success percentage. * Make processor more responsive to cancellations. * update dpprocessor logging * update success method, emit error for bad archive * add more default redirects * update documentation * fix anchor for tabcontrol & cancel not working * added hopefully a working PostPublish target * fix issue with xcopy * remove source files subject to delete action * update archive names after the extract job finished * extract ui optimizations + documentation * use SetProgressBarValue instead * Invoke on CreateProgressCombo. * use calc instead of ref. * remove check if marque is already set * better RecursivelyGetControls func (might remove) * remove useless func * add cancellation support Replaced DPProgressCombo with an actual UserConrtol ProgressCombo. * auto switch page on file drag * ref app info in assembly
- Loading branch information