//[Test]
        public void CheckEntityListPaginated()
        {
            EntityList <Job> list = new EntityList <Job>(context);

            list.OpenSearchEngine = ose;
            list.Identifier       = "test";

            for (int i = 1; i <= 10; i++)
            {
                list.Include(new Job(context)
                {
                    Name = "" + i
                });
            }

            var      nvc     = new NameValueCollection();
            var      request = (AtomOpenSearchRequest)list.Create(new QuerySettings("application/atom+xml", ose.GetExtensionByExtensionName("atom").ReadNative), nvc);
            AtomFeed feed    = (AtomFeed)request.GetResponse().GetResponseObject();

            Assert.That(feed.Items.First().Title.Text == "1");
            Assert.That(feed.Items.Last().Title.Text == "10");

            nvc.Add("startIndex", "2");
            request = (AtomOpenSearchRequest)list.Create(new QuerySettings("application/atom+xml", ose.GetExtensionByExtensionName("atom").ReadNative), nvc);
            feed    = (AtomFeed)request.GetResponse().GetResponseObject();

            Assert.That(feed.Items.First().Title.Text == "2");
            Assert.That(feed.Items.Last().Title.Text == "10");

            nvc.Remove("startIndex");
            nvc.Add("q", "4");
            request = (AtomOpenSearchRequest)list.Create(new QuerySettings("application/atom+xml", ose.GetExtensionByExtensionName("atom").ReadNative), nvc);
            feed    = (AtomFeed)request.GetResponse().GetResponseObject();

            Assert.That(feed.Items.First().Title.Text == "4");
            Assert.That(feed.Items.Last().Title.Text == "4");
        }
Example #2
0
        public static IEntityDirectory <string> GetCommonDirectory()
        {
            var root = EntityDirectory <string> .Create();

            var subFolder  = root.GetOrAdd("TestDirectory", EntityDirectory <string> .Create);
            var testString = subFolder.GetOrAdd("TestString", () => EntitySubject <string> .Create("TestString"));
            var testInt    = subFolder.GetOrAdd("TestInt", () => EntitySubject <int> .Create(23));
            var testDouble = subFolder.GetOrAdd("TestDouble", () => EntitySubject <double> .Create(23.0));
            var testBool   = subFolder.GetOrAdd("TestBool", () => EntitySubject <bool> .Create(true));
            var testList   = subFolder.GetOrAdd("TestList", () => EntityList <IEntitySubject <int> > .Create());

            testList.Add(EntitySubject <int> .Create(1));
            testList.Add(EntitySubject <int> .Create(10));
            testList.Add(EntitySubject <int> .Create(15));
            return(root);
        }
Example #3
0
        public static dynamic GetDynamicCommonDirectory()
        {
            var root = EntityDirectory <string> .Create().AsDynamic();

            root.TestDirectory = EntityDirectory <string> .Create();

            root.TestDirectory.TestString = EntitySubject <string> .Create("TestString");

            root.TestDirectory.TestInt = EntitySubject <int> .Create(23);

            root.TestDirectory.TestDouble = EntitySubject <double> .Create(23.0);

            root.TestDirectory.TestBool = EntitySubject <bool> .Create(true);

            root.TestDirectory.TestList = EntityList <IEntitySubject <int> > .Create();

            root.TestDirectory.TestList.Add(EntitySubject <int> .Create(1));
            root.TestDirectory.TestList.Add(EntitySubject <int> .Create(10));
            root.TestDirectory.TestList.Add(EntitySubject <int> .Create(15));
            return(root);
        }
