Пример #1
0
        public void Connect(VersionOneSettings settings)
        {
            var path       = settings.Path;
            var username   = settings.Username;
            var password   = settings.Password;
            var integrated = settings.Integrated;
            var proxy      = GetProxy(settings.ProxySettings);

            VersionOneSettings = settings;

            if (VersionOneSettings.OAuth2)
            {
                var storage       = OAuth2Client.Storage.JsonFileStorage.Default;
                var metaConnector = new V1OAuth2APIConnector(path + MetaUrlSuffix, storage, proxy);
                MetaModel = new MetaModel(metaConnector);

                var localizerConnector = new V1OAuth2APIConnector(path + LocalizerUrlSuffix, storage, proxy);
                Localizer = new Localizer(localizerConnector);

                var dataConnector = new V1OAuth2APIConnector(path + DataUrlSuffix, storage, proxy);
                Services = new Services(MetaModel, dataConnector);
            }
            else
            {
                var metaConnector = new V1APIConnector(path + MetaUrlSuffix, username, password, integrated, proxy);
                MetaModel = new MetaModel(metaConnector);

                var localizerConnector = new V1APIConnector(path + LocalizerUrlSuffix, username, password, integrated, proxy);
                Localizer = new Localizer(localizerConnector);

                var dataConnector = new V1APIConnector(path + DataUrlSuffix, username, password, integrated, proxy);
                Services = new Services(MetaModel, dataConnector);
            }
            V1Configuration = LoadV1Configuration();
        }
Пример #2
0
        public IServices CreateServices(string baseUrl, string userName, string password, bool integratedAuth = false)
        {
            var dataConnector = new V1APIConnector(baseUrl + "/rest-1.v1/", userName, password, integratedAuth);
            var metaConnector = new V1APIConnector(baseUrl + "/meta.v1/");

            _metaModel = new MetaModel(metaConnector);
            var services = new Services(_metaModel, dataConnector);

            return(services);
        }
		public void QueryProjects() {
			var proxyProvider = new ProxyProvider(new Uri(ProxyPath), ProxyUsername, ProxyPassword);
			IAPIConnector metaConnector = new V1APIConnector(V1Path + "meta.v1/", V1Username, V1Password, false, proxyProvider);
			IMetaModel metaModel = new MetaModel(metaConnector);

			IAPIConnector dataConnector = new V1APIConnector(V1Path + "rest-1.v1/", V1Username, V1Password, false, proxyProvider);
			IServices services = new Services(metaModel, dataConnector);

			var projectType = metaModel.GetAssetType("Scope");
			var scopeQuery = new Query(projectType);
			var result = services.Retrieve(scopeQuery);

			Assert.IsTrue(result.Assets.Count > 0);
		}
		public void TestFixtureSetUp()
		{
			V1APIConnector dataConnector = new V1APIConnector(v1Url + dataPath, username, password);
			V1APIConnector metaConnector = new V1APIConnector(v1Url + metaPath);
			V1APIConnector localConnector = new V1APIConnector(v1Url + localizationPath);
			
			localizer = new Localizer(localConnector);
			metaModel = new MetaModel(metaConnector);
			services = new Services(metaModel, dataConnector);

			timeboxType = metaModel.GetAssetType("Timebox");
			timeboxName = timeboxType.GetAttributeDefinition("Name");
			timeboxID = timeboxType.GetAttributeDefinition("ID");
		}
        public void TestFixtureSetUp()
        {
            V1APIConnector dataConnector  = new V1APIConnector(v1Url + dataPath, username, password);
            V1APIConnector metaConnector  = new V1APIConnector(v1Url + metaPath);
            V1APIConnector localConnector = new V1APIConnector(v1Url + localizationPath);

            localizer = new Localizer(localConnector);
            metaModel = new MetaModel(metaConnector);
            services  = new Services(metaModel, dataConnector);

            timeboxType = metaModel.GetAssetType("Timebox");
            timeboxName = timeboxType.GetAttributeDefinition("Name");
            timeboxID   = timeboxType.GetAttributeDefinition("ID");
        }
		public void TestFixtureSetUp() {
			var metaConnector = new V1APIConnector(V1Url + "/meta.v1/");
			var dataConnector = new V1APIConnector(V1Url + "/rest-1.v1/", Username, Password);
			metaModel = new MetaModel(metaConnector);
			services = new Services(metaModel, dataConnector);
			
			storyType = metaModel.GetAssetType("Story");
			storyDeleteOperation = storyType.GetOperation("Delete");

			nameDef = storyType.GetAttributeDefinition("Name");
			scopeDef = storyType.GetAttributeDefinition("Scope");
			changeDateDef = storyType.GetAttributeDefinition("ChangeDate");
			momentDef = storyType.GetAttributeDefinition("Moment");
			attributesToQuery = new[] {nameDef, scopeDef, changeDateDef, momentDef};
		}
