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; }
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); }