Ejemplo n.º 1
0
        public WorkItemField Field_CreatePicklistField()
        {
            //get process id stored in cache so we don't have to load it each time
            System.Guid processId  = Context.GetValue <Guid>("$processId");
            System.Guid picklistId = Context.GetValue <Guid>("$picklistId");

            VssConnection connection          = Context.Connection;
            WorkItemTrackingHttpClient client = connection.GetClient <WorkItemTrackingHttpClient>();
            WorkItemField field = null;

            Console.Write("Searching to see if field '{0}' exists....", _fieldRefName);

            try
            {
                field = client.GetFieldAsync(_fieldRefName).Result;
            }
            catch (Exception ex)
            {
                if (ex.InnerException.Message.Contains("TF51535: Cannot find field"))
                {
                    field = null;
                }
            }

            if (field == null)
            {
                Console.WriteLine("field not found");
                Console.Write("Creating new picklist field and setting it to former picklistId....");

                field = new WorkItemField()
                {
                    ReferenceName = _fieldRefName,
                    Name          = "Colors",
                    Description   = "My new field",
                    Type          = TeamFoundation.WorkItemTracking.WebApi.Models.FieldType.String,
                    IsPicklist    = true,
                    PicklistId    = picklistId,
                    Usage         = FieldUsage.WorkItem,
                    ReadOnly      = false,
                    IsIdentity    = false,
                    IsQueryable   = true
                };

                WorkItemField newField = client.CreateFieldAsync(field).Result;

                Console.WriteLine("Done");
                return(newField);
            }

            Console.WriteLine("field found");
            return(field);
        }
Ejemplo n.º 2
0
        public static WorkItemField GetField(VssConnection connection, string refname)
        {
            WorkItemTrackingHttpClient client = connection.GetClient <WorkItemTrackingHttpClient>();

            try
            {
                WorkItemField field = client.GetFieldAsync(refname).Result;

                return(field);
            }
            catch (Exception)
            {
                return(null);
            }
        }
Ejemplo n.º 3
0
        public WorkItemField GetFieldDetails()
        {
            string fieldName = "System.Title";

            VssConnection connection = Context.Connection;
            WorkItemTrackingHttpClient workItemTrackingClient = connection.GetClient <WorkItemTrackingHttpClient>();

            WorkItemField workitemField = workItemTrackingClient.GetFieldAsync(fieldName).Result;

            Console.WriteLine("Name: " + workitemField.Name);
            Console.WriteLine("Ref name: " + workitemField.ReferenceName);
            Console.WriteLine("Read only? " + workitemField.ReadOnly);

            return(workitemField);
        }
        public async Task EnsureFieldExists(string fieldRefName, string name, string description, string workItemType, Guid processId)
        {
            var field = await witClient.GetFieldAsync(fieldRefName);

            if (field == null)
            {
                field = await witClient.CreateFieldAsync(new WorkItemField()
                {
                    Name          = name,
                    Description   = description,
                    ReferenceName = fieldRefName
                });
            }
            await witProcessClient.AddFieldToWorkItemTypeAsync(
                new AddProcessWorkItemTypeFieldRequest()
            {
                ReferenceName = field.ReferenceName
            }, processId, workItemType);
        }
        private static WorkItemField GetField(VssConnection connection, string fieldName)
        {
            WorkItemTrackingHttpClient workClient = connection.GetClient <WorkItemTrackingHttpClient>();

            return(workClient.GetFieldAsync(fieldName).Result);
        }