Пример #7
0
        public void QueryProjects()
        {
            var           proxyProvider = new ProxyProvider(new Uri(ProxyPath), ProxyUsername, ProxyPassword);
            IAPIConnector metaConnector = new V1APIConnector(V1Path + "meta.v1/", V1Username, V1Password, false, proxyProvider);
            IMetaModel    metaModel     = new MetaModel(metaConnector);

            IAPIConnector dataConnector = new V1APIConnector(V1Path + "rest-1.v1/", V1Username, V1Password, false, proxyProvider);
            IServices     services      = new Services(metaModel, dataConnector);

            var projectType = metaModel.GetAssetType("Scope");
            var scopeQuery  = new Query(projectType);
            var result      = services.Retrieve(scopeQuery);

            Assert.IsTrue(result.Assets.Count > 0);
        }
Пример #8
0
 private IAPIConnector CreateConnector(string url)
 {
     // TODO check integratedAuth here
     if (_oauthStorage == null)
     {
         var cc = new V1APIConnector(url, _username, _password, _integratedAuth, proxyProvider);
         cc.SetCallerUserAgent(MyUserAgent);
         return(cc);
     }
     else
     {
         var cc = new V1OAuth2APIConnector(url, _oauthStorage, proxyProvider);
         cc.SetCallerUserAgent(MyUserAgent);
         return(cc);
     }
 }