Example #4
0
        private static SharedspaceUser CreateUser(WorkspaceRole role = null)
        {
            SharedspaceUser user = new SharedspaceUser();

            user.Name      = "Name" + Guid.NewGuid() + "@hpe.com";
            user.Password  = "******";
            user.LastName  = "Last name";
            user.FirstName = "First name";
            user.Email     = user.Name;
            user.Phone1    = "123-123-123";

            if (role != null)
            {
                user.WorkspaceRoles = EntityList <WorkspaceRole> .Create(role);
            }

            var fields = new string[] { "name", "workspace_roles" };

            SharedspaceUser createdUser = entityService.Create <SharedspaceUser>(sharedSpaceContext, user, fields);

            Assert.AreEqual <string>(user.Name, createdUser.Name);
            return(createdUser);
        }
        public void CreateTeamTest()
        {
            EntityListResult <WorkspaceUser> wsUsers = WorkspaceUserTests.GetAllWorkspaceUsers();

            var team = new Team
            {
                Name = "Team_" + Guid.NewGuid(),
                EstimatedVelocity = 50,
                Releases          = EntityList <Release> .Create(ReleaseTests.CreateRelease()),
                TeamLead          = wsUsers.data[0]
            };

            string[] fields      = new string[] { Team.NUMBER_OF_MEMBERS_FIELD, Team.ESTIMATED_VELOCITY_FIELD, Team.TEAM_LEAD_FIELD, Team.TEAM_MEMBERS_FIELD, Team.NAME_FIELD, Team.RELEASES_FIELD };
            var      createdTeam = entityService.Create(workspaceContext, team, fields);

            var r  = createdTeam.Releases;
            var r2 = createdTeam.Releases;

            Assert.AreEqual(team.Name, createdTeam.Name);
            Assert.AreEqual(team.EstimatedVelocity, createdTeam.EstimatedVelocity);
            Assert.AreEqual(1, createdTeam.NumberOfMembers);
            Assert.AreEqual(team.Releases.data[0].Id, createdTeam.Releases.data[0].Id);
        }
    /// <summary>
    /// 布局标记列表
    /// </summary>
    /// <param name="entitys">标记列表</param>
    private void LayoutEntityList(EntityList entitys)
    {
        //确定初始属性
        foreach (Entity entity in entitys)
        {
            EntityLayoutParams layout = GetLayoutParams(entity.ViewSize);

            Vector2 position = m_MainCamera.transform.InverseTransformPoint(entity.TargetPosition).normalized *layout.RingRadius;
            entity.Angle  = Mathf.Atan2(position.y, position.x) * Mathf.Rad2Deg;
            entity.Radius = layout.GetRadius(entity.Angle);
        }

        //按角度排序
        entitys.SortByAngle();

        //按角度分组
        for (int i = 0; i < entitys.Count; i++)
        {
            if (i == 0 || entitys[i].Angle != entitys[i - 1].Angle)
            {
                m_GroupedEntitys.Add(EntityList.Create());
            }

            m_GroupedEntitys[m_GroupedEntitys.Count - 1].Add(entitys[i]);
        }

        //分组展开
        for (int i = 0; i < m_GroupedEntitys.Count; i++)
        {
            LayoutEntityGroup(m_GroupedEntitys[i]);
        }

        //多层次组合,再展开
        while (m_GroupedEntitys.Count > 1)
        {
            bool changed = false;

            //相邻组合并
            for (int i = 0; i < m_GroupedEntitys.Count - 1; i++)
            {
                EntityList group     = m_GroupedEntitys[i];
                EntityList nextGroup = m_GroupedEntitys[i + 1];

                if (group.MaxAngle >= nextGroup.MinAngle)
                {
                    group.AddRange(nextGroup);
                    group.MinAngle = Mathf.Min(group.MinAngle, nextGroup.MinAngle);
                    group.MaxAngle = Mathf.Max(group.MaxAngle, nextGroup.MaxAngle);

                    m_GroupedEntitys.Remove(nextGroup);
                    EntityList.Recycle(nextGroup);
                    changed = true;
                    i--;
                }
            }
            //首尾合并
            if (m_GroupedEntitys.Count > 1)
            {
                EntityList lastGroup = m_GroupedEntitys[m_GroupedEntitys.Count - 1];

                EntityList firstGroup    = m_GroupedEntitys[0];
                float      firstMinAngle = firstGroup.MinAngle + 360.0f;
                float      firstMaxAngle = firstGroup.MaxAngle + 360.0f;

                if (lastGroup.MaxAngle >= firstMaxAngle)
                {
                    lastGroup.MinAngle = Mathf.Min(lastGroup.MinAngle, firstMinAngle);
                    lastGroup.MaxAngle = Mathf.Max(lastGroup.MaxAngle, firstMaxAngle);

                    for (int j = 0; j < firstGroup.Count; j++)
                    {
                        Entity entity = firstGroup[j];
                        entity.Angle += 360.0f;
                        lastGroup.Add(entity);
                    }

                    m_GroupedEntitys.Remove(firstGroup);
                    EntityList.Recycle(firstGroup);
                    changed = true;
                }
            }

            //
            if (changed)
            {
                for (int i = 0; i < m_GroupedEntitys.Count; i++)
                {
                    EntityList group = m_GroupedEntitys[i];
                    group.SortByAngle();
                    LayoutEntityGroup(group);
                }
            }
            else
            {
                break;
            }
        }

        //回收组列表
        for (int i = 0; i < m_GroupedEntitys.Count; i++)
        {
            EntityList.Recycle(m_GroupedEntitys[i]);
        }
        m_GroupedEntitys.Clear();

        //应用坐标到视图
        foreach (Entity entity in m_EdgeEntitys)
        {
            EntityLayoutParams layout = GetLayoutParams(entity.ViewSize);

            //Debug.LogWarning(entity.Angle);
            Vector3 pos = Quaternion.Euler(0, 0, entity.Angle) * (Vector3.right * layout.RingRadius);

            Vector2 arrowPosition = m_ScaleBox.InverseTransformPoint(m_Root.TransformPoint(pos));
            arrowPosition = arrowPosition.normalized * (Mathf.Max(m_Root.rect.width, m_Root.rect.height) / 2);
            arrowPosition = m_Root.InverseTransformPoint(m_ScaleBox.TransformPoint(arrowPosition));

            entity.View.anchoredPosition = arrowPosition;
        }
    }