public IEnumerable<ReleaseFeedItem> GetAllCurrentReleases(ReleaseFeedOptions options)
        {
            var results = new Dictionary<string, ReleaseFeedItem>();

            try
            {
                // NOTE: I know that this marged this concept isn't the best but it means we can do all lookups in Parallel
                Parallel.ForEach(options.GetMergedOptions(), x =>
                {
                    IEnumerable<ReleaseFeedItem> found = null;
                    if (x.Type == ReleaseFeedOptions.ReleaseFeedOptionsMergedTypes.Specific)
                        found = GetAllReleasesForSpecific(x.Value);
                    else if (x.Type == ReleaseFeedOptions.ReleaseFeedOptionsMergedTypes.Depends)
                        found = GetAllReleasesForDepends(x.Value);
                    else
                        throw new NotSupportedException("Type was out of range");

                    MergeResults(found, results);
                }); 
            }
            catch (Exception e)
            {
                //Not doing anything because we want to try and recover from this
            }

            return results.Values;
        }
        public IEnumerable <ReleaseFeedItem> GetAllCurrentReleases(ReleaseFeedOptions options)
        {
            var results = new Dictionary <string, ReleaseFeedItem>();

            try
            {
                // NOTE: I know that this marged this concept isn't the best but it means we can do all lookups in Parallel
                Parallel.ForEach(options.GetMergedOptions(), x =>
                {
                    IEnumerable <ReleaseFeedItem> found = null;
                    if (x.Type == ReleaseFeedOptions.ReleaseFeedOptionsMergedTypes.Specific)
                    {
                        found = GetAllReleasesForSpecific(x.Value);
                    }
                    else if (x.Type == ReleaseFeedOptions.ReleaseFeedOptionsMergedTypes.Depends)
                    {
                        found = GetAllReleasesForDepends(x.Value);
                    }
                    else
                    {
                        throw new NotSupportedException("Type was out of range");
                    }

                    MergeResults(found, results);
                });
            }
            catch (Exception e)
            {
                //Not doing anything because we want to try and recover from this
            }

            return(results.Values);
        }