private void LoadButton_Click(object sender, RoutedEventArgs e)
        {
            (Sequencer.ClockSequence as ClockSequence)?.Stop();

            var openFileDialog = new OpenFileDialog
            {
                Filter = "XML files (*.xml)|*.xml"
            };

            if (openFileDialog.ShowDialog() != true)
            {
                return;
            }
            var serializer = new XmlSerializer(typeof(SequencerEntity));

            var aFile  = new FileStream(openFileDialog.FileName, FileMode.Open);
            var buffer = new byte[aFile.Length];

            aFile.Read(buffer, 0, (int)aFile.Length);
            var stream = new MemoryStream(buffer);

            try
            {
                var entity = (SequencerEntity)serializer.Deserialize(stream);
                Sequencer.Deserialize(entity);

                CurrentFileText.Text = openFileDialog.FileName;
            }
            catch (CorruptedFileException corruptedFileException)
            {
                MessageBox.Show(corruptedFileException.Message,
                                "Cannot load file", MessageBoxButton.OK, MessageBoxImage.Error);
                Debug.WriteLine(corruptedFileException.Message);
            }
            catch (Exception exception)
            {
                MessageBox.Show(Properties.Resources.Cannot_deserialize_specified_file__exception__
                                + exception.Message,
                                "Cannot load file", MessageBoxButton.OK, MessageBoxImage.Error);
                Debug.WriteLine(Properties.Resources.Cannot_deserialize_specified_file__exception__
                                + exception.Message);
            }
            finally
            {
                aFile.Close();
            }
        }