コード例 #1
0
        public void TryGetGroups_AsUser_ReturnNull()
        {
            FogBugzClient.LogOn(UserCredentials.Url, UserCredentials.UserName, UserCredentials.Password);

            var token = FogBugzClient.GetToken();

            var scheduleLoader = new FbScheduleLoader();

            var groups = scheduleLoader.GetGroups("https://fogbugzpm-demo.fogbugz.com", token);

            Assert.IsTrue(groups.Count == 0);
        }
コード例 #2
0
        public void TryLoadSiteSchedule_AsAdmin_ReturnSchedule()
        {
            FogBugzClient.LogOn(AdminCredentials.Url, AdminCredentials.UserName, AdminCredentials.Password);

            var token = FogBugzClient.GetToken();

            var scheduleLoader = new FbScheduleLoader();

            bool isAdmin;

            var fbSchedule = scheduleLoader.Load("https://fogbugzpm-demo.fogbugz.com", token, out isAdmin);

            Assert.IsTrue(isAdmin, "isAdmin");
            Assert.IsNotNull(fbSchedule.SiteSchedule);
            Assert.IsTrue(fbSchedule.SiteSchedule.TimeOffRanges.Count >0 );
        }
コード例 #3
0
        //Load info that doesn't change very often
        private static FogBugzClientCache LoadFogBugzAgentCache()
        {
            object existingFbAgentCache=null;

            string cacheKey = MsCacheKey.Gen(MsCacheDataType.FogBugz_ClientCacheByFogBugzUrl, FbAccountContext.Current.Url);

            if (MsCache.TryGet(cacheKey, ref existingFbAgentCache))
                return (FogBugzClientCache)existingFbAgentCache;

            var fbClient = Client;	//need to use local variable otherwise multithreading will fail since .Client is dependent on HttpContext
            var fbAgentCache = new FogBugzClientCache();

            bool allowSubProjects = FbAccountContext.Current.Settings.AllowSubProjects;
            string subProjectTag = FbAccountContext.Current.Settings.SubProjectTag;

            var url = FbAccountContext.Current.Url;
            var token = fbClient.GetToken();

            //Get data from FogBugz in parallel
            Parallel.Invoke(
                () =>
                    {
                        fbAgentCache.Projects = fbClient.GetProjects().Where(m => m.Name != "Inbox").ToList(); //Skip inbox for now
                    },
                () =>
                    {
                        fbAgentCache.Milestones =
                            fbClient.GetFixFors().Where(f => !f.Deleted && f.Name != "Undecided").OrderBy(m => m.DateRelease).ToList();
                            //Skip undecided for now

                        if (allowSubProjects)
                            fbAgentCache.SubProjectParentCases = GetCasesByTag(subProjectTag, fbAgentCache.Milestones, fbClient);
                    },
                () =>
                    {
                        fbAgentCache.Statuses = fbClient.GetStatuses().ToList();
                    },

                () =>
                    {
                        fbAgentCache.Persons = fbClient.GetPersons().ToList();
                    },
                () =>
                    {
                        var scheduleLoader = new FbScheduleLoader();
                        bool isAdmin;

                        FogBugzClient.LogOn(url+"/api.asp", token);

                        fbAgentCache.Schedule = scheduleLoader.Load(url , token, out isAdmin);

                        fbAgentCache.IsLoadedByAdminUser = isAdmin;
                    }
                );

            //Expire in 1 day
            MsCache.Set(cacheKey, fbAgentCache, new TimeSpan(1, 0, 0, 0));
            return fbAgentCache;
        }