private void InitTidalLib()
        {
            var initTidal = new Tidal();

            TidalController = new TidalController();

            TidalController.ApiRequest <CountryModel>("/country/");
            TidalController.ApiRequest <LoginModel>($"/login/username?countryCode={TidalController.Tidal.CountryModel.CountryCode}", TidalController.RequestType.Post, $"username={Configuration.ConfigData.Login.TidalUserName}&password={Configuration.HashUtility.DecryptHash(Configuration.ConfigData.Login.TidalPassword)}");
            TidalController.ApiRequest <UsersSubscriptionsModel>($"/users/{TidalController.Tidal.LoginModel.UserId}/subscription?sessionId={TidalController.Tidal.LoginModel.SessionId}&countryCode={TidalController.Tidal.CountryModel.CountryCode}");
            TidalController.ApiRequest <FeaturedAlbumsModel>($"/featured/new/albums?limit=100&sessionId={TidalController.Tidal.LoginModel.SessionId}&countryCode={TidalController.Tidal.CountryModel.CountryCode}");

            var featureAlbumsDataTabel = Configuration.ToDataTable(TidalController.Tidal.FeaturedAlbumsModel.Items);

            DataGridTopAlbums.ItemsSource = featureAlbumsDataTabel.AsDataView();
        }
        private void ButtonSaveSettings_Click(object sender, RoutedEventArgs e)
        {
            Configuration.ConfigData.Login.TidalUserName = TextBoxEmail.Text;
            Configuration.ConfigData.Login.TidalPassword = string.IsNullOrEmpty(TextBoxPassword.Password) ? string.Empty : Configuration.HashUtility.CreateHash(TextBoxPassword.Password);

            Configuration.ConfigData.Theme.ThemePrimaryColor = EnumUtils.Parse <AvailablePrimaryColors>(ComboBoxThemeStyle.Text);

            if (CheckBoxIsDark.IsChecked != null)
            {
                Configuration.ConfigData.Theme.IsDark = CheckBoxIsDark.IsChecked.Value;
            }

            GetLibDirectory();
            Configuration.ConfigData.Lib.LibDirectory = TextBoxLibDir.Text;

            Configuration.ConfigData.Downloads.DownloadLimit = int.Parse(TextBoxConcurrentDownloads.Text);

            Configuration.SaveConfig();
        }
        private void WindowTidalDownloader_Initialized(object sender, EventArgs e)
        {
            Configuration = new Configuration();

            if (!string.IsNullOrEmpty(Configuration.ConfigData.Login.TidalUserName) && !string.IsNullOrEmpty(Configuration.ConfigData.Login.TidalPassword))
            {
                TextBoxEmail.Text        = Configuration.ConfigData.Login.TidalUserName;
                TextBoxPassword.Password = Configuration.HashUtility.DecryptHash(Configuration.ConfigData.Login.TidalPassword);
                InitTidalLib();
            }
            else
            {
                DataGridTopAlbums.Visibility       = Visibility.Hidden;
                TabControlDownloader.SelectedIndex = 1;
            }

            ComboBoxThemeStyle.ItemsSource = Enum.GetValues(typeof(AvailablePrimaryColors));
            CheckBoxIsDark.IsChecked       = Configuration.ConfigData.Theme.IsDark;

            var configThemePrimaryColor = Configuration.ConfigData.Theme.ThemePrimaryColor;
            var isDark = Configuration.ConfigData.Theme.IsDark;

            ChangeAppStyle(configThemePrimaryColor, isDark);
            ComboBoxThemeStyle.Text = configThemePrimaryColor.ToString();

            Configuration.ConfigData.Lib.LibDirectory = GetLibDirectory();
            TextBoxLibDir.Text = Configuration.ConfigData.Lib.LibDirectory;

            TextBoxDownloadsDirectory.IsReadOnly = true;
            TextBoxDownloadsDirectory.Text       = Configuration.ConfigData.Downloads.DownloadDirectory;

            TextBoxConcurrentDownloads.Text = Configuration.ConfigData.Downloads.DownloadLimit.ToString();

            Configuration.SaveConfig();

            _isInitialized = true;
        }