Beispiel #1
0
        private PlasticTask ConvertToTask(Card card)
        {
            PlasticTask result = null;

            if (card != null)
            {
                CheckExistsUsersCache();
                // If the plastic user is in the asignments list, assume he is the owner
                var            currentUserMail = configuration.GetValue(KEY_USER);
                var            currentUser     = card.Assignments.Find(assignee => usersCache.ContainsKey(assignee.UserId) && usersCache[assignee.UserId].Email == currentUserMail);
                CardAssignment firstPending    = null;
                if (currentUser == null)
                {
                    firstPending = card.Assignments.Find(assignee => !assignee.Completed);
                    if (firstPending == null && card.Assignments.Count > 0)
                    {
                        firstPending = card.Assignments[0];
                    }
                }
                var    owner    = currentUser != null ? currentUser : firstPending;
                string userMail = owner != null && usersCache.ContainsKey(owner.UserId) ? usersCache[owner.UserId].Email : "unknown";
                var    column   = FindColumn(card);
                string status   = column != null ? column.Name : "unknown";
                result = new PlasticTask
                {
                    Description = GetDescription(card),
                    Title       = card.Name,
                    Owner       = userMail,
                    Id          = card.SequentialId.ToString() + GetSuffix(),
                    Status      = status,
                    CanBeLinked = owner != null && !owner.Completed
                };
            }
            return(result);
        }
        public PlasticTask hydratePlasticTaskFromIssue(Issue pIssue)
        {
            if (pIssue == null)
            {
                throw new ArgumentNullException("pIssue");
            }

            var result = new PlasticTask();

            result.Id = pIssue.Id;
            var title = pIssue.Summary;
            var state = pIssue.GetField("state").AsCollection().First();

            result.Title  = getBranchTitle(state, title);
            result.Status = state;

            try
            {
                result.Owner = getAssignee(pIssue).UserName;
            }
            catch (NullReferenceException)
            {
                result.Owner = "Unassigned";
            }

            if (pIssue.GetField("description") != null)
            {
                result.Description = pIssue.GetField("description").AsString();
            }

            result.CanBeLinked = true;
            return(result);
        }
        //done
        public PlasticTask GetPlasticTaskFromTaskID(string pTaskID)
        {
            mLog.DebugFormat("YouTrackHandler: GetPlasticTaskFromTaskID {0}", pTaskID);
            var result = new PlasticTask { Id = pTaskID };
            var requestURL = string.Format("{0}/rest/issue/{1}", mConfig.BaseURL, pTaskID);

            var xml = ConnectToYoutrack(requestURL);
            if (xml.Length > 0)
                result = BuildTaskFromXML(xml);

            return result;
        }
Beispiel #4
0
        public List <PlasticTask> LoadTasks(List <string> taskIds)
        {
            var result = new List <PlasticTask>();

            foreach (var taskId in taskIds)
            {
                PlasticTask loadedTask = _provider.FindSingleTaskById(taskId);
                if (loadedTask == null)
                {
                    continue;
                }
                result.Add(loadedTask);
            }

            return(result);
        }