Пример #9
0
        public void TestFixtureSetUp()
        {
            var metaConnector = new V1APIConnector(V1Url + "/meta.v1/");
            var dataConnector = new V1APIConnector(V1Url + "/rest-1.v1/", Username, Password);

            metaModel = new MetaModel(metaConnector);
            services  = new Services(metaModel, dataConnector);

            storyType            = metaModel.GetAssetType("Story");
            storyDeleteOperation = storyType.GetOperation("Delete");

            nameDef           = storyType.GetAttributeDefinition("Name");
            scopeDef          = storyType.GetAttributeDefinition("Scope");
            changeDateDef     = storyType.GetAttributeDefinition("ChangeDate");
            momentDef         = storyType.GetAttributeDefinition("Moment");
            attributesToQuery = new[] { nameDef, scopeDef, changeDateDef, momentDef };
        }
        public void QueryTrackedEpicsByProject()
        {
            var metaConnector = new V1APIConnector(VersionOneUrl + "meta.v1/", "admin", "admin");
            var metaModel     = new MetaModel(metaConnector);

            var epicType  = metaModel.GetAssetType("Epic");
            var scopeType = metaModel.GetAssetType("Scope");

            var          query   = new Query(epicType);
            const string scopeId = "Scope:1025";

            var notClosedScopeAttribute = scopeType.GetAttributeDefinition("AssetState");
            var notClosedEpicAttribute  = epicType.GetAttributeDefinition("AssetState");

            var notClosedEpicTerm = new FilterTerm(notClosedEpicAttribute);

            notClosedEpicTerm.NotEqual("Closed");

            var notClosedScopeTerm = new FilterTerm(notClosedScopeAttribute);

            notClosedScopeTerm.NotEqual("Closed");
            var scopeAttribute = epicType.GetAttributeDefinition("Scope.ParentMeAndUp");

            scopeAttribute = scopeAttribute.Filter(notClosedScopeTerm);

            var scopeTerm = new FilterTerm(scopeAttribute);

            scopeTerm.Equal(scopeId);
            var superAndUpAttribute = epicType.GetAttributeDefinition("SuperAndUp");

            superAndUpAttribute = superAndUpAttribute.Filter(scopeTerm);
            var superAndUpTerm = new FilterTerm(superAndUpAttribute);

            superAndUpTerm.NotExists();

            var filter = new AndFilterTerm(scopeTerm, notClosedEpicTerm, superAndUpTerm);

            query.Filter = filter;
            var builder = new QueryURLBuilder(query);
            var result  = builder.ToString();

            Assert.AreEqual("Data/Epic?sel=&where=(Epic.Scope.ParentMeAndUp[AssetState!='Closed']='Scope%3a1025';Epic.AssetState!='Closed';-Epic.SuperAndUp[Scope.ParentMeAndUp[AssetState!='Closed']='Scope:1025'])", result);
        }
        public static V1Instance GetV1Instance()
        {
            string V1Instance        = ConfigurationManager.AppSettings["V1Instance"];
            string V1Login           = ConfigurationManager.AppSettings["V1InstanceUsername"];
            string V1Password        = ConfigurationManager.AppSettings["V1InstancePassword"];
            string proxyServerUri    = ConfigurationManager.AppSettings["proxyServerUri"];
            string defaultRole       = ConfigurationManager.AppSettings["V1UserDefaultRole"];
            string useIntegratedAuth = ConfigurationManager.AppSettings["IntegratedAuth"];

            if (!V1Instance.EndsWith("/"))
            {
                V1Instance += "/";
            }

            try {
                IAPIConnector metaConnector;
                IAPIConnector dataConnector;
                bool          useIntegrated = useIntegratedAuth.Equals("true");
                logger.Info("Attaching to VersionOne at: " + V1Instance);

                if (!string.IsNullOrEmpty(proxyServerUri))
                {
                    ProxyProvider proxyProvider = GetProxyProvider();
                    metaConnector = new V1APIConnector(V1Instance + @"meta.v1/", null, null, false, proxyProvider);
                    dataConnector = new V1APIConnector(V1Instance + @"rest-1.v1/", V1Login, V1Password, useIntegrated, proxyProvider);
                }
                else
                {
                    metaConnector = new V1APIConnector(V1Instance + @"meta.v1/");
                    dataConnector = new V1APIConnector(V1Instance + @"rest-1.v1/", V1Login, V1Password, useIntegrated);
                }

                IMetaModel metaModel = new MetaModel(metaConnector);
                IServices  services  = new Services(metaModel, dataConnector);
                return(new V1Instance(services, metaModel, defaultRole));
            } catch (Exception ex) {
                logger.Error(ex.Message);
                throw ex;
            }
        }
        public void QueryTrackedEpicsForMultipleProjectsUsingVariables()
        {
            var metaConnector = new V1APIConnector(VersionOneUrl + "meta.v1/", "admin", "admin");
            var metaModel     = new MetaModel(metaConnector);

            var scopeVariable = new QueryVariable("Scope", "Scope:2176");

            var epicType = metaModel.GetAssetType("Epic");

            var query = new Query(epicType);

            var notClosedEpicAttribute = epicType.GetAttributeDefinition("AssetState");

            var notClosedEpicTerm = new FilterTerm(notClosedEpicAttribute);

            notClosedEpicTerm.NotEqual("Closed");

            var scopeAttribute = epicType.GetAttributeDefinition("Scope");
            var scopeTerm      = new FilterTerm(scopeAttribute);

            scopeTerm.Operate(FilterTerm.Operator.Equal, scopeVariable);

            var superAndUpAttribute = epicType.GetAttributeDefinition("SuperAndUp").Filter(scopeTerm);
            var superAndUpTerm      = new FilterTerm(superAndUpAttribute);

            superAndUpTerm.NotExists();

            var filter = new AndFilterTerm(notClosedEpicTerm, scopeTerm, superAndUpTerm);

            query.Filter = filter;
            query.Variables.Add(scopeVariable);
            var builder = new QueryURLBuilder(query);
            var result  = builder.ToString();

            Assert.AreEqual("Data/Epic?sel=&where=(Epic.AssetState!='Closed';Epic.Scope=$Scope;-Epic.SuperAndUp[Scope=$Scope])&with=$Scope=Scope%3A2176", result);
        }
Пример #13
0
 public ExportAttachments(SqlConnection sqlConn, MetaModel MetaAPI, Services DataAPI, V1APIConnector ImageConnector, MigrationConfiguration Configurations)
     : base(sqlConn, MetaAPI, DataAPI, Configurations)
 {
     _imageConnector = ImageConnector;
 }
