public LoadTQLinking(string _filepath)
        {
            Init(_filepath);
            if (ccs == default(ControlConstructScheme))
            {
                var client = Utility.GetClient();
                var facet  = new SearchFacet();
                facet.ItemTypes.Add(DdiItemType.ControlConstructScheme);
                facet.SearchTargets.Add(DdiStringType.Name);
                facet.SearchTerms.Add("Topic Question Construct Groups");
                facet.SearchLatestVersion = true;
                SearchResponse response = client.Search(facet);

                var graphPopulator = new GraphPopulator(client)
                {
                    ChildProcessing = ChildReferenceProcessing.PopulateLatest
                };
                graphPopulator.TypesToPopulate.Add(DdiItemType.ControlConstructGroup);

                if (response.Results.Count == 1)
                {
                    ccs = client.GetItem(
                        response.Results[0].CompositeId,
                        ChildReferenceProcessing.PopulateLatest) as ControlConstructScheme;
                    ccs.Accept(new GraphPopulator(client));
                }
            }
        }
Beispiel #2
0
        public static List <string> CollectIds(StudyUnit studyUnit)
        {
            List <string> ids = new List <string>();

            //0. StudyUnit itself
            CollectIds(studyUnit, ids);
            //1. Event
            CollectIds(studyUnit.Events, ids);
            //2. Member
            CollectIds(studyUnit.Members, ids);
            //3. Organization
            CollectIds(studyUnit.Organizations, ids);
            //4. Abstract
            CollectIds(studyUnit.Abstract, ids);
            //5. Coverage
            CollectIds(studyUnit.Coverage, ids);
            //6. Funding Agency
            CollectIds(studyUnit.FundingInfos, ids);
            //6-1. Organization including
            CollectIds(FundingInfo.GetOrganizations(studyUnit.FundingInfos), ids);
            //7.Universe
            CollectIds(Sampling.GetUniverses(studyUnit.Samplings), ids);
            //8.Sampling
            CollectIds(studyUnit.Samplings, ids);
            //9. Concept Scheme
            CollectIds(studyUnit.ConceptSchemes, ids);
            //9-1. Concept
            CollectIds(ConceptScheme.GetConcepts(studyUnit.ConceptSchemes), ids);
            //10. Question
            CollectIds(studyUnit.Questions, ids);
            //10-1. Answer
            CollectIds(Question.GetResponses(studyUnit.Questions), ids);
            //11. Category Scheme
            CollectIds(studyUnit.CategorySchemes, ids);
            //11-1. Category
            CollectIds(CategoryScheme.GetCategories(studyUnit.CategorySchemes), ids);
            //12. Code Scheme
            CollectIds(studyUnit.CodeSchemes, ids);
            //12-1. Code
            CollectIds(CodeScheme.GetCodes(studyUnit.CodeSchemes), ids);
            //13. Variable Scheme
            CollectIds(studyUnit.VariableScheme, ids);
            //14. Variable
            CollectIds(studyUnit.Variables, ids);
            //14-1. Answer
            CollectIds(Variable.GetResponses(studyUnit.Variables), ids);
            //15. Dataset
            CollectIds(studyUnit.DataSets, ids);
            //16. Data File
            CollectIds(studyUnit.DataFiles, ids);
            //17. Order of Question
            CollectIds(studyUnit.ControlConstructSchemes, ids);
            //17-1.Sequence
            CollectIds(ControlConstructScheme.GetSequences(studyUnit.ControlConstructSchemes), ids);
            //17-2.Constructs
            CollectIds(ControlConstructScheme.GetConstructs(studyUnit.ControlConstructSchemes), ids);

            return(ids);
        }
        public override IEnumerable <IVersionable> Build(IEnumerable <IVersionable> ws)
        {
            Collection <IVersionable> allItems = getAllItems();

            var rp  = allItems.OfType <ResourcePackage>().First();
            var qcs = new ControlConstructScheme();

            qcs.ItemName.Add("en-GB", "Topic Question Construct Groups");
            qcs.UserIds.Add(new UserId("closerid", "topics-ccs-000001"));
            var vs = new VariableScheme();

            vs.ItemName.Add("en-GB", "Topic Variable Groups");
            vs.UserIds.Add(new UserId("closerid", "topics-vs-000001"));
            rp.ControlConstructSchemes.Add(qcs);
            rp.VariableSchemes.Add(vs);
            allItems.Add(qcs);
            allItems.Add(vs);

            var concept_lookup_q = new Dictionary <Concept, ControlConstructGroup>();
            var concept_lookup_v = new Dictionary <Concept, VariableGroup>();

            foreach (var concept in allItems.OfType <Concept>().ToList())
            {
                var qcg = new ControlConstructGroup();
                qcg.TypeOfGroup = "ConceptGroup";
                qcg.Concept     = concept;
                qcg.Label.Add("en-GB", concept.Label.Best + " Question Construct Group");
                qcg.ItemName.Add("en-GB", concept.ItemName.Best);
                qcg.UserIds.Add(new UserId("closerid", "topics-qcg-" + concept.ItemName.Best.ToLower()));

                concept_lookup_q[concept] = qcg;

                foreach (var parent_concept in concept.SubclassOf)
                {
                    concept_lookup_q[parent_concept].ChildGroups.Add(qcg);
                }

                qcs.ControlConstructGroups.Add(qcg);
                allItems.Add(qcg);

                var vg = new VariableGroup();
                vg.TypeOfGroup = "ConceptGroup";
                vg.Concept     = concept;
                vg.Label.Add("en-GB", concept.Label.Best + " Variable Group");
                vg.ItemName.Add("en-GB", concept.ItemName.Best);

                concept_lookup_v[concept] = vg;

                foreach (var parent_concept in concept.SubclassOf)
                {
                    concept_lookup_v[parent_concept].ChildGroups.Add(vg);
                }

                vs.VariableGroups.Add(vg);
                allItems.Add(vg);
            }

            return(allItems);
        }
