示例#1
0
        internal ISnapAppChannelReleases GetReleases([NotNull] SnapApp snapApp, [NotNull] string channelName)
        {
            if (snapApp == null)
            {
                throw new ArgumentNullException(nameof(snapApp));
            }
            if (channelName == null)
            {
                throw new ArgumentNullException(nameof(channelName));
            }

            var channel = snapApp.Channels.SingleOrDefault(x => x.Name == channelName);

            if (channel == null)
            {
                throw new Exception($"Unknown channel: {channelName}");
            }

            var snapAppReleases        = GetReleases(snapApp);
            var snapReleasesForChannel = snapAppReleases.Where(x => x.Channels.Contains(channelName)).Select(x => x);

            return(new SnapAppChannelReleases(snapApp, channel, snapReleasesForChannel));
        }
示例#2
0
        internal ISnapAppReleases GetMostRecentReleases([NotNull] SnapApp snapApp, [NotNull] Func <SnapRelease, bool> filterFunc)
        {
            if (snapApp == null)
            {
                throw new ArgumentNullException(nameof(snapApp));
            }
            if (filterFunc == null)
            {
                throw new ArgumentNullException(nameof(filterFunc));
            }
            var snapAppReleases = Releases.Where(x => x.Id == snapApp.Id).ToList();

            var mostRecentRelease = snapAppReleases.LastOrDefault();

            if (mostRecentRelease == null)
            {
                return(new SnapAppReleases(snapApp, new List <SnapRelease>()));
            }

            var mostRecentReleaseForRid = snapAppReleases
                                          .Where(x => x.Version == mostRecentRelease.Version && filterFunc(x)).ToList();

            return(new SnapAppReleases(snapApp, mostRecentReleaseForRid));
        }