private void ProfileButtonClicked(object parameters)
        {
            string str = parameters.ToString();

            switch (str)
            {
            case "SAVE":
                if (DownloadExtent == null || Levels == null || Levels.Length == 0)
                {
                    MessageBox.Show(App.Current.FindResource("msgDownloadProfileInvalid").ToString(), App.Current.FindResource("msgError").ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                Util.Envelope env    = new Util.Envelope(DownloadExtent.XMin, DownloadExtent.YMin, DownloadExtent.XMax, DownloadExtent.YMax);
                string        result = _configManager.SaveDownloadProfileWithOverwrite(new PBS.DownloadProfile(SelectedProfile, Levels, env, _downloadPolygon));
                if (result != string.Empty)
                {
                    MessageBox.Show(result, App.Current.FindResource("msgError").ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                break;

            case "LOAD":
                DownloadProfile profile = _configManager.LoadDownloadProfile(SelectedProfile);
                if (profile == null)
                {
                    MessageBox.Show(App.Current.FindResource("msgLoadFailed").ToString(), App.Current.FindResource("msgError").ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                _downloadPolygon = profile.Polygon;
                Levels           = profile.Levels;
                DownloadExtent   = new Envelope(profile.Envelope.XMin, profile.Envelope.YMin, profile.Envelope.XMax, profile.Envelope.YMax);
                _graphicsLayer.ClearGraphics();
                _graphicsLayer.Graphics.Add(new Graphic()
                {
                    Symbol = new SimpleFillSymbol()
                    {
                        BorderBrush = new SolidColorBrush(Colors.Red),
                        Fill        = new SolidColorBrush(Color.FromArgb(100, 255, 0, 0))
                    },
                    Geometry = profile.Polygon == null ? _webMercator.FromGeographic(DownloadExtent) : AppUtility.ConvertPBSPolygonToEsriPolygon(profile.Polygon)
                });
                (CMDClickStartButton as DelegateCommand).RaiseCanExecuteChanged();
                TilesCount = AppUtility.CalculateTileCount(Levels, (Envelope)_webMercator.FromGeographic(DownloadExtent));
                break;

            case "DELETE":
                _configManager.DeleteDownloadProfile(SelectedProfile);
                break;

            default:
                break;
            }
            Profiles = new ObservableCollection <string>(_configManager.GetAllDownloadProfileNames());
        }