public static Options GetOptions(string[] args)
        {
            var options = new Options();
            ICommandLineParser parser = new CommandLineParser();
            try
            {
                if (!parser.ParseArguments(args, options))
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Error: was unable to parse some arguments");
                    Console.ResetColor();
                    Console.WriteLine(options.GetUsage());
                    Environment.Exit(-1);
                }
            }
            catch (ArgumentException ae)
            {
                if (ae.Message == "shortName")
                {
                    Console.Error.WriteLine("Short name attribute can't be NULL or Length > 1");
                }
            }

            if (string.IsNullOrWhiteSpace(options.Operation))
            {
                Console.WriteLine("Error parsing arguments: No <operation> option specified");
                Console.WriteLine(options.GetUsage());
                Environment.Exit(1);
            }
            return options;
        }
        public void Delete(Options options)
        {
            int[] taskIds = options.TfsIds;

            var kanbanizeTasks = _kanbanizeRepository.GetAllTasks();

            foreach (var task in kanbanizeTasks.Where(x => taskIds.Contains(x.TfsId ?? 0)))
            {
                _kanbanizeRepository.DeleteTask(task.Id);
            }
        }
        public void Add(Options options)
        {
            int[] taskIds = options.TfsIds;
            var workItems = tfsRepository.GetWorkItems(taskIds);
            var kanbanizeTasks = _kanbanizeRepository.GetAllTasks();

            foreach (var workItem in workItems.Where(x => kanbanizeTasks.All(y => y.TfsId != x.Id)))
            {
                string operationReslt = _kanbanizeRepository.CreateNewTask(workItem.ToKanbanizeTask(_configuration.TfsUri.ToString()));
                //string operationReslt = _kanbanizeRepository.CreateNewTask(workItem.ToKanbanizeTask(_configuration.TfsUri.ToString(), GetRelatedTaskTitles(workItem)));
            }
        }
        public void Update(Options options)
        {
            var kanbanizeTasks = _kanbanizeRepository.GetAllTasks();
            IEnumerable<KanbanizeTask> qualifiedTasks = kanbanizeTasks;
            if (options.KanbanizeIdStrings != null && options.KanbanizeIdStrings.Count > 0)
            {
                qualifiedTasks = qualifiedTasks.Where(x => options.KanbanizeIds.Contains(x.Id));
            }
            if (!String.IsNullOrWhiteSpace(options.SelectType))
            {
                qualifiedTasks = qualifiedTasks.Where(x => x.Type == options.SelectType);
            }
            if (!String.IsNullOrWhiteSpace(options.SelectNoTfsId))
            {
                qualifiedTasks = qualifiedTasks.Where(x => x.TfsId == null);
            }

            foreach (var kanbanizeTask in qualifiedTasks)
            {
                bool needUpdate = false;
                var updateTask = new KanbanizeTask {Id = kanbanizeTask.Id};
                if (!needUpdate && !String.IsNullOrWhiteSpace(options.UpdateColor) && kanbanizeTask.ColorString != ( "#" + options.UpdateColor))
                {
                    needUpdate = true;
                    updateTask.ColorString = options.UpdateColor;
                }

                if (!needUpdate && !String.IsNullOrWhiteSpace(options.UpdateType) && kanbanizeTask.Type != options.UpdateType)
                {
                    needUpdate = true;
                    updateTask.Type = options.UpdateType;
                }

                if (needUpdate)
                {
                    _kanbanizeRepository.UpdateTask(updateTask);
                }
            }

            /*
            int[] taskIds = options.TfsIds;
            var workItems = tfsRepository.GetWorkItems(taskIds);
            foreach (var workItem in workItems)
            {
                var kanbanizeTask = enumerable.FirstOrDefault(x => x.TfsId == workItem.Id);
                if (kanbanizeTask != null)
                {
                    //kanbanizeTask.UpdateByWorkItem(workItem);
                    _kanbanizeRepository.UpdateTask(kanbanizeTask);
                }
            }
             * */
        }