Esempio n. 1
0
        public static SettingDocument Open()
        {
            SettingDocument document = new SettingDocument();
            XElement root;

            using (FileStream fs = new FileStream(filePath, FileMode.Open))
            {
                root = XDocument.Load(fs).Root;
                fs.Flush();
                fs.Close();
            }
            byte[] entropy = Convert.FromBase64String(root.Attribute("entropy").Value);

            document.ConnectUri = new Uri(root.Element("Uri").Value);
            document.UserName = Decrypt(entropy, root.Element("UserName").Value);
            document.Password = Decrypt(entropy, root.Element("Password").Value);
            document.BugFilterField = root.Element("BugFilterField").Value;
            document.BugFilterValue = root.Element("BugFilterValue").Value;
            document.PriorityRed = root.Element("PriorityRed").Value;

            IEnumerable<XElement> elements = root.Element("PropertyMappings").Elements();
            foreach (XElement element in elements)
            {
                document.PropertyMappingCollection[element.Name.ToString()] = element.Value;
            }

            return document;
        }
Esempio n. 2
0
        public static SettingDocument Open()
        {
            SettingDocument document = new SettingDocument();
            XElement        root;

            using (FileStream fs = new FileStream(filePath, FileMode.Open))
            {
                root = XDocument.Load(fs).Root;
                fs.Flush();
                fs.Close();
            }
            byte[] entropy = Convert.FromBase64String(root.Attribute("entropy").Value);

            document.ConnectUri     = new Uri(root.Element("Uri").Value);
            document.UserName       = Decrypt(entropy, root.Element("UserName").Value);
            document.Password       = Decrypt(entropy, root.Element("Password").Value);
            document.BugFilterField = root.Element("BugFilterField").Value;
            document.BugFilterValue = root.Element("BugFilterValue").Value;
            document.PriorityRed    = root.Element("PriorityRed").Value;

            IEnumerable <XElement> elements = root.Element("PropertyMappings").Elements();

            foreach (XElement element in elements)
            {
                document.PropertyMappingCollection[element.Name.ToString()] = element.Value;
            }

            return(document);
        }
Esempio n. 3
0
        public static void Save(SettingDocument document)
        {
            // Generate additional entropy (will be used as the Initialization vector)
            byte[] entropy = new byte[20];
            using (RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider())
            {
                rng.GetBytes(entropy);
            }

            XElement propertyMappingElement = new XElement("PropertyMappings");

            foreach (var pair in document.PropertyMappingCollection)
            {
                propertyMappingElement.Add(new XElement(pair.Key, pair.Value));
            }

            XDocument settingDocument = new XDocument(
                new XComment("TFS Proxy Settings"),
                new XElement("Settings",
                             new XAttribute("entropy", Convert.ToBase64String(entropy)),
                             new XElement("Uri", document.ConnectUri.AbsoluteUri),
                             new XElement("UserName", Encrypt(entropy, document.UserName)),
                             new XElement("Password", Encrypt(entropy, document.Password)),
                             new XElement("BugFilterField", document.BugFilterField),
                             new XElement("BugFilterValue", document.BugFilterValue),
                             new XElement("PriorityRed", document.PriorityRed),
                             propertyMappingElement
                             )
                );

            using (FileStream fs = new FileStream(filePath, FileMode.Create))
            {
                settingDocument.Save(fs);
                fs.Flush();
                fs.Close();
            }
        }
Esempio n. 4
0
        public static void Save(SettingDocument document)
        {
            // Generate additional entropy (will be used as the Initialization vector)
            byte[] entropy = new byte[20];
            using (RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider())
            {
                rng.GetBytes(entropy);
            }

            XElement propertyMappingElement = new XElement("PropertyMappings");
            foreach (var pair in document.PropertyMappingCollection)
            {
                propertyMappingElement.Add(new XElement(pair.Key, pair.Value));
            }

            XDocument settingDocument = new XDocument(
                new XComment("TFS Proxy Settings"),
                new XElement("Settings",
                    new XAttribute("entropy", Convert.ToBase64String(entropy)),
                    new XElement("Uri", document.ConnectUri.AbsoluteUri),
                    new XElement("UserName", Encrypt(entropy, document.UserName)),
                    new XElement("Password", Encrypt(entropy, document.Password)),
                    new XElement("BugFilterField", document.BugFilterField),
                    new XElement("BugFilterValue", document.BugFilterValue),
                    new XElement("PriorityRed", document.PriorityRed),
                    propertyMappingElement
                )
            );

            using (FileStream fs = new FileStream(filePath, FileMode.Create))
            {
                settingDocument.Save(fs);
                fs.Flush();
                fs.Close();
            }
        }
Esempio n. 5
0
        public void GeneralSettingDocumentTest()
        {
            SettingDocument document = new SettingDocument();
            Assert.IsNotNull(document.PropertyMappingCollection);

            PropertyDescriptorCollection propertyDescriptorCollection = TypeDescriptor.GetProperties(typeof(Bug));
            Assert.AreEqual(propertyDescriptorCollection.Count - 1, document.PropertyMappingCollection.Count);

            document.PropertyMappingCollection["ID"] = "ID";
            document.ConnectUri = new Uri("https://tfs.codeplex.com:443/tfs/TFS12");
            document.BugFilterField = "Work Item Type";
            document.BugFilterValue = "Bugs";
            document.UserName = "******";
            document.Password = "******";
            document.PriorityRed = "1;2";

            Assert.AreEqual("ID", document.PropertyMappingCollection["ID"]);
            Assert.AreEqual(new Uri("https://tfs.codeplex.com:443/tfs/TFS12").AbsoluteUri, document.ConnectUri.AbsoluteUri);
            Assert.AreEqual("Work Item Type", document.BugFilterField);
            Assert.AreEqual("Bugs", document.BugFilterValue);
            Assert.AreEqual("BigEgg", document.UserName);
            Assert.AreEqual("Password", document.Password);
            Assert.AreEqual("1;2", document.PriorityRed);
        }
Esempio n. 6
0
        /// <summary>
        /// The method which will execute when the Controller.Initialize() execute.
        /// </summary>
        protected override void OnInitialize()
        {
            ignoreField = new List<string>();
            ignoreField.Add("Severity");

            //  Open the setting file
            if (File.Exists(SettingDocumentType.FilePath))
            {
                try
                {
                    this.document = SettingDocumentType.Open();
                }
                catch
                {
                    this.messageService.ShowError(Resources.CannotOpenFile);
                    this.document = SettingDocumentType.New();
                }
            }
            else
            {
                this.document = SettingDocumentType.New();
            }

            //  Validate Connect Information
            if (this.document == null || this.document.ConnectUri == null ||
                string.IsNullOrWhiteSpace(this.document.ConnectUri.AbsoluteUri) ||
                string.IsNullOrWhiteSpace(this.document.UserName))
            {
                return;
            }

            //  Connect to TFS
            TfsTeamProjectCollection tpc = null;
            if (!tfsHelper.TryConnection(this.document.ConnectUri, this.document.UserName,
                                        this.document.Password, out tpc))
            {
                return;
            }

            //  Get Fields
            var fields = tfsHelper.GetFields(tpc);
            if (fields == null || !fields.Any()) { return; }

            this.tfsFieldsCache.AddRange(tfsHelper.GetFields(tpc));
            UpdateStateValues(this.document.PropertyMappingCollection["State"], this.tfsFieldsCache);
            this.CanQuery = true;
        }