Exemplo n.º 1
0
        public IEnumerable <TaxonomyTypeViewModel> GetTaxonomiesTypeViewModels(long?entityTypeId = null, bool includeTaxonomies = false)
        {
            var taxonomytypes = new List <TaxonomyType>();

            if (entityTypeId != null)
            {
                taxonomytypes.AddRange(GetTaxonomyTypesForEntityType(entityTypeId ?? 0));
            }
            else
            {
                taxonomytypes = _taxTypeEntityHelper.Entities().ToList();
            }

            var result = new List <TaxonomyTypeViewModel>();

            foreach (var taxonomyType in taxonomytypes)
            {
                var details           = _taxTypeEntityHelper.GetDetails(taxonomyType);
                var entityType        = _entityTypeManager.GetEntityType(taxonomyType.EntityTypeId ?? 0);
                var entityTypeDetails = _entityTypeManager.GetEntityTypeDetails(entityType);

                var viewModel = new TaxonomyTypeViewModel
                {
                    Id              = taxonomyType.Id,
                    Name            = taxonomyType.Name,
                    Title           = details.FirstOrDefault(o => o.Field == "title")?.Value,
                    EntityTypeGroup = entityTypeDetails.FirstOrDefault(o => o.Field == "group")?.Value,
                    EntityType      = entityTypeDetails.FirstOrDefault(o => o.Field == "title")?.Value
                };
                if (includeTaxonomies)
                {
                    var taxonomies = GetTaxonomies(viewModel.Id, true);

                    viewModel.Taxonomies = taxonomies.Select(o => new TaxonomyViewModel
                    {
                        Id       = o.Id,
                        Name     = o.Name,
                        ParentId = o.ParentId,
                        Title    = o.Details.FirstOrDefault(d => d.Field == "title").Value
                    });
                }

                result.Add(viewModel);
            }
            return(result);
        }