public ResourceStructureParentChoosingModel(RSE.ResourceStructure resourceStructure)
        {
            RsId        = resourceStructure.Id;
            Name        = resourceStructure.Name;
            Description = resourceStructure.Description;
            Locked      = false;

            using (ResourceStructureAttributeManager rsaManager = new ResourceStructureAttributeManager())
            {
                List <ResourceAttributeUsage>          usages = rsaManager.GetResourceStructureAttributeUsagesByRSId(resourceStructure.Id);
                List <ResourceStructureAttributeModel> list   = new List <ResourceStructureAttributeModel>();
                List <string> listNames = new List <string>();
                if (usages != null)
                {
                    foreach (ResourceAttributeUsage usage in usages)
                    {
                        list.Add(new ResourceStructureAttributeModel(usage.ResourceStructureAttribute));
                    }
                }


                if (list != null)
                {
                    listNames = list.Select(e => e.AttributeName).ToList();
                }

                ResourceStructureAttributesNames = listNames;
            }
        }
        public ResourceStructureModel Convert(RSE.ResourceStructure resourceStructure)
        {
            using (ResourceStructureAttributeManager rsaManager = new ResourceStructureAttributeManager())
            {
                List <ResourceAttributeUsage> usages             = rsaManager.GetResourceStructureAttributeUsagesByRSId(resourceStructure.Id);
                List <ResourceStructureAttributeUsageModel> list = new List <ResourceStructureAttributeUsageModel>();

                if (usages != null)
                {
                    foreach (ResourceAttributeUsage usage in usages)
                    {
                        list.Add(new ResourceStructureAttributeUsageModel(usage.Id));
                    }
                }

                return(new ResourceStructureModel()
                {
                    Id = resourceStructure.Id,
                    Name = resourceStructure.Name,
                    Description = resourceStructure.Description,
                    ResourceStructureAttributeUsages = list,
                    //Children = resourceStructure.Children.ToList()
                    //Parent = new ResourceStructureModel(resourceStructure.Parent),
                    SelectedItem = new ResourceStructureAttributeModel(),
                    AllResourceStructures = new List <ResourceStructureModel>()
                });
            }
        }
        public ResourceStructureModel(RSE.ResourceStructure resourceStructure)
        {
            Id                               = resourceStructure.Id;
            Name                             = resourceStructure.Name;
            Description                      = resourceStructure.Description;
            AllResourceStructures            = new List <ResourceStructureModel>();
            ResourceStructureAttributeUsages = new List <ResourceStructureAttributeUsageModel>();

            using (ResourceStructureManager rManager = new ResourceStructureManager())
                using (ResourceStructureAttributeManager rsaManager = new ResourceStructureAttributeManager())
                {
                    if (resourceStructure.Parent != null)
                    {
                        RSE.ResourceStructure parent = rManager.GetResourceStructureById(resourceStructure.Parent.Id);
                        Parent = Convert(parent);
                        //Get Parent attributes(usages) and add it to ResourceStructureAttributeUsages List
                        List <ResourceAttributeUsage> parentUsages = rsaManager.GetResourceStructureAttributeUsagesByRSId(Parent.Id);
                        if (parentUsages.Count > 0)
                        {
                            foreach (ResourceAttributeUsage usage in parentUsages)
                            {
                                ResourceStructureAttributeUsages.Add(new ResourceStructureAttributeUsageModel(usage.Id, usage.ResourceStructureAttribute.Id, Parent.Name));
                            }
                        }
                    }
                    else
                    {
                        Parent = null;
                    }


                    List <ResourceAttributeUsage> usages = rsaManager.GetResourceStructureAttributeUsagesByRSId(resourceStructure.Id);

                    if (usages.Count > 0)
                    {
                        foreach (ResourceAttributeUsage usage in usages)
                        {
                            ResourceStructureAttributeUsages.Add(new ResourceStructureAttributeUsageModel(usage.Id, usage.ResourceStructureAttribute.Id, null));
                        }
                    }

                    SelectedItem = new ResourceStructureAttributeModel();
                }
        }
        public ResourceStructureManagerModel(RSE.ResourceStructure resourceStructure)
        {
            Id           = resourceStructure.Id;
            Name         = resourceStructure.Name;
            Description  = resourceStructure.Description;
            InUse        = false;
            EditAccess   = false;
            DeleteAccess = false;

            using (ResourceStructureManager rManager = new ResourceStructureManager())
                using (ResourceStructureAttributeManager rsaManager = new ResourceStructureAttributeManager())
                {
                    if (resourceStructure.Parent != null)
                    {
                        RSE.ResourceStructure parent = rManager.GetResourceStructureById(resourceStructure.Parent.Id);
                        Parent = parent.Name;
                    }
                    else
                    {
                        Parent = "";
                    }

                    List <ResourceAttributeUsage>      usages = rsaManager.GetResourceStructureAttributeUsagesByRSId(resourceStructure.Id);
                    List <ResourceAttributeUsageModel> list   = new List <ResourceAttributeUsageModel>();
                    List <string> listNames = new List <string>();
                    if (usages != null)
                    {
                        foreach (ResourceAttributeUsage usage in usages)
                        {
                            list.Add(new ResourceAttributeUsageModel(usage));
                        }
                    }


                    if (list != null)
                    {
                        listNames = list.Select(e => e.ResourceStructureAttribute.Name).ToList();
                    }

                    ResourceStructureAttributesNames = listNames;
                }
        }