Beispiel #4
0
 public ControlConstructSchemeVM(ControlConstructScheme controlConstructScheme)
 {
     this.controlConstructScheme = controlConstructScheme;
     constructModels             = new List <IConstruct>();
     constructs = new ObservableCollection <ConstructVM>();
     //InModel, it holds as an each array of Question, Description and Branch.
     //In VM it holds all as a collection of abstract classes
     //ModelSyncher cannot be used here, so call UpdateModel in every operation
 }
Beispiel #5
0
        public void RewriteCCS()
        {
            MultilingualString.CurrentCulture = "en-GB";
            VersionableBase.DefaultAgencyId   = "example.org";

            var client = RepositoryIntro.GetClient();

            var instance = client.GetItem(new Guid("b9ee3aa5-5bc5-43ed-a24e-f560abb30801"), "example.org", 2)
                           as DdiInstance;

            //DDIWorkflowDeserializer deserializer = new DDIWorkflowDeserializer();
            //var instance = deserializer.LoadDdiFile(@"D:\Downloads\filesforMinneapolis\filesforMinneapolis\bcs08v08.xml");

            GraphPopulator populator = new GraphPopulator(client);

            populator.ChildProcessing = ChildReferenceProcessing.Populate;
            instance.Accept(populator);

            var resourcePackage = instance.ResourcePackages[0];

            var instrument = instance.ResourcePackages[0].DataCollections[0].Instruments[0];

            //var topLevelSequence = client.GetLatestItem(new Guid("ceaa9acf-2b2f-4c41-b298-b9f419412586"), "cls")
            //    as CustomSequenceActivity;

            var topLevelSequence = instrument.Sequence;

            var moduleSequences = topLevelSequence.Activities;

            foreach (CustomSequenceActivity module in moduleSequences.OfType <CustomSequenceActivity>())
            {
                DirtyItemGatherer gatherer = new DirtyItemGatherer(true);
                module.Accept(gatherer);

                var allChildren = gatherer.DirtyItems;

                ControlConstructScheme ccs = new ControlConstructScheme();
                ccs.ItemName.Copy(module.ItemName);

                foreach (var child in allChildren.OfType <ActivityBase>())
                {
                    ccs.ControlConstructs.Add(child);
                }

                //client.RegisterItem(ccs, new CommitOptions());

                resourcePackage.ControlConstructSchemes.Add(ccs);
            }

            DDIWorkflowSerializer serializer = new DDIWorkflowSerializer();

            serializer.UseConciseBoundedDescription = false;
            var doc = serializer.Serialize(instance);

            doc.Save(@"d:\ColecticaOutput\bcsv8.xml");
        }
        public void RewriteCCS()
        {
            MultilingualString.CurrentCulture = "en-GB";
            VersionableBase.DefaultAgencyId = "example.org";

            var client = RepositoryIntro.GetClient();

            var instance = client.GetItem(new Guid("b9ee3aa5-5bc5-43ed-a24e-f560abb30801"), "example.org", 2)
                as DdiInstance;

            //DDIWorkflowDeserializer deserializer = new DDIWorkflowDeserializer();
            //var instance = deserializer.LoadDdiFile(@"D:\Downloads\filesforMinneapolis\filesforMinneapolis\bcs08v08.xml");

            GraphPopulator populator = new GraphPopulator(client);
            populator.ChildProcessing = ChildReferenceProcessing.Populate;
            instance.Accept(populator);

            var resourcePackage = instance.ResourcePackages[0];

            var instrument = instance.ResourcePackages[0].DataCollections[0].Instruments[0];

            //var topLevelSequence = client.GetLatestItem(new Guid("ceaa9acf-2b2f-4c41-b298-b9f419412586"), "cls")
            //    as CustomSequenceActivity;

            var topLevelSequence = instrument.Sequence;

            var moduleSequences = topLevelSequence.Activities;

            foreach (CustomSequenceActivity module in moduleSequences.OfType<CustomSequenceActivity>())
            {
                DirtyItemGatherer gatherer = new DirtyItemGatherer(true);
                module.Accept(gatherer);

                var allChildren = gatherer.DirtyItems;

                ControlConstructScheme ccs = new ControlConstructScheme();
                ccs.ItemName.Copy(module.ItemName);

                foreach (var child in allChildren.OfType<ActivityBase>())
                {
                    ccs.ControlConstructs.Add(child);
                }

                //client.RegisterItem(ccs, new CommitOptions());

                resourcePackage.ControlConstructSchemes.Add(ccs);
            }

            DDIWorkflowSerializer serializer = new DDIWorkflowSerializer();
            serializer.UseConciseBoundedDescription = false;
            var doc = serializer.Serialize(instance);
            doc.Save(@"d:\ColecticaOutput\bcsv8.xml");
        }
        public static IEnumerable <IVersionable> FinishedAllBuilds(bool clear_vs_reference = true)
        {
            if (ccs == default(ControlConstructScheme))
            {
                return(new List <IVersionable>());
            }
            else
            {
                var gthr = new ItemGathererVisitor();
                gthr.TypesToFind.Add(DdiItemType.ControlConstructScheme);
                gthr.TypesToFind.Add(DdiItemType.ControlConstructGroup);
                ccs.Accept(gthr);

                var foundItems = gthr.FoundItems;

                if (clear_vs_reference)
                {
                    ccs = default(ControlConstructScheme);
                }

                return(foundItems);
            }
        }
