private DM.BaseModel FetchModelByActivityMetadata(DM.ActivityMetadata metadata, ref int uniqueCount)
        {
            DM.BaseModel model = null;
            switch (metadata.ActivityClass)
            {
                case "TridentBasicActivities.Activities.ForActivity":
                    //model = this.FetchForActivityModelByMeta(metadata, uniqueCount);
                    //DM.ModelFactory.AssignForActivityModelAttributes(model as DM.ForActivityCompositeModel, parentModel);
                    break;

                case "TridentBasicActivities.Activities.Replicator":
                    //model = this.FetchReplicatorActivityModelByMeta(metadata, uniqueCount);
                    //DM.ModelFactory.AssignReplicatorActivityModelAttributes(model as ReplicatorActivityCompositeModel, parentModel);
                    break;

                case "TridentBasicActivities.Activities.IFElse":
                    //model = this.FetchIfElseCompositeActivityModelByMeta(metadata, uniqueCount);
                    //DM.ModelFactory.AssignIfElseActivityModelAttributes(model as IfElseActivityCompositeModel, parentModel);
                    break;

                default:
                    if (metadata.IsComposite)
                    {
                        model = this.FetchCompositeActivityModelByMeta(metadata, ref uniqueCount);
                        //AssignCompositeActivityModelAttributes(model as DM.CompositeActivityModel, parentModel);
                    }
                    else
                    {
                        model = this.FetchSimpleActivityModelByMeta(metadata, ref uniqueCount);
                        //DM.ModelFactory.AssignSimpleActivityModelAttributes(model as SimpleActivityModel, parentModel);
                    }

                    break;
            }

            return model;
        }
        private DM.CompositeActivityModel FetchCompositeActivityModelByMeta(DM.ActivityMetadata metaData, ref int uniqueCount)
        {
            DM.CompositeActivityModel compositeModel = new DM.CompositeActivityModel(metaData, uniqueCount++.ToString());
            if (compositeModel.ActivityClass.Equals("System.Workflow.Activities.ParallelActivity", StringComparison.OrdinalIgnoreCase))
            {
                DM.CompositeActivityModel childSequenceActivity1 = this.FetchModelByActivityClass("System.Workflow.Activities.SequenceActivity",
                    ref uniqueCount) as DM.CompositeActivityModel;

                DM.CompositeActivityModel test = childSequenceActivity1 as DM.CompositeActivityModel;

                childSequenceActivity1.ParentModel = compositeModel;
                
                DM.CompositeActivityModel childSequenceActivity2 = this.FetchModelByActivityClass("System.Workflow.Activities.SequenceActivity",
                    ref uniqueCount) as DM.CompositeActivityModel;
                childSequenceActivity2.ParentModel = compositeModel;
                
                compositeModel.Children.Add(childSequenceActivity1);
                compositeModel.Children.Add(childSequenceActivity2);
            }

            return compositeModel;
        }
 /// <summary>
 /// Checks whether the given model is a parallel composite model
 /// </summary>
 /// <param name="model">Target model that is sent for checking</param>
 /// <returns></returns>
 public bool IsParallelBasedModel(DM.BaseModel model)
 {
     return 
         (model is DM.BaseCompositeModel) && (model.ActivityClass == "System.Workflow.Activities.ParallelActivity") ? true : false;
 }
 private DM.SimpleActivityModel FetchSimpleActivityModelByMeta(DM.ActivityMetadata metaData, ref int uniqueCount)
 {
     return new DM.SimpleActivityModel(metaData, uniqueCount++.ToString());
 }