public void CalculateLevelAndPathTest ()
        {
            var root1 = new DivisionInfo { DivisionID = 1, Title = "Root1" };
            var root1_child1 = new DivisionInfo { DivisionID = 2, ParentDivisionID = 1, Title = "Root1.Child1" };
            var root1_child2 = new DivisionInfo { DivisionID = 3, ParentDivisionID = 2, Title = "Root1.Child2" };
            var root1_child1_child1 = new DivisionInfo
            {
                DivisionID = 4,
                ParentDivisionID = 1,
                Title = "Root1.Child1.Child1"
            };

            root1.SubDivisions = new List<DivisionInfo> { root1_child1, root1_child2 };
            root1_child1.SubDivisions = new List<DivisionInfo> { root1_child1_child1 };

            var divisions = new List<DivisionInfo> {
                root1, root1_child1, root1_child2, root1_child1_child1
            };

            var calculatedDivisions = divisions.CalculateLevelAndPath ();

            // check paths
            Assert.Equal ("/0000000001", calculatedDivisions.Single (cd => cd.DivisionID == 1).Path);
            Assert.Equal ("/0000000001/0000000002", calculatedDivisions.Single (cd => cd.DivisionID == 2).Path);
            Assert.Equal ("/0000000001/0000000003", calculatedDivisions.Single (cd => cd.DivisionID == 3).Path);
            Assert.Equal ("/0000000001/0000000002/0000000004", calculatedDivisions.Single (cd => cd.DivisionID == 4).Path);

            // check level
            Assert.Equal (0, calculatedDivisions.Single (cd => cd.DivisionID == 1).Level);
            Assert.Equal (2, calculatedDivisions.Single (cd => cd.DivisionID == 4).Level);
        }
        protected IEnumerable<OccupiedPositionInfo> GetOccupiedPositions ()
        {
            var division1 = new DivisionInfo { DivisionID = 1 };
            var division2 = new DivisionInfo { DivisionID = 2 };

            var position11 = new PositionInfo { PositionID = 11, Title = "Director", ShortTitle = "Chief" };
            var position12 = new PositionInfo { PositionID = 12, Title = "Manager" };
            var position13 = new PositionInfo { PositionID = 13, Title = "Consultant" };

            return new List<OccupiedPositionInfo> {
                new OccupiedPositionInfo {
                    DivisionID = 1,
                    Division = division1,
                    PositionID = 11,
                    Position = position11
                },

                new OccupiedPositionInfo {
                    DivisionID = 2,
                    Division = division2,
                    PositionID = 12,
                    Position = position12,
                    TitleSuffix = "(main)"
                },

                new OccupiedPositionInfo {
                    DivisionID = 1,
                    Division = division1,
                    PositionID = 13,
                    Position = position13
                }
            };
        }
        public SubDivisionViewModel (DivisionInfo division, ViewModelContext context)
        {
            Context = context;

            Title = division.Title;
            HomePage = division.HomePage;
            StartDate = division.StartDate;
            EndDate = division.EndDate;
        }
 public DivisionObrnadzorViewModel (DivisionInfo division, ViewModelContext<DivisionDirectorySettings> context)
 {
     CopyCstor.Copy<DivisionInfo> (division, this);
     Context = context;
 }