Beispiel #8
0
        public static void RenameIds(StudyUnit orgStudyUnit, StudyUnit newStudyUnit)
        {
            // renumber the ID of newStudyUnit to avoid duplication between ID of newStudyUnit ID and orgStudyUnit

            List <string> ids = CollectIds(orgStudyUnit);

            //0. StudyUnit itself
            RenameIds(newStudyUnit, ids);
            //1. Event
            RenameIds(newStudyUnit.Events, ids);
            //2. Member
            RenameIds(newStudyUnit.Members, ids, (result) =>
            {
                Sampling.ChangeMemberId(newStudyUnit.Samplings, result.OldId, result.NewId);
            });

            //3. Organization
            RenameIds(newStudyUnit.Organizations, ids, (result) =>
            {
                Member.ChangeOrganizationId(newStudyUnit.Members, result.OldId, result.NewId);
                Sampling.ChangeMemberId(newStudyUnit.Samplings, result.OldId, result.NewId);
            });
            //4. Abstract
            RenameIds(newStudyUnit.Abstract, ids);
            //5. Coverage
            RenameIds(newStudyUnit.Coverage, ids);
            //6. Funding Agency
            RenameIds(newStudyUnit.FundingInfos, ids);
            RenameIds(newStudyUnit.FundingInfoOrganizations, ids); //Organization of Funding Agency
            ////7.Universe
            RenameIds(newStudyUnit.AllUniverses, ids, (result) =>
            {
                Variable.ChangeUniverseId(newStudyUnit.Variables, result.OldId, result.NewId);
            });
            //8.Sampling
            RenameIds(newStudyUnit.Samplings, ids);
            //9. Concept Scheme
            RenameIds(newStudyUnit.ConceptSchemes, ids);
            //9-1. Concept
            RenameIds(ConceptScheme.GetConcepts(newStudyUnit.ConceptSchemes), ids, (result) =>
            {
                Question.ChangeConceptId(newStudyUnit.Questions, result.OldId, result.NewId);
                Variable.ChangeConceptId(newStudyUnit.Variables, result.OldId, result.NewId);
                Book.ChangeMetaDataId(newStudyUnit.Books, result.OldId, result.NewId);
            });
            //10. Question
            RenameIds(newStudyUnit.Questions, ids, (result) =>
            {
                ControlConstructScheme.ChangeQuestionId(newStudyUnit.ControlConstructSchemes, result.OldId, result.NewId);
                Variable.ChangeQuestionId(newStudyUnit.Variables, result.OldId, result.NewId);
                Book.ChangeMetaDataId(newStudyUnit.Books, result.OldId, result.NewId);
            });
            //11. Category Scheme
            RenameIds(newStudyUnit.CategorySchemes, ids, (result) =>
            {
                CategoryScheme.ChangeCategorySchemeId(newStudyUnit.CategorySchemes, result.OldId, result.NewId);
            });
            //11-1. Category
            RenameIds(CategoryScheme.GetCategories(newStudyUnit.CategorySchemes), ids, (result) =>
            {
                CodeScheme.ChangeCategoryId(newStudyUnit.CodeSchemes, result.OldId, result.NewId);
            });
            //12. Code Scheme
            RenameIds(newStudyUnit.CodeSchemes, ids, (result) =>
            {
                CodeScheme.ChangeCodeSchemeId(newStudyUnit.CodeSchemes, result.OldId, result.NewId);
            });
            //12-1. Code
            RenameIds(CodeScheme.GetCodes(newStudyUnit.CodeSchemes), ids);
            //13. Variable Scheme
            RenameIds(newStudyUnit.VariableScheme, ids);
            //14. Variable
            RenameIds(newStudyUnit.Variables, ids, (result) =>
            {
                DataSet.ChangeVariableId(newStudyUnit.DataSets, result.OldId, result.NewId);
                Book.ChangeMetaDataId(newStudyUnit.Books, result.OldId, result.NewId);
                StatisticsInfo.ChangeVariableId(newStudyUnit.StatisticsInfos, result.OldId, result.NewId);
            });
            //15. Dataset
            RenameIds(newStudyUnit.DataSets, ids, (result) =>
            {
                DataFile.ChangeDataSetId(newStudyUnit.DataFiles, result.OldId, result.NewId);
            });
            //16. Data File
            RenameIds(newStudyUnit.DataFiles, ids);
            //17. Order of Question
            RenameIds(newStudyUnit.ControlConstructSchemes, ids);
            //17-1.Sequence
            RenameIds(ControlConstructScheme.GetSequences(newStudyUnit.ControlConstructSchemes), ids);
            //17-2.Constructs
            RenameIds(ControlConstructScheme.GetConstructs(newStudyUnit.ControlConstructSchemes), ids, (result) =>
            {
                ControlConstructScheme.ChangeControlConstructId(newStudyUnit.ControlConstructSchemes, result.OldId, result.NewId);
            });

            //Related materials
            RenameIds(newStudyUnit.Books, ids);
        }