// Busca os ramos derivados de "branch", lista eles em ordem alfabética através do nome // completo desde a raiz private void SearchBranches(CostTree tree, CostBranch branch) { orderedBranches.Add(tree.GetBranchQualifiedName(branch.Id), branch); foreach (CostBranch child in branch.Children) { SearchBranches(tree, child); } }
/// <summary> /// Recupera uma árvore de custo do banco /// </summary> public CostTree GetCostTree(int tenantId) { CostCenterDAO costCenterDAO = new CostCenterDAO(sqlConnection); List <Object> costCenterList = costCenterDAO.GetAllCostCenters(tenantId); CostCenterAssociateDAO associateDAO = new CostCenterAssociateDAO(sqlConnection); List <Object> associateList = associateDAO.GetAllAssociates(tenantId); CostTreeBuilder costTreeBuilder = new CostTreeBuilder(costCenterList, associateList); CostTree tree = costTreeBuilder.BuildTree(); return(tree); }
/// <summary> /// Retorna uma lista com os custos de impressão por centro de custo /// </summary> public List <Object> GetCostsOfBranches(CostTree tree) { List <Object> costsOfBranches = new List <Object>(); // Caso não tenham sido passados os custos por usuário retorna a lista em branco if (userPrintingCosts == null) { return(costsOfBranches); } // Não modificar o método "SearchBranches" para receber um parâmetro apenas, pois "tree.root" // é apenas um dos casos, nos outros são branchs variados SearchBranches(tree, tree.Root); foreach (KeyValuePair <String, CostBranch> pair in orderedBranches) { GroupPrintingCost groupPrintingCost = AssembleCosts(pair.Value, pair.Key); costsOfBranches.Add(groupPrintingCost); } return(costsOfBranches); }
public CostTreeRenderer(CostTree tree, Object output) { this.tree = tree; this.output = output; }
/// <summary> /// Armazena uma arvore de custo no banco /// </summary> public void SetCostTree(CostTree tree) { // not implemented yet }