public async Task TestSettingsAsync(string baseUrl, string projectName, string accessToken)
 {
     var credentials = new VssBasicCredential(string.Empty, accessToken);
     var uri         = new Uri(baseUrl);
     var client      = new WorkItemTrackingHttpClient(uri, credentials);
     await client.GetFieldsAsync(projectName).ConfigureAwait(false);
 }
Ejemplo n.º 2
0
        public static List <WorkItemField> SearchFields(VssConnection connection, string name = null, string type = null)
        {
            WorkItemTrackingHttpClient workItemTrackingClient = connection.GetClient <WorkItemTrackingHttpClient>();

            List <WorkItemField> fields  = workItemTrackingClient.GetFieldsAsync().Result;
            List <WorkItemField> results = new List <WorkItemField>();

            if (!string.IsNullOrEmpty(name))
            {
                foreach (var field in fields)
                {
                    if (field.Name.ToLower().Contains(name.ToLower()))
                    {
                        results.Add(field);
                    }
                }
            }

            if (!string.IsNullOrEmpty(type))
            {
                var fieldType = SetFieldType(type);

                foreach (var field in fields)
                {
                    if (field.Type == fieldType)
                    {
                        results.Add(field);
                    }
                }
            }

            return(results);
        }
Ejemplo n.º 3
0
        public static List <WorkItemField> GetAllFields(VssConnection connection)
        {
            WorkItemTrackingHttpClient workItemTrackingClient = connection.GetClient <WorkItemTrackingHttpClient>();

            List <WorkItemField> fields = workItemTrackingClient.GetFieldsAsync().Result;

            return(fields);
        }
Ejemplo n.º 4
0
 public static Task <List <WorkItemField> > GetFields(WorkItemTrackingHttpClient client)
 {
     Logger.LogInformation(LogDestination.File, $"Getting fields for {client.BaseAddress.Host}");
     return(RetryHelper.RetryAsync(async() =>
     {
         return await client.GetFieldsAsync();
     }, 5));
 }
Ejemplo n.º 5
0
        public void GetReadOnlyWorkItemFields()
        {
            VssConnection connection = Context.Connection;
            WorkItemTrackingHttpClient workItemTrackingClient = connection.GetClient <WorkItemTrackingHttpClient>();

            List <WorkItemField> result = workItemTrackingClient.GetFieldsAsync().Result;

            Console.WriteLine("Read only fields:");
            foreach (var workitemField in result.Where(field => field.ReadOnly))
            {
                Console.WriteLine(" * {0} ({1})", workitemField.Name, workitemField.ReferenceName);
            }
        }
Ejemplo n.º 6
0
        public override void CreateWorkitems(Dictionary <string, WorkItemModel[]> workitems)
        {
            CreateUserStories(workitems["Product Backlog Item"], "User Story");

            CreateUserStories(workitems["Bug"], "Bug");

            var projectId = projectClient.GetProject(ProjectName).Result.Id;
            var fields    = workClient.GetFieldsAsync(projectId, GetFieldsExpand.ExtensionFields).Result;

            foreach (var field in fields)
            {
                Logger.Warning($"{field.Name};{field.ReferenceName};{field.Type}");
            }
        }
Ejemplo n.º 7
0
        public void GetReadOnlyWorkItemFields()
        {
            Uri uri = new Uri(_uri);
            VssBasicCredential         credentials            = new VssBasicCredential("", _personalAccessToken);
            WorkItemTrackingHttpClient workItemTrackingClient = new WorkItemTrackingHttpClient(uri, credentials);

            List <WorkItemField> result = workItemTrackingClient.GetFieldsAsync().Result;

            Console.WriteLine("Read only fields:");
            foreach (var workitemField in result)
            {
                Console.WriteLine(" * {0} ({1})", workitemField.Name, workitemField.ReferenceName);
            }
        }
Ejemplo n.º 8
0
        public string GetListOfWorkItemFields(string fieldName)
        {
            VssConnection connection = new VssConnection(_uri, _credentials);
            WorkItemTrackingHttpClient workItemTrackingHttpClient = connection.GetClient <WorkItemTrackingHttpClient>();
            List <WorkItemField>       result = workItemTrackingHttpClient.GetFieldsAsync(null).Result;

            var item = result.Find(x => x.Name == fieldName);

            if (item == null)
            {
                return("field not found");
            }
            else
            {
                return(item.ReferenceName);
            }
        }
Ejemplo n.º 9
0
        public string GetListOfWorkItemFields(string fieldName)
        {
            using (WorkItemTrackingHttpClient workItemTrackingHttpClient = new WorkItemTrackingHttpClient(_uri, _credentials))
            {
                List <WorkItemField> result = workItemTrackingHttpClient.GetFieldsAsync(null).Result;

                var item = result.Find(x => x.Name == fieldName);

                if (item == null)
                {
                    return("field not found");
                }
                else
                {
                    return(item.ReferenceName);
                }
            }
        }
Ejemplo n.º 10
0
        public ActionResult About()
        {
            ViewBag.Message = "Your application description page.";
            Uri uri = new Uri(_uri);
            VssBasicCredential         credentials            = new VssBasicCredential("", _personalAccessToken);
            WorkItemTrackingHttpClient workItemTrackingClient = new WorkItemTrackingHttpClient(uri, credentials);

            List <WorkItemField>    result = workItemTrackingClient.GetFieldsAsync().Result;
            List <DetailsViewModel> model  = new List <DetailsViewModel>();

            Console.WriteLine("Read only fields:");
            foreach (var workitemField in result)
            {
                DetailsViewModel d = new DetailsViewModel();
                d.Name          = workitemField.Name;
                d.ReferenceName = workitemField.ReferenceName;
                model.Add(d);
            }
            return(View(model));
        }
        /// <summary>
        /// Validate the current configuration of the both the migrator and the target project
        /// </summary>
        private void ConfigValidation()
        {
            //Make sure that the ReflectedWorkItemId field name specified in the config exists in the target process, preferably on each work item type
            var  fields           = _witClient.GetFieldsAsync(me.Target.Config.Project).Result;
            bool rwiidFieldExists = fields.Any(x => x.ReferenceName == me.Target.Config.ReflectedWorkItemIDFieldName || x.Name == me.Target.Config.ReflectedWorkItemIDFieldName);

            Debug.WriteLine($"Found {fields.Count.ToString("n0")} work item fields.");
            if (rwiidFieldExists)
            {
                Trace.WriteLine($"Found '{me.Target.Config.ReflectedWorkItemIDFieldName}' in this project, proceeding.");
            }
            else
            {
                Trace.WriteLine($"Config file specifies '{me.Target.Config.ReflectedWorkItemIDFieldName}', which wasn't found.");
                Trace.WriteLine("Instead, found:");
                foreach (var field in fields.OrderBy(x => x.Name))
                {
                    Trace.WriteLine($"{field.Type.ToString().PadLeft(15)} - {field.Name.PadRight(20)} - {field.ReferenceName ?? ""}");
                }
                throw new Exception("Running a replay migration requires a ReflectedWorkItemId field to be defined in the target project's process.");
            }
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Validate the current configuration of the both the migrator and the target project
        /// </summary>
        private void ConfigValidation()
        {
            //Make sure that the ReflectedWorkItemId field name specified in the config exists in the target process, preferably on each work item type
            var  fields           = _witClient.GetFieldsAsync(Engine.Target.Config.AsTeamProjectConfig().Project).Result;
            bool rwiidFieldExists = fields.Any(x => x.ReferenceName == Engine.Target.Config.AsTeamProjectConfig().ReflectedWorkItemIDFieldName || x.Name == Engine.Target.Config.AsTeamProjectConfig().ReflectedWorkItemIDFieldName);

            contextLog.Information("Found {FieldsFoundCount} work item fields.", fields.Count.ToString("n0"));
            if (rwiidFieldExists)
            {
                contextLog.Information("Found '{ReflectedWorkItemIDFieldName}' in this project, proceeding.", Engine.Target.Config.AsTeamProjectConfig().ReflectedWorkItemIDFieldName);
            }
            else
            {
                contextLog.Information("Config file specifies '{ReflectedWorkItemIDFieldName}', which wasn't found.", Engine.Target.Config.AsTeamProjectConfig().ReflectedWorkItemIDFieldName);
                contextLog.Information("Instead, found:");
                foreach (var field in fields.OrderBy(x => x.Name))
                {
                    contextLog.Information("{FieldType} - {FieldName} - {FieldRefName}", field.Type.ToString().PadLeft(15), field.Name.PadRight(20), field.ReferenceName ?? "");
                }
                throw new Exception("Running a replay migration requires a ReflectedWorkItemId field to be defined in the target project's process.");
            }
        }
        private async Task <IEnumerable <string> > GetAllFieldReferenceNames()
        {
            var fields = await client.GetFieldsAsync();

            return(fields.Select(f => f.ReferenceName));
        }