示例#1
0
        private ControlInfo BuildStages(TblCurriculums curriculum, TreeNode node, DateTime?date)
        {
            IList <TblStages> stages = StudentRecordFinder.GetStagesForCurriculum(curriculum);

            ControlInfo controlInfo = new ControlInfo();

            foreach (TblStages stage in stages)
            {
                var child = new IdendtityNode(stage);

                if (StudentPermissionsHelper.IsDateAllowed(date, _userId, stage.ID, NodeType.Stage, GetOperationType))
                {
                    controlInfo = BuildThemes(stage, child);

                    if (controlInfo.IsControlStartsNow)
                    {
                        controlInfo.AddCurriculumnToInfo(curriculum);
                        return(controlInfo);
                    }
                    if (child.ChildNodes.Count != 0)
                    {
                        node.ChildNodes.Add(child);
                    }
                }
            }

            return(controlInfo);
        }
        private void CurriculumTree_SelectedNodeChanged(object sender, EventArgs e)
        {
            IdendtityNode selectedNode = CurriculumTree.SelectedNode as IdendtityNode;
            string        encodedData  = selectedNode.ValuePath + " " + GroupID.ToString() + " ";

            switch (selectedNode.Type)
            {
            case NodeType.Curriculum:
            {
                TimeLineData.Value = encodedData + selectedNode.ID + " " + curriculumChar;
                break;
            }

            case NodeType.Stage:
            {
                TimeLineData.Value = encodedData + selectedNode.ID + " " + stageChar;
                break;
            }

            case NodeType.Theme:
            {
                selectedNode.Parent.Select();
                CurriculumTree_SelectedNodeChanged(CurriculumTree, EventArgs.Empty);
                break;
            }
            }
        }
示例#3
0
        private ControlInfo BuildTree(DateTime?date)
        {
            CurriculumnTreeView.Nodes.Clear();

            var userCurriculums = StudentRecordFinder.GetCurriculumnsForUser(_userId);

            var controlInfo = new ControlInfo();

            foreach (TblCurriculums curriculum in userCurriculums)
            {
                var node = new IdendtityNode(curriculum);

                if (StudentPermissionsHelper.IsDateAllowed(date, _userId, node.ID, node.Type, GetOperationType))
                {
                    controlInfo = BuildStages(curriculum, node, date);

                    if (controlInfo != null && controlInfo.IsControlStartsNow)
                    {
                        return(controlInfo);
                    }

                    if (node.ChildNodes.Count != 0)
                    {
                        CurriculumnTreeView.Nodes.Add(node);
                    }
                }
            }

            CurriculumnTreeView.ExpandAll();

            return(controlInfo);
        }
        private void CurriculumTree_SelectedNodeChanged(object sender, EventArgs e)
        {
            IdendtityNode selectedNode = CurriculumTree.SelectedNode as IdendtityNode;

            DeleteButtonEnabled.Value = true;
            switch (selectedNode.Type)
            {
            case NodeType.Curriculum:
            {
                AddStageButtonEnabled.Value = true;
                ModifyButtonEnabled.Value   = true;
                AddThemeButtonEnabled.Value = false;
                break;
            }

            case NodeType.Stage:
            {
                AddStageButtonEnabled.Value = false;
                ModifyButtonEnabled.Value   = true;
                AddThemeButtonEnabled.Value = true;
                break;
            }

            case NodeType.Theme:
            {
                AddStageButtonEnabled.Value = false;
                ModifyButtonEnabled.Value   = false;
                AddThemeButtonEnabled.Value = false;
                break;
            }
            }
        }
示例#5
0
        public void AddThemeButton_Click()
        {
            if (CourseTree.CheckedNodes.Count == 0)
            {
                Message.Value = noThemesSelected;
                return;
            }

            IdendtityNode stageNode = CurriculumTree.SelectedNode as IdendtityNode;

            Message.Value = alreadyHaveTheme.Replace("{0}", stageNode.Text);
            bool alreadyHaveSomeTheme = false;

            for (int i = 0; i < CourseTree.CheckedNodes.Count; i++)
            {
                IdendtityNode orgNode = CourseTree.CheckedNodes[i] as IdendtityNode;

                if (TeacherHelper.StageContainsTheme(stageNode.ID, orgNode.ID))
                {
                    Message.Value       += orgNode.Text + ", ";
                    alreadyHaveSomeTheme = true;
                }
                else
                {
                    TblOrganizations org = ServerModel.DB.Load <TblOrganizations>(orgNode.ID);

                    TblThemes t = new TblThemes
                    {
                        Name            = org.Title,
                        CourseRef       = org.CourseRef,
                        OrganizationRef = org.ID,
                        StageRef        = stageNode.ID
                    };

                    ServerModel.DB.Insert(t);

                    /*ServerModel.DB.Link(
                     *  ServerModel.DB.Load<TblStages>(stageNode.ID),
                     *  ServerModel.DB.Load<TblThemes>(t.ID));*/
                    stageNode.ChildNodes.Add(new IdendtityNode(ServerModel.DB.Load <TblThemes>(t.ID)));
                }

                CourseTree.CheckedNodes[i].Checked = false;
                i--;
            }

            if (alreadyHaveSomeTheme)
            {
                Message.Value = Message.Value.Remove(Message.Value.Length - 2) + ".";
            }
            else
            {
                Message.Value = string.Empty;
            }
        }
示例#6
0
        public void DeleteButton_Click()
        {
            IdendtityNode courseNode = CourseTree.SelectedNode as IdendtityNode;

            Redirect(ServerModel.Forms.BuildRedirectUrl <CourseDeleteConfirmationController>(
                         new CourseDeleteConfirmationController
            {
                CourseID = courseNode.ID,
                BackUrl  = RawUrl
            }));
        }
        public void AddStageButton_Click()
        {
            //adding new stage
            IdendtityNode curriculumNode = CurriculumTree.SelectedNode as IdendtityNode;

            //Create new stage
            TblStages stage = new TblStages();

            stage.Name          = ObjectName.Value;
            stage.Description   = ObjectDescription.Value;
            stage.CurriculumRef = curriculumNode.ID;
            ServerModel.DB.Insert <TblStages>(stage);

            //Update curriculum tree
            curriculumNode.ChildNodes.Add(new IdendtityNode(stage));
        }
示例#8
0
        private void BuildTreeForControl(ControlInfo info)
        {
            CurriculumnTreeView.Nodes.Clear();

            var themeNode = new IdendtityNode(info.Theme);

            var stageNode = new IdendtityNode(info.Stage);

            stageNode.ChildNodes.Add(themeNode);

            var currNode = new IdendtityNode(info.Curriculumn);

            currNode.ChildNodes.Add(stageNode);

            CurriculumnTreeView.Nodes.Add(currNode);
            CurriculumnTreeView.ExpandAll();
        }
        public void AddThemeButton_Click()
        {
            if (CourseTree.CheckedNodes.Count == 0)
            {
                Message.Value = noThemesSelected;
                return;
            }

            IdendtityNode stageNode = CurriculumTree.SelectedNode as IdendtityNode;

            Message.Value = alreadyHaveTheme.Replace("{0}", stageNode.Text);
            bool alreadyHaveSomeTheme = false;

            for (int i = 0; i < CourseTree.CheckedNodes.Count; i++)
            {
                IdendtityNode themeNode = CourseTree.CheckedNodes[i] as IdendtityNode;


                if (TeacherHelper.StageContainsTheme(stageNode.ID, themeNode.ID))
                {
                    Message.Value       += themeNode.Text + ", ";
                    alreadyHaveSomeTheme = true;
                }
                else
                {
                    ServerModel.DB.Link(
                        ServerModel.DB.Load <TblStages>(stageNode.ID),
                        ServerModel.DB.Load <TblThemes>(themeNode.ID));
                    stageNode.ChildNodes.Add(new IdendtityNode(ServerModel.DB.Load <TblThemes>(themeNode.ID)));
                }

                CourseTree.CheckedNodes[i].Checked = false;
                i--;
            }

            if (alreadyHaveSomeTheme)
            {
                Message.Value = Message.Value.Remove(Message.Value.Length - 2) + ".";
            }
            else
            {
                Message.Value = string.Empty;
            }
        }
        public void DeleteButton_Click()
        {
            IdendtityNode deletedNode  = CurriculumTree.SelectedNode as IdendtityNode;
            int           themeID      = -1;
            int           stageID      = -1;
            int           curriculumID = -1;

            switch (deletedNode.Type)
            {
            case NodeType.Theme:
            {
                themeID      = deletedNode.ID;
                stageID      = (deletedNode.Parent as IdendtityNode).ID;
                curriculumID = (deletedNode.Parent.Parent as IdendtityNode).ID;
                break;
            }

            case NodeType.Stage:
            {
                stageID      = deletedNode.ID;
                curriculumID = (deletedNode.Parent as IdendtityNode).ID;
                break;
            }

            case NodeType.Curriculum:
            {
                curriculumID = deletedNode.ID;
                break;
            }
            }

            Redirect(ServerModel.Forms.BuildRedirectUrl <CurriculumDeleteConfirmationController>(
                         new CurriculumDeleteConfirmationController
            {
                BackUrl      = RawUrl,
                CurriculumID = curriculumID,
                StageID      = stageID,
                ThemeID      = themeID
            }));
        }
        public void ModifyButton_Click()
        {
            //modifying selected node
            IdendtityNode modifiedNode = CurriculumTree.SelectedNode as IdendtityNode;

            if (modifiedNode.Type == NodeType.Stage)
            {
                TblStages stage = ServerModel.DB.Load <TblStages>(modifiedNode.ID);
                stage.Name        = ObjectName.Value;
                stage.Description = ObjectDescription.Value;
                ServerModel.DB.Update <TblStages>(stage);
            }
            if (modifiedNode.Type == NodeType.Curriculum)
            {
                TblCurriculums curriculum = ServerModel.DB.Load <TblCurriculums>(modifiedNode.ID);
                curriculum.Name        = ObjectName.Value;
                curriculum.Description = ObjectDescription.Value;
                ServerModel.DB.Update <TblCurriculums>(curriculum);
            }

            modifiedNode.Text    = ObjectName.Value;
            modifiedNode.ToolTip = ObjectDescription.Value;
        }
示例#12
0
        private void SelectDatesForObject(IdendtityNode selectedNode)
        {
            IList <DatePeriod> datePeriods;


            if (selectedNode.Type == NodeType.Theme)
            {
                datePeriods = StudentPermissionsHelper.GetPermissionsDatePeriods(_userId, ((IdendtityNode)selectedNode.Parent).ID, ((IdendtityNode)selectedNode.Parent).Type, GetOperationType);
            }
            else
            {
                datePeriods = StudentPermissionsHelper.GetPermissionsDatePeriods(_userId, selectedNode.ID, selectedNode.Type, GetOperationType);
            }


            if (datePeriods.Count == 0)
            {
                SelectDates(DateTime.Today, DateTime.Today.AddYears(1));
            }
            else
            {
                SelectDatesPeriods(datePeriods);
            }
        }