Beispiel #1
0
        public void ManualReturnsManual(
            string nickname,
            string manual,
            string newest)
        {
            var resp = new NugetsToUse(
                nickname,
                NugetVersioningEnum.Manual,
                manual,
                newest)
                       .TryGetVersioning();

            resp.Succeeded.Should().BeTrue();
            resp.Value.Should().Be(manual);
        }
Beispiel #2
0
        public GitNugetTargetingVm(
            ILogger logger,
            INewestProfileLibraryVersionsVm newest,
            IProfileVersioning versioning)
        {
            UpdateMutagenManualToLatestCommand = NoggogCommand.CreateFromObject(
                objectSource: newest.WhenAnyValue(x => x.NewestMutagenVersion),
                canExecute: v =>
            {
                return(Observable.CombineLatest(
                           this.WhenAnyValue(x => x.ManualMutagenVersion),
                           v,
                           (manual, latest) => latest != null && latest != manual));
            },
                execute: v => ManualMutagenVersion = v ?? string.Empty,
                extraCanExecute: this.WhenAnyValue(x => x.MutagenVersioning)
                .Select(vers => vers == PatcherNugetVersioningEnum.Manual),
                disposable: this);
            UpdateSynthesisManualToLatestCommand = NoggogCommand.CreateFromObject(
                objectSource: newest.WhenAnyValue(x => x.NewestSynthesisVersion),
                canExecute: v =>
            {
                return(Observable.CombineLatest(
                           this.WhenAnyValue(x => x.ManualSynthesisVersion),
                           v,
                           (manual, latest) => latest != null && latest != manual));
            },
                execute: v => ManualSynthesisVersion = v ?? string.Empty,
                extraCanExecute: this.WhenAnyValue(x => x.SynthesisVersioning)
                .Select(vers => vers == PatcherNugetVersioningEnum.Manual),
                disposable: this);

            ActiveNugetVersion = Observable.CombineLatest(
                versioning.WhenAnyValue(x => x.ActiveVersioning)
                .Switch(),
                this.WhenAnyValue(x => x.MutagenVersioning),
                this.WhenAnyValue(x => x.ManualMutagenVersion),
                newest.WhenAnyValue(x => x.NewestMutagenVersion),
                this.WhenAnyValue(x => x.SynthesisVersioning),
                this.WhenAnyValue(x => x.ManualSynthesisVersion),
                newest.WhenAnyValue(x => x.NewestSynthesisVersion),
                (profile, mutaVersioning, mutaManual, newestMuta, synthVersioning, synthManual, newestSynth) =>
            {
                var sb = new StringBuilder("Switching nuget targets");
                NugetsToUse mutagen, synthesis;
                if (mutaVersioning == PatcherNugetVersioningEnum.Profile)
                {
                    sb.Append($"  Mutagen following profile: {profile.Mutagen}");
                    mutagen = profile.Mutagen;
                }
                else
                {
                    mutagen = new NugetsToUse("Mutagen", mutaVersioning.ToNugetVersioningEnum(), mutaManual,
                                              newestMuta);
                    sb.Append($"  {mutagen}");
                }

                if (synthVersioning == PatcherNugetVersioningEnum.Profile)
                {
                    sb.Append($"  Synthesis following profile: {profile.Synthesis}");
                    synthesis = profile.Synthesis;
                }
                else
                {
                    synthesis = new NugetsToUse("Synthesis", synthVersioning.ToNugetVersioningEnum(),
                                                synthManual, newestSynth);
                    sb.Append($"  {synthesis}");
                }

                logger.Information(sb.ToString());
                return(new ActiveNugetVersioning(
                           Mutagen: mutagen,
                           Synthesis: synthesis));
            })
                                 .Select(nuget => nuget.TryGetTarget())
                                 .Replay(1)
                                 .RefCount();
        }