Пример #14
0
        //To View all Teams
        public IEnumerable <Team> GetAllTeams()
        {
            try
            {
                string _data    = "https://www15.v1host.com/Greenway/rest-1.v1/";
                string _metaUrl = "https://www15.v1host.com/Greenway/meta.v1/";

                string sUsername = "******";
                string sPassword = "******";

                V1APIConnector dataConnector = new V1APIConnector(_data, sUsername, sPassword);
                //VersionOneAPIConnector metaConnector = new VersionOneAPIConnector(_metaUrl);

                //IMetaModel metaModel = new MetaModel(metaConnector);

                //IServices services = new Services(metaModel, dataConnector);
                //IAssetType TeamType = metaModel.GetAssetType("Team");
                //Query query1 = new Query(TeamType);

                //IAttributeDefinition teamAttribute = TeamType.GetAttributeDefinition("Team.Name");

                List <Team> lstTeam = new List <Team>();

                //query1.Selection.Add(teamAttribute);


                //QueryResult result1 = services.Retrieve(query1);

                //foreach (Asset story in result1.Assets)
                //{
                //}
                //using (SqlConnection con = new SqlConnection(connectionString))
                //{
                //    SqlCommand cmd = new SqlCommand("spGetAllTeams", con);
                //    cmd.CommandType = CommandType.StoredProcedure;
                //    con.Open();
                //    SqlDataReader rdr = cmd.ExecuteReader();
                //    while (rdr.Read())
                //    {
                //        Team team = new Team();
                //        team.ID = Convert.ToInt32(rdr["TeamID"]);
                //        team.Name = rdr["Name"].ToString();
                //        team.Category = rdr["Category"].ToString();
                //        lstTeam.Add(team);
                //    }

                //    con.Close();
                //}

                lstTeam.Add(new Team {
                    ID = 1, Name = "Patriots", Category = "NFT"
                });
                lstTeam.Add(new Team {
                    ID = 2, Name = "Raiders", Category = "NFT"
                });
                lstTeam.Add(new Team {
                    ID = 3, Name = "Titans", Category = "PDT"
                });

                return(lstTeam);
            }
            catch
            {
                throw;
            }
        }
		public void QueryTrackedEpicsForMultipleProjectsUsingVariables() {
			var metaConnector = new V1APIConnector(VersionOneUrl + "meta.v1/", "admin", "admin");
			var metaModel = new MetaModel(metaConnector);

			var scopeVariable = new QueryVariable("Scope", "Scope:2176");

			var epicType = metaModel.GetAssetType("Epic");

			var query = new Query(epicType);

			var notClosedEpicAttribute = epicType.GetAttributeDefinition("AssetState");

			var notClosedEpicTerm = new FilterTerm(notClosedEpicAttribute);
			notClosedEpicTerm.NotEqual("Closed");

			var scopeAttribute = epicType.GetAttributeDefinition("Scope");
			var scopeTerm = new FilterTerm(scopeAttribute);
			scopeTerm.Operate(FilterTerm.Operator.Equal, scopeVariable);

			var superAndUpAttribute = epicType.GetAttributeDefinition("SuperAndUp").Filter(scopeTerm);
			var superAndUpTerm = new FilterTerm(superAndUpAttribute);
			superAndUpTerm.NotExists();
			
			var filter = new AndFilterTerm(notClosedEpicTerm, scopeTerm, superAndUpTerm);
			query.Filter = filter;
			query.Variables.Add(scopeVariable);
			var builder = new QueryURLBuilder(query);
			var result = builder.ToString();
			Assert.AreEqual("Data/Epic?sel=&where=(Epic.AssetState!='Closed';Epic.Scope=$Scope;-Epic.SuperAndUp[Scope=$Scope])&with=$Scope=Scope%3A2176", result);
		}
		public void QueryTrackedEpicsByProject() {
			var metaConnector = new V1APIConnector(VersionOneUrl + "meta.v1/", "admin", "admin");
			var metaModel = new MetaModel(metaConnector);

			var epicType = metaModel.GetAssetType("Epic");
			var scopeType = metaModel.GetAssetType("Scope");

			var query = new Query(epicType);
			const string scopeId = "Scope:1025";

			var notClosedScopeAttribute = scopeType.GetAttributeDefinition("AssetState");
			var notClosedEpicAttribute = epicType.GetAttributeDefinition("AssetState");

			var notClosedEpicTerm = new FilterTerm(notClosedEpicAttribute);
			notClosedEpicTerm.NotEqual("Closed");

			var notClosedScopeTerm = new FilterTerm(notClosedScopeAttribute);
			notClosedScopeTerm.NotEqual("Closed");
			var scopeAttribute = epicType.GetAttributeDefinition("Scope.ParentMeAndUp");
			scopeAttribute = scopeAttribute.Filter(notClosedScopeTerm);

			var scopeTerm = new FilterTerm(scopeAttribute);
			scopeTerm.Equal(scopeId);
			var superAndUpAttribute = epicType.GetAttributeDefinition("SuperAndUp");
			superAndUpAttribute = superAndUpAttribute.Filter(scopeTerm);
			var superAndUpTerm = new FilterTerm(superAndUpAttribute);
			superAndUpTerm.NotExists();
			
			var filter = new AndFilterTerm(scopeTerm, notClosedEpicTerm, superAndUpTerm);
			query.Filter = filter;
			var builder = new QueryURLBuilder(query);
			var result = builder.ToString();
			Assert.AreEqual("Data/Epic?sel=&where=(Epic.Scope.ParentMeAndUp[AssetState!='Closed']='Scope%3a1025';Epic.AssetState!='Closed';-Epic.SuperAndUp[Scope.ParentMeAndUp[AssetState!='Closed']='Scope:1025'])", result);
		}