Exemplo n.º 1
0
        public override CommandFilterModel Filter(string[] args)
        {
            // Argument does not contain any information that can be used
            // to construct VersionUpdateCommand.
            if (args == null || args.Length == 0)
            {
                return(null);
            }

            var filteredArgs       = args;
            var versionUpdateModel = new VersionUpdateModel();

            // Extract the version update value, e.g. 0.1
            // TODO: Use observer (event) based trigger to notify information capture.
            filteredArgs = FilterArgs(filteredArgs, arg =>
            {
                if (arg.StartsWith("+") || arg.StartsWith("-"))
                {
                    versionUpdateModel.Increment     = arg.StartsWith("+");
                    versionUpdateModel.VersionUpdate = _assemblyVersionParser.Parse(arg.Substring(1));
                    return(true);
                }

                return(false);
            });

            // Extract the target value, e.g. fileVersion
            filteredArgs = FilterArgs(filteredArgs, arg =>
            {
                if (arg.StartsWith("-f"))
                {
                    versionUpdateModel.IsFileVersion = true;
                    return(true);
                }

                return(false);
            });

            // Extract the path value, e.g. Properties\AssemblyInfo.cs
            filteredArgs = FilterArgs(filteredArgs, arg =>
            {
                if (arg.StartsWith("-path="))
                {
                    versionUpdateModel.AssemblyInfoPath = arg.Substring("-path=".Length);
                    return(false);
                }

                return(false);
            });

            return(new CommandFilterModel
            {
                Command = new VersionUpdateCommand(versionUpdateModel, _assemblyVersionReaderFactory, _assemblyVersionWriterFactory),
                Args = filteredArgs
            });
        }
Exemplo n.º 2
0
        public VersionUpdateCommand(VersionUpdateModel versionUpdateModel,
                                    Func <string, IAssemblyVersionReader> assemblyVersionReaderFactory,
                                    Func <string, IAssemblyVersionWriter> assemblyVersionWriterFactory)
        {
            if (versionUpdateModel == null)
            {
                throw new ArgumentNullException(nameof(versionUpdateModel));
            }
            if (string.IsNullOrEmpty(versionUpdateModel.AssemblyInfoPath))
            {
                versionUpdateModel.AssemblyInfoPath = DefaultAssemblyInfoPath;
            }

            _versionUpdateModel           = versionUpdateModel;
            _assemblyVersionReaderFactory = assemblyVersionReaderFactory;
            _assemblyVersionWriterFactory = assemblyVersionWriterFactory;
        }