Giter Club home page Giter Club logo

ta.usno.extractor's People

Contributors

nameofthedragon avatar

Watchers

 avatar  avatar

ta.usno.extractor's Issues

Create ASCOM LocalServer template project

Daniel VanNoord has proposed a change to the LocalServer pattern where drivers are no longer placed in separate projects but are instead embedded directly within the LocalServer. This offers some advantages. There is also need for a new ASCOM driver template and this project may be a useful starting point.

The goal of this epic is to re-shape the Arduino Power Controller project to see if it can become a suitable driver template.

Extraction fails if file already exist

C:\Users\fernj\source\repos\ta.usno.extractor\BuildOutput\Debug\Extractor\TA.Usno.Extractor.exe --SourceDirectory "C:\Users\fernj\source\repos\ta.usno.extractor\BuildOutput\Debug\Extractor\TestData" --DestinationDirectory "C:\Users\fernj\source\repos\ta.usno.extractor\BuildOutput\Debug\Extractor\TestData\Test Output"
Zip Archive Bulk Extractor
Copyright 2019 Tigra Astronomy, all rights reserved.
Extractor running...
Source directory: C:\Users\fernj\source\repos\ta.usno.extractor\BuildOutput\Debug\Extractor\TestData
Destination directory: C:\Users\fernj\source\repos\ta.usno.extractor\BuildOutput\Debug\Extractor\TestData\Test Output
Delete archives: False
Extracting C:\Users\fernj\source\repos\ta.usno.extractor\BuildOutput\Debug\Extractor\TestData\145.zip, 5 entries
System.IO.IOException: The file 'C:\Users\fernj\source\repos\ta.usno.extractor\BuildOutput\Debug\Extractor\TestData\Test Output\145\b1451.cat' already exists.
at System.IO.FileStream.ValidateFileHandle(SafeFileHandle fileHandle)
at System.IO.FileStream.CreateFileOpenHandle(FileMode mode, FileShare share, FileOptions options)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean useAsync)
at System.IO.Compression.ZipFileExtensions.ExtractToFile(ZipArchiveEntry source, String destinationFileName, Boolean overwrite)
at System.IO.Compression.ZipFileExtensions.ExtractRelativeToDirectory(ZipArchiveEntry source, String destinationDirectoryName, Boolean overwrite)
at System.IO.Compression.ZipFileExtensions.ExtractToDirectory(ZipArchive source, String destinationDirectoryName, Boolean overwriteFiles)
at System.IO.Compression.ZipFileExtensions.ExtractToDirectory(ZipArchive source, String destinationDirectoryName)
at TA.Usno.Extractor.ExtractorApplication.ExtractOne(String zipName, String destinationDirectory) in C:\Users\fernj\source\repos\ta.usno.extractor\TA.Usno.Extractor\ExtractorApplication.cs:line 125
at TA.Usno.Extractor.ExtractorApplication.ExtractOne(String zipName, String destinationDirectory) in C:\Users\fernj\source\repos\ta.usno.extractor\TA.Usno.Extractor\ExtractorApplication.cs:line 127

Originally created at 05/09/2019 22:28:44 by Fern Hughes as a bug with severity major.

Add a graphical user interface

It would be nice to have a GUI that offers the following features:

  1. Text input box plus browse button for the Source Directory
  2. Text input box and browse button for the Destination Directory
  3. Checkbox to specify that the archives should be deleted after extraction (default = unchecked)
  4. A button to start the extraction process.

Remember the source and destination directories by saving in Application Settings, but always set the checkbox to Unchecked every run.

When the Extract button is clicked, perform the following checks before starting the extraction.

  1. Destination Directory - for the extraction to work this must exist and should ideally be empty. So:

    1. If it doesn’t exist, prompt the user and offer to create it.
    2. If it exists and is empty, then you;re good to go; start extracting without further ado.
    3. if it exists but is not empty, prompt the user for confirmation before starting the extraction:
      The destination directory is not empty - possible data loss. Do you want to procees? (Yes/No)

Once all the checks have passed, build the appropriate command line and start the bulk extractor in a new process. While the extraction is running, make sure the user has a way to cancel it with a Cancel button.

Controls should only be enabled when they are valid and disabled otherwise.

Extra Credit: It is always good to display a Confidence Indication during a long running operation. So while the extraction process is running, we should try to show the user that somethign is happening. There are many ways you could do this, but here are a few ideas:

  • Show the “wait” cursor
  • Monitor the destination directory and show a count of the number of files extracted so far. If you can work out ahead of time how many files you expect to be processed, then you could show a progress bar.
  • Capture the console output from the running extractor process and display the output in a Console Control.

Remember the golden rule of user interface design: Thou shalt not block the UI thread, for any reason, ever. The user should always be able to click Cancel and move/resize/minimize/restore the UI while the extraction process is running. You may find this class helpful.

Originally created at 17/08/2019 02:28:24 by Tim Long as a enhancement with severity major.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.