TicketImporter.TfsUsers.AssignUser C# (CSharp) Method

AssignUser() public method

public AssignUser ( User toAssign, Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItem workItem ) : void
toAssign User
workItem Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItem
return void
        public void AssignUser(User toAssign, WorkItem workItem)
        {
            if (toAssign.HasIdentity)
            {
                var assignedUser = (string) workItem[CoreField.AssignedTo];

                var matched = false;
                foreach (string tfsUser in workItem.Fields[CoreField.AssignedTo].AllowedValues)
                {
                    matched = toAssign.IsSameUser(tfsUser);
                    if (matched)
                    {
                        assignedUser = tfsUser;
                        break;
                    }
                }

                if (matched == false)
                {
                    if (String.IsNullOrWhiteSpace(defaultAsignee) == false)
                    {
                        assignedUser = defaultAsignee;
                    }
                    failedImpersonations.Add(toAssign);
                }
                workItem[CoreField.AssignedTo] = assignedUser;
            }
        }

Usage Example

Ejemplo n.º 1
0
        private WorkItem toWorkItem(Ticket toImport)
        {
            var tfs_impersonated = tfsUsers.ImpersonateDefaultCreator();

            if (tfsUsers.CanAddTicket(toImport.CreatedBy))
            {
                tfs_impersonated = tfsUsers.Impersonate(toImport.CreatedBy);
            }

            var workItemStore = (WorkItemStore)tfs_impersonated.GetService(typeof(WorkItemStore));
            var workItemTypes = workItemStore.Projects[project].WorkItemTypes;

            var workItemType = workItemTypes[toImport.TicketType];
            var workItem     = new WorkItem(workItemType);

            foreach (var fieldName in tfsFieldMap.Fields.EditableFields.
                     Where(fieldName => string.IsNullOrEmpty(fields[fieldName].DefaultValue) == false))
            {
                assignToField(workItem, fieldName, fields[fieldName].DefaultValue);
            }

            workItem.Title = toImport.Summary;
            var description = toImport.Description;

            // TFS's limit on HTML / PlainText fields is 32k.
            if (description.Length > max_Description_length)
            {
                var attachment = string.Format("{0} (Description).txt", toImport.ID);
                description  = "<p><b>Description stored as Attachment</b></p>";
                description += "<ul><li>Description exceeds 32K.A limit imposed by TFS.</li>";
                description += ("<li>See attachment \"" + attachment + "\"</li></ul>");
            }

            workItem.Description = description;
            assignToField(workItem, "Repro Steps", description);

            assignToField(workItem, "Team", assignedTeam);
            tfsUsers.AssignUser(toImport.AssignedTo, workItem);

            assignToField(workItem, "Story Points", toImport.StoryPoints);
            assignToField(workItem, "Effort", toImport.StoryPoints);
            workItem.AreaPath = (string.IsNullOrWhiteSpace(assignedAreaPath) ? project : assignedAreaPath);
            assignToField(workItem, "External Reference", toImport.ID);
            assignToField(workItem, tfsPriorityMap.PriorityField, tfsPriorityMap[toImport.Priority]);

            if (toImport.HasUrl)
            {
                try
                {
                    var hl = new Hyperlink(toImport.Url)
                    {
                        Comment = string.Format("{0} [{1}]", externalReferenceTag, toImport.ID)
                    };
                    workItem.Links.Add(hl);
                }
                catch
                {
                    /*Do nothing..*/
                }
            }

            var c = new StringBuilder();

            foreach (var comment in toImport.Comments)
            {
                var body = String.Format("<i>{0}</i></br>Created by {1} on the {2}.<br>",
                                         comment.Body.Replace(Environment.NewLine, "<br>"),
                                         comment.Author.DisplayName,
                                         comment.CreatedOn.ToShortDateString());
                if (comment.UpdatedLater)
                {
                    body = String.Format("{0}<br>(Last updated on the {1}).<br>", body,
                                         comment.Updated.ToShortDateString());
                }
                c.Append(body);
            }

            if (c.Length > 0)
            {
                c.Append("<br>");
            }
            c.Append(string.Format("<u><b>Additional {0} information</b></u><br>", externalReferenceTag));

            var rows = new List <Tuple <string, string> >
            {
                new Tuple <string, string>("Ticket",
                                           string.Format("<a href=\"{0}\">{1}</a>", toImport.Url, toImport.ID + " - " + toImport.Summary)),
                new Tuple <string, string>("Created by ", toImport.CreatedBy.DisplayName),
                new Tuple <string, string>("Created on ", toImport.CreatedOn.ToString(CultureInfo.InvariantCulture))
            };

            if (toImport.TicketState == Ticket.State.Done)
            {
                rows.Add(new Tuple <string, string>("Closed on ", toImport.ClosedOn.ToString(CultureInfo.InvariantCulture)));
            }
            if (string.IsNullOrWhiteSpace(toImport.Project) == false)
            {
                rows.Add(new Tuple <string, string>("Belonged To", toImport.Project));
            }

            c.Append("<table style=\"width:100%\">");
            foreach (var row in rows)
            {
                c.Append(string.Format("<tr><td><b>{0}</b></td><td>{1}</td></tr>", row.Item1, row.Item2));
            }
            c.Append("</table>");
            workItem.History = c.ToString();

            return(workItem);
        }
All Usage Examples Of TicketImporter.TfsUsers::AssignUser