private void Load()
        {
            // Check if the classes and properties have ben loaded

            using (EDBEntities eDB = new EDBEntities())
            {
                foreach (tblTemplateRequirement Rec in (from o in eDB.tblTemplateRequirements where (o.Project_ID == Globals.Project_ID) select o))
                {
                    TemplateRequirementModel templateRequirementItem = new TemplateRequirementModel
                    {
                        Project_ID        = Rec.Project_ID,
                        Template_ID       = Rec.Template_ID,
                        Requirement_ID    = Rec.Requirement_ID,
                        RequirementType   = Rec.RequirementType,
                        PreFATOk          = Rec.PreFATOk,
                        FATOk             = Rec.FATOk,
                        FATBy             = Rec.FATBy,
                        FATDate           = Rec.FATDate,
                        SATOk             = Rec.SATOk,
                        SATBy             = Rec.SATBy,
                        SATDate           = Rec.SATDate,
                        IsChanged         = false,
                        IsNew             = false,
                        IsDeleted         = false,
                        ChildRequirements = new ObservableCollection <TemplateRequirementModel>()
                    };

                    var requirementItem = RequirementViewModelLocator.GetRequirementVM().GetRequirement(templateRequirementItem.Requirement_ID, null);

                    if (requirementItem != null)
                    {
                        templateRequirementItem.ArticleNo          = requirementItem.ArticleNo;
                        templateRequirementItem.ArticleHeader      = requirementItem.ArticleHeader;
                        templateRequirementItem.RequirementType_ID = requirementItem.RequirementType_ID;

                        foreach (var childItem in requirementItem.ChildRequirements)
                        {
                            TemplateRequirementModel item = new TemplateRequirementModel
                            {
                                Project_ID         = childItem.Project_ID,
                                Template_ID        = templateRequirementItem.Template_ID,
                                Requirement_ID     = childItem.ID,
                                ArticleNo          = childItem.ArticleNo,
                                ArticleHeader      = childItem.ArticleHeader,
                                RequirementType    = "Requirement",
                                RequirementType_ID = childItem.RequirementType_ID,
                                ChildRequirements  = new ObservableCollection <TemplateRequirementModel>()
                            };
                            templateRequirementItem.ChildRequirements.Add(item);
                        }

                        TemplateRequirements.Add(templateRequirementItem);
                    }
                }
            }
        }
        public void AssociateWithTemplate(TreeListViewRow destination)
        {
            try
            {
                // Associate all selected templates
                foreach (var templateItem in TemplateViewModelLocator.GetTemplateVM().SelectedItems)
                {
                    // With all selected requirements (m:n)
                    foreach (var requirementItem in RequirementViewModelLocator.GetRequirementVM().SelectedItems)
                    {
                        TemplateRequirementModel templateRequirementItem = new TemplateRequirementModel
                        {
                            IsNew              = true,
                            IsChanged          = false,
                            IsDeleted          = false,
                            Project_ID         = Globals.Project_ID,
                            Template_ID        = templateItem.ID,
                            Requirement_ID     = requirementItem.ID,
                            RequirementType_ID = requirementItem.RequirementType_ID,
                            ArticleNo          = requirementItem.ArticleNo,
                            ArticleHeader      = requirementItem.ArticleHeader,
                            //RequirementType = Globals.DraggedItem.Type,
                            ChildRequirements = new ObservableCollection <TemplateRequirementModel>(),
                        };

                        foreach (var childItem in requirementItem.ChildRequirements)
                        {
                            TemplateRequirementModel templateRequirementChildItem = new TemplateRequirementModel
                            {
                                IsNew              = true,
                                IsChanged          = false,
                                IsDeleted          = false,
                                Project_ID         = Globals.Project_ID,
                                Template_ID        = templateRequirementItem.Template_ID,
                                Requirement_ID     = childItem.ID,
                                RequirementType_ID = childItem.RequirementType_ID,
                                //objectFunctionalityChildItem.FunctionParent_ID = childItem.Parent_ID;
                                ArticleNo         = childItem.ArticleNo,
                                ArticleHeader     = childItem.ArticleHeader,
                                ChildRequirements = new ObservableCollection <TemplateRequirementModel>()
                            };
                            templateRequirementItem.ChildRequirements.Add(templateRequirementChildItem);
                        }
                        ;

                        TemplateRequirements.Add(templateRequirementItem);
                    }
                }
            }
            catch (Exception ex)
            {
                RadWindow.Alert(ex.Message);
            }
        }
 public void Refresh()
 {
     TemplateRequirements.Clear();
     FilteredTemplateRequirements.View.Refresh();
     Load();
 }