private void DecompressBtn_Click(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrEmpty(FileUrl))
            {
                MessageBox.Show($"File not selected", "Select File",
                                MessageBoxButton.OK, MessageBoxImage.Error);
            }
            else if (LoadedCodesTxtBlck.Text == "none")
            {
                MessageBox.Show($"Codes not selected", "Select Codes",
                                MessageBoxButton.OK, MessageBoxImage.Error);
            }
            else if (Path.GetExtension(FileUrl) != ".huff")
            {
                MessageBox.Show($"Wrong File Extension", "Wrong Extension",
                                MessageBoxButton.OK, MessageBoxImage.Error);
            }
            else
            {
                byte[] DecompressedFile = HuffmanCoderMethods.DecompressFile(HuffmanCode, FileUrl);
                if (DecompressedFile != null)
                {
                    MessageBox.Show($"File Decompressed", "Success",
                                    MessageBoxButton.OK, MessageBoxImage.Information);

                    SaveFileDialog saveFileDialog = new SaveFileDialog
                    {
                        Title    = "Save Decompressed File",
                        FileName = $"{FileName}"
                    };
                    saveFileDialog.ShowDialog();
                    if (string.IsNullOrEmpty(saveFileDialog.FileName))
                    {
                        return;
                    }
                    File.WriteAllBytes(saveFileDialog.FileName, DecompressedFile);
                }
                else
                {
                    MessageBox.Show($"Decompression Failed", "Fail",
                                    MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
        }
        private void CompressBtn_Click(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrEmpty(FileUrl))
            {
                MessageBox.Show($"File not selected", "Select File",
                                MessageBoxButton.OK, MessageBoxImage.Error);
            }
            else if (LoadedCodesTxtBlck.Text == "none")
            {
                MessageBox.Show($"Codes not selected", "Select Codes",
                                MessageBoxButton.OK, MessageBoxImage.Error);
            }
            else
            {
                byte[] compressedFile = HuffmanCoderMethods.CompressFile(HuffmanCode, FileUrl);
                if (compressedFile != null)
                {
                    MessageBox.Show($"File Compressed", "Success",
                                    MessageBoxButton.OK, MessageBoxImage.Information);

                    SaveFileDialog saveFileDialog = new SaveFileDialog
                    {
                        Filter   = "Huff files|*.huff",
                        Title    = "Save Compressed File",
                        FileName = $"{FileName}.huff"
                    };
                    saveFileDialog.ShowDialog();
                    if (string.IsNullOrEmpty(saveFileDialog.FileName))
                    {
                        return;
                    }
                    File.WriteAllBytes(saveFileDialog.FileName, compressedFile);
                }
                else
                {
                    MessageBox.Show($"Compression Failed", "Fail",
                                    MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
        }
 public void CreateHuffmanCodes(string path)
 {
     BinaryCodes = HuffmanCoderMethods.CreateHuffmanCodes(path);
 }