示例#1
0
        private void SetProjectHistory(ITfsProject project, List <ITfsWit> workItems)
        {
            var currentProjectIds    = new HashSet <int>(project.InWits.Select(p => p.ID));
            var currentTfsProjectIds = new HashSet <int>(workItems.Select(p => p.ID));

            var addedItems   = workItems.Where(p => !currentProjectIds.Contains(p.ID)).ToList();
            var removedItems = project.InWits.Where(p => !currentTfsProjectIds.Contains(p.ID)).ToList();

            if ((addedItems.Count + removedItems.Count) == 0)
            {
                return;
            }

            var newHistory = new List <ITfsWit>();

            foreach (var item in addedItems)
            {
                project.InWits.Add(item);
                item.State = TfsWitState.Added;
                newHistory.Add(item);
            }

            foreach (var item in removedItems)
            {
                item.State = TfsWitState.Removed;
                project.InWits.Remove(item);
                newHistory.Add(item);
            }

            project.WitHistory    = newHistory;
            project.HasNewHistory = true;
        }
示例#2
0
        public void UpdateProject(ITfsProject project)
        {
            var workItems = _workItemApis.GetListOfWorkItemsByTag(project.TeamProjectName, project.TrackedTags);

            SetProjectHistory(project, BuildWorkItems(workItems));

            project.LastPolled = DateTime.Now;
            project.InWits.Sort();
            project.WitHistory.Sort();

            using (var file = File.CreateText(project.FileName))
            {
                var serializer = new JsonSerializer();
                serializer.Serialize(file, project);
            }
        }
示例#3
0
        private void WriteFile(ITfsProject project)
        {
            var path = Constants.ProjectFolderPath;

            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }

            var fileName = $"{path}{project.ProjectName}.json";

            if (File.Exists(fileName))
            {
                throw new Exception(
                          $"A file with the name {project.ProjectName} already exists.  Please select another project name.");
            }

            using (var file = File.CreateText(fileName))
            {
                project.FileName = fileName;
                var serializer = new JsonSerializer();
                serializer.Serialize(file, project);
            }
        }
示例#4
0
 public void DeleteProject(ITfsProject project)
 {
     File.Delete(project.FileName);
 }