private void CaricaRiepilogo(TreeView tree, List <UtentexCartella> utenti, List <Cartella> cartelle)
        {
            var revisori = utenti?.Where(utente => utente.RuoId == (short)App.RuoloDesc.Reviewer);

            if (revisori == null)
            {
                tree.ItemsSource = null;
                return;
            }
            var items = new List <RiepilogoItem>();

            foreach (var revisore in revisori)
            {
                var itemRevisore = new RiepilogoItem
                {
                    Etichetta  = $"{revisore.Login} - {revisore.Nome} {revisore.Cognome}",
                    IsRevisore = true
                };
                var esecutori = utenti?.Where(utente => utente.RuoId == (short)App.RuoloDesc.Esecutore && utente.RevisoreID == revisore.Id);
                if (esecutori == null)
                {
                    items.Add(itemRevisore);
                    continue;
                }
                foreach (var esecutore in esecutori)
                {
                    var itemEsecutore = new RiepilogoItem
                    {
                        Etichetta   = $"{esecutore.Login} - {esecutore.Nome} {esecutore.Cognome}",
                        IsEsecutore = true
                    };
                    if (cartelle == null)
                    {
                        itemRevisore.Figli.Add(itemEsecutore);
                        continue;
                    }
                    foreach (var cartella in cartelle)
                    {
                        var cartelleByEsecutre = cartella.GetCartelleByEsecutore(esecutore.Id);
                        if (cartelleByEsecutre == null)
                        {
                            continue;
                        }
                        var itemArea = cCartelle.CartellaToRiepilogoItem(cartelleByEsecutre);
                        itemArea.IsArea = true;
                        itemEsecutore.Figli.Add(itemArea);
                    }
                    itemRevisore.Figli.Add(itemEsecutore);
                }
                items.Add(itemRevisore);
            }
            tree.ItemsSource = items;
        }
Пример #2
0
        private List <RiepilogoItem> GetRiepilogo(int id, App.RuoloDesc ruolo)
        {
            IEnumerable <UtentexCartella> revisori = null;

            if (ruolo == App.RuoloDesc.TeamLeader)
            {
                revisori = Utenti?.Where(utente => utente.RuoId == (short)App.RuoloDesc.Reviewer);
            }
            else if (ruolo == App.RuoloDesc.Reviewer)
            {
                revisori = Utenti?.Where(utente => utente.RuoId == (short)App.RuoloDesc.Reviewer && utente.Id == id);
            }
            else if (ruolo == App.RuoloDesc.Esecutore)
            {
                var idRevisori = Utenti?.Where(utente => utente.RuoId == (short)App.RuoloDesc.Esecutore && utente.Id == id)?.Select(utente => utente.RevisoreID);
                if (idRevisori != null && idRevisori.Count() > 0)
                {
                    revisori = Utenti?.Where(utente => utente.RuoId == (short)App.RuoloDesc.Reviewer && idRevisori.Contains(utente.Id));
                }
            }
            if (revisori == null)
            {
                trvRiepilogo.ItemsSource = null;
                return(null);
            }
            var items = new List <RiepilogoItem>();

            foreach (var revisore in revisori)
            {
                var itemRevisore = new RiepilogoItem
                {
                    Etichetta  = $"{revisore.Login} - {revisore.Nome} {revisore.Cognome}",
                    IsRevisore = true
                };
                IEnumerable <UtentexCartella> esecutori = null;
                if (ruolo == App.RuoloDesc.Esecutore)
                {
                    esecutori = Utenti?.Where(utente => utente.RuoId == (short)App.RuoloDesc.Esecutore && utente.RevisoreID == revisore.Id && utente.Id == id);
                }
                else
                {
                    esecutori = Utenti?.Where(utente => utente.RuoId == (short)App.RuoloDesc.Esecutore && utente.RevisoreID == revisore.Id);
                }
                if (esecutori == null)
                {
                    items.Add(itemRevisore);
                    continue;
                }
                foreach (var esecutore in esecutori)
                {
                    var itemEsecutore = new RiepilogoItem
                    {
                        Etichetta   = $"{esecutore.Login} - {esecutore.Nome} {esecutore.Cognome}",
                        IsEsecutore = true
                    };
                    if (CartelleCliente == null)
                    {
                        itemRevisore.Figli.Add(itemEsecutore);
                        continue;
                    }
                    foreach (var cartella in CartelleCliente)
                    {
                        var cartelleByEsecutre = cartella.GetCartelleByEsecutore(esecutore.Id);
                        if (cartelleByEsecutre == null)
                        {
                            continue;
                        }
                        var itemArea = cCartelle.CartellaToRiepilogoItem(cartelleByEsecutre);
                        itemArea.IsArea = true;
                        itemEsecutore.Figli.Add(itemArea);
                    }
                    itemRevisore.Figli.Add(itemEsecutore);
                }
                items.Add(itemRevisore);
            }
            return(items);
        }
Пример #3
0
        private void CaricaRiepilogoAmministratore()
        {
            var leaders = cUtenti.GetUtentiTeamLeader();

            if (leaders == null)
            {
                return;
            }
            var items = new List <RiepilogoItem>();

            foreach (var leader in leaders)
            {
                var itemLeader = new RiepilogoItem
                {
                    Etichetta = $"{leader.Value.Login} - {leader.Value.Nome} {leader.Value.Cognome}",
                    IsLeader  = true
                };
                var utentiTeam = cUtenti.GetTeamFromLeader(leader.Value.Id);
                if (utentiTeam != null)
                {
                    var itemTeam = new RiepilogoItem
                    {
                        Etichetta = string.Empty,
                        IsTeam    = true
                    };
                    foreach (var utente in utentiTeam)
                    {
                        var itemUtente = new RiepilogoItem
                        {
                            Etichetta      = $"{utente.Value.Login} - {utente.Value.Nome} {utente.Value.Cognome}",
                            IsLeader       = utente.Value.RuoId == (short)App.RuoloDesc.TeamLeader,
                            IsRevisore     = utente.Value.RuoId == (short)App.RuoloDesc.Reviewer,
                            IsEsecutore    = utente.Value.RuoId == (short)App.RuoloDesc.Esecutore,
                            IsNonAssegnato = utente.Value.RuoId == (short)App.RuoloDesc.NessunRuolo
                        };
                        itemTeam.Figli.Add(itemUtente);
                    }
                    itemLeader.Figli.Add(itemTeam);
                }
                var clienti = cCliente.GetClientiByIdUtente(leader.Value.Id, App.RuoloDesc.TeamLeader);
                if (clienti == null)
                {
                    items.Add(itemLeader);
                    continue;
                }
                foreach (var cliente in clienti)
                {
                    var itemCliente = new RiepilogoItem
                    {
                        Etichetta = $"{cliente.RagioneSociale}",
                        IsCliente = true
                    };
                    //Utenti = cUtenti.GetUtentiXCliente(cliente.ID);
                    //CartelleCliente = cCartelle.GetCartelleByCliente(cliente.ID);
                    //var figli = GetRiepilogo(leader.Value.Id, App.RuoloDesc.TeamLeader);
                    //if (figli == null)
                    //{
                    //   itemLeader.Figli.Add(itemCliente);
                    //   continue;
                    //}
                    //figli.ForEach(f => itemCliente.Figli.Add(f));
                    itemLeader.Figli.Add(itemCliente);
                }
                items.Add(itemLeader);
            }
            trvRiepilogo.ItemsSource = items;
        }