private void MajorReleaseSelector_Click(object sender, RoutedEventArgs e)
        {
            // do a sanity check to make sure we have items and it's instantiated
            //
            if (_majorMinorReleasesBase == null || _majorMinorReleasesBase.Count() == 0)
            {
                return;
            }

            // cache the count of items
            //
            int MajorReleasesCount = _majorMinorReleasesBase.Count();

            // retrieve the current item (button text)
            //
            string CurrentMajorRelease = MajorReleaseSelector.Content.ToString();
            // look for this in the collection
            //
            int CurrentReleaseIdx = _majorMinorReleasesBase.ToList <VersionInfoConsumer>().FindIndex(m => m.FriendlyNameLong == CurrentMajorRelease);
            int NewReleaseIdx;

            // take the appropriate action to set the new index depending
            // on where the current index is and the legitimacy for the
            // next item
            //
            if (CurrentReleaseIdx < 0)
            {
                return;
            }
            else if (CurrentReleaseIdx == MajorReleasesCount - 1)
            {
                NewReleaseIdx = 0;
            }
            else
            {
                NewReleaseIdx = CurrentReleaseIdx + 1;
            }

            // cache the next major release to show
            //
            VersionInfoConsumer NextReleaseToShow = _majorMinorReleasesBase.ToList <VersionInfoConsumer>()[NewReleaseIdx];

            // set the button's text to now reflect the *next* item
            //
            MajorReleaseSelector.Content = NextReleaseToShow.FriendlyNameLong;

            // retrieve the data and display accordingly
            //
            SetOldestSupportedRelease(GetOldestSupportedRelease(NextReleaseToShow.Major, NextReleaseToShow.Minor));
            SetNewestSupportedRelease(GetNewestSupportedRelease(NextReleaseToShow.Major, NextReleaseToShow.Minor));
        }
        private void SetMajorReleaseSelector()
        {
            if (_majorMinorReleasesBase == null || _majorMinorReleasesBase.Count() == 0)
            {
                return;
            }

            VersionInfoConsumer FirstToDisplay = _majorMinorReleasesBase.ToList <VersionInfoConsumer>()[0];

            MajorReleaseSelector.Content = FirstToDisplay.FriendlyNameLong;

            SetOldestSupportedRelease(GetOldestSupportedRelease(FirstToDisplay.Major, FirstToDisplay.Minor));
            SetNewestSupportedRelease(GetNewestSupportedRelease(FirstToDisplay.Major, FirstToDisplay.Minor));
        }
        private void SetNewestSupportedRelease(VersionInfoConsumer versionInfoConsumer)
        {
            if (versionInfoConsumer == null)
            {
                _newestSupportedVersion = null;
                MostRecentName.Content  = "none";
                MostRecentDesc.Text     = "";
                return;
            }

            _newestSupportedVersion = versionInfoConsumer;
            MostRecentName.Content  =
                string.Format("{0} ({1}.{2}.{3}.{4})",
                              versionInfoConsumer.FriendlyNameShort,
                              versionInfoConsumer.Major,
                              versionInfoConsumer.Minor,
                              versionInfoConsumer.Build,
                              versionInfoConsumer.Revision);

            MostRecentDesc.Text = versionInfoConsumer.FriendlyNameLong;
        }
        private async void GoSearch_Click(object sender, RoutedEventArgs e)
        {
            // if the data is not valid or there then short circuit and
            // show an error message
            //
            if (!IsAllDataAvailableAndValid())
            {
                HideResultData();
                ClearResultData();
                DisplayMessage("invalid data!", MessageType.Error);
                return;
            }

            // turn on the progress bar
            //
            ProgressIndicator.Visibility = Visibility.Visible;

            VersionInfoConsumer ResultVersion = await DataRetriever.GetVersionInfoAsync(
                Convert.ToInt32(MajorInput.Text),
                Convert.ToInt32(MinorInput.Text),
                Convert.ToInt32(BuildInput.Text),
                Convert.ToInt32(RevisionInput.Text)
                );

            if (ResultVersion != null)
            {
                ShowResultData(ResultVersion);
            }
            else
            {
                DisplayMessage("not found", MessageType.Information);
                HideResultData();
                ClearResultData();
            }

            // turn off the progress bar
            //
            ProgressIndicator.Visibility = Visibility.Collapsed;
        }