как я получаю это дерево просмотра узлов внутри задачи в C # - PullRequest
0 голосов
/ 26 июня 2018

У меня есть следующий метод, который я получаю в виде дерева от корневого родителя в json, но это занимает слишком много времени, как я изменяю это внутри задачи, я пробовал много вещей, но всегда получаю исключение, как InvalidOperationException: уже открытый DataReader, связанный с этой Командой, который должен быть закрыт первым.

 public JsonResult GetTreeContasContabeis()
    {
        var rootItens = new List<ContaContabil>();
        var allCounts = UnitOfWork.ContasContabeis.All();


        rootItens = allCounts.Where(x => x.ContaContabilPai.Id == null).ToList();


        var retorno = new List<TreeViewRetorno>();

        foreach (var item in rootItens)
            retorno.Add(GetItemContaContabil(item));

        retorno.OrderBy(p => p.text);

        return Json(retorno);
    }


 private TreeViewRetorno GetItemContaContabil(ContaContabil contaContabil)
    {
        var item = new TreeViewRetorno();
        item.id = contaContabil.Id;
        item.text = $"{contaContabil.NumeroConta} - {contaContabil.DescricaoConta}";
        item.hasChildren = (contaContabil.ContasFilhas != null && contaContabil.ContasFilhas.Any());
        item.isTipo = contaContabil.TipoClassificacaoContaContabil;
        item.items = new List<TreeViewRetorno>();

        if (item.hasChildren == true)
        {
            foreach (var filha in contaContabil.ContasFilhas)
                item.items.Add(GetItemContaContabil(filha));
        }
        return item;
    }

 public class TreeViewRetorno
    {
        public Guid? id { get; set; }
        public string text { get; set; }
        public bool hasChildren {get;set;}
        public TipoClassificacaoContaContabil isTipo { get; set; }
        public List<TreeViewRetorno> items { get; set; }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...