예제 #1
0
            public void Apply(IServiceProvider serviceProvider)
            {
                var settings = serviceProvider.GetService <IOptions <Settings> >().Value;

                if (Host.HasValue())
                {
                    settings.Admin.Host = Host.Value();
                }

                if (OutputFolder.HasValue())
                {
                    settings.OutputFolder = OutputFolder.Value();
                }

                if (Port.HasValue())
                {
                    settings.Admin.Port = int.Parse(Port.Value());
                }

                settings.DryRun = DryRun.HasValue();

                if (InputFolder.HasValue())
                {
                    settings.InputFolder = InputFolder.Value();
                }
            }
예제 #2
0
            public ExitCode?Validate()
            {
                if (!Host.HasValue())
                {
                    return(ExitCode.MissingHost);
                }

                if (!Port.HasValue())
                {
                    return(ExitCode.MissingPort);
                }

                if (!int.TryParse(Port.Value(), out var port) || port > MaxPort || port < MinPort)
                {
                    return(ExitCode.InvalidPort);
                }

                if (InputFolder.HasValue() && OutputFolder.HasValue())
                {
                    return(ExitCode.IncompatibleArguments);
                }

                if (!InputFolder.HasValue() && !OutputFolder.HasValue())
                {
                    return(ExitCode.IncompatibleArguments);
                }

                return(null);
            }