private TfsPluginProfile Parse(PluginProfile legacyProfile, XmlDocument document) { var result = new TfsPluginProfile(); var root = document.SelectSingleNode("./Settings"); string server = GetValueByName(root, "ServerName").TrimEnd('/'); string projectName = GetValueByName(root, "TeamProjectName"); result.Uri = string.Concat(server, "/", projectName); var syncIntervalValue = GetValueByName(root, "SyncInterval"); if (!string.IsNullOrEmpty(syncIntervalValue)) { result.SynchronizationInterval = Int32.Parse(syncIntervalValue); } result.Login = GetValueByName(root, "Login"); result.Password = GetValueByName(root, "Password"); result.StartRevision = GetStartRevision(legacyProfile, root); var userMapping = GetValueByName(root, "Maps"); var parser = new LegacyMappingParser(); if (!string.IsNullOrEmpty(userMapping)) { parser.Maps = userMapping; } foreach (string tfsUser in parser.Users.Keys) { var tpUser = GetUserBy(parser.Users[tfsUser], x => x.Login); if (tpUser != null) { result.UserMapping.Add(new MappingElement { Key = tfsUser, Value = Create(tpUser) }); continue; } tpUser = GetUserBy(parser.Users[tfsUser], x => x.Email); if (tpUser != null) { result.UserMapping.Add(new MappingElement { Key = tfsUser, Value = Create(tpUser) }); } } return(result); }
private static void CheckWorkItemChangedFields(WorkItemInfo workItem, WorkItemInfo workItemChanged, TfsPluginProfile profile) { var changedFields = new List <Enum>(); string tpType = profile.EntityMapping[workItem.WorkItemType]; IChangedFieldsMappingPolicy mappingPolicy = ChangedFieldsPolicyFactory.CreatePolicy(tpType); foreach (var fieldValue in workItemChanged.FieldsValues) { var workItemField = workItem.FieldsValues.First(x => x.Name == fieldValue.Name); if (workItemField.Value != fieldValue.Value) { changedFields.Add(mappingPolicy.WorkItemFieldToTpField(workItem.WorkItemType, fieldValue.Name)); } } workItemChanged.ChangedFields = changedFields.ToArray(); }
protected bool IsCurrentProjectMapping(TfsPluginProfile profile, WorkItemInfo info) { return(info.TpProjectId == profile.ProjectsMapping[0].Value.Id && info.TfsProject == profile.ProjectsMapping[0].Key); }