private static void ParseBlockElement(XElement blockElement, Phase phase, Guideline guideline)
        {
            // Generate the appropriate block.
            var block = GenerateBlockOfAppropriateType(blockElement, phase);

            // Add the common properties for this block.
            if (block is SummaryBlock)
            {
                AddCommonProperties(blockElement, block as SummaryBlock);
            }
            else
            {
                AddCommonProperties(blockElement, block);
            }

            // If block is assessment block, add assessment type.
            if (block is AssessmentBlock)
            {
                var            assessmentTypeString = blockElement.Attribute("AssessmentType")?.Value;
                AssessmentType assessmentType;
                var            successful = Enum.TryParse(assessmentTypeString, out assessmentType);
                if (successful)
                {
                    ((AssessmentBlock)block).AssessmentType = assessmentType;
                }
            }

            // Add block links.
            var linksElement = blockElement.Descendants("Links").FirstOrDefault();

            if (linksElement != null)
            {
                foreach (var linkElement in linksElement.Descendants("Link"))
                {
                    ParseLinkElement(linkElement, block);
                }
            }

            // Add block activities.
            var activitiesElement = blockElement.Descendants("Activities").FirstOrDefault();

            if (activitiesElement != null)
            {
                foreach (var activityElement in activitiesElement.Descendants("Activity"))
                {
                    // Generate the BlockActivityData for this element.
                    var blockActivityData = new BlockActivityData(block);

                    // Generate the common properties for this BlockActivityData.
                    AddCommonProperties(activityElement, blockActivityData);

                    // Add this activity data to the block.
                    block.BlockActivities.Add(blockActivityData);
                }
            }

            // Add this block to the phase.
            phase.Blocks.Add(block);
            guideline.LinkManager.Register(block);
        }
Пример #2
0
        public BlockActivityViewModel(BlockActivityData blockActivityData, GuidelinePageViewModel guidelinePageViewModel)
        {
            _guidelinePageViewModel = guidelinePageViewModel;
            BlockActivityData       = blockActivityData;
            Title           = blockActivityData.Title;
            DescriptiveText = blockActivityData.DescriptiveText;
            Activated       = blockActivityData.Activated;
            EntityIconName  = blockActivityData.EntityIconName;

            ActivateCommand = new DelegateCommand(() => Activated = true);
        }
Пример #3
0
 public ActionBlockActivityViewModel(BlockActivityData blockActivityData, GuidelinePageViewModel guidelinePageViewModel) : base(blockActivityData, guidelinePageViewModel)
 {
 }