コード例 #1
0
ファイル: Tag.cs プロジェクト: eatplayhate/versionr
        protected override bool RunInternal(object options)
        {
            TagVerbOptions localOptions = options as TagVerbOptions;

            Objects.Version ver = Workspace.GetPartialVersion(localOptions.Version);
            if (ver == null)
            {
                Printer.PrintMessage("#e#Error:## can't find version #b#\"{0}\"## for tag alteration.", localOptions.Version);
                return(false);
            }
            if (localOptions.TagsToAdd != null)
            {
                foreach (var x in localOptions.TagsToAdd)
                {
                    if (!x.StartsWith("#"))
                    {
                        Printer.PrintMessage("Can't add tag #b#{0}##. Tag is required to start with a \"\\#\"", x);
                        return(false);
                    }
                    if (x.Length == 1)
                    {
                        Printer.PrintMessage("Can't add an empty tag.");
                        return(false);
                    }
                }
            }
            if (localOptions.TagsToRemove != null)
            {
                foreach (var x in localOptions.TagsToRemove)
                {
                    if (!x.StartsWith("#"))
                    {
                        Printer.PrintMessage("Can't remove tag #b#{0}##. Tag is required to start with a \"\\#\"", x);
                        return(false);
                    }
                    if (x.Length == 1)
                    {
                        Printer.PrintMessage("Can't remove an empty tag.");
                        return(false);
                    }
                }
            }
            if (localOptions.TagsToAdd != null)
            {
                foreach (var x in localOptions.TagsToAdd)
                {
                    Workspace.AddTag(ver.ID, x.Substring(1));
                }
            }
            if (localOptions.TagsToRemove != null)
            {
                foreach (var x in localOptions.TagsToRemove)
                {
                    Workspace.RemoveTag(ver.ID, x.Substring(1));
                }
            }
            return(true);
        }