private void SetRevisore(Utente revisore)
 {
     Revisore = revisore;
     SetEsecutore(null);
     if (revisore == null)
     {
         cmbReviewer.SelectedItem = null;
     }
     else
     {
         cmbExecutor.ItemsSource = Utenti?.Where(utente => utente.RuoId == (short)App.RuoloDesc.Esecutore && utente.RevisoreID == Revisore.Id);
     }
 }
        private void CmbClienti_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            ConfermaSalvataggio();
            Cliente = (sender as ComboBox)?.SelectedItem as Cliente;
            SetRevisore(null);
            SetArea(null);
            cmbExecutor.ItemsSource = null;
            if (Cliente == null || Cliente.ID == null)
            {
                return;
            }

            // Utenti = cUtenti.GetUtentiByIdCliente(Cliente.ID);
            Utenti = cUtenti.GetUtentiXCliente(Cliente.ID);

            cmbReviewer.ItemsSource = Utenti?.Where(utente => utente.RuoId == (int)App.RuoloDesc.Reviewer);
            CartelleCliente         = cCartelle.GetCartelleByCliente(Cliente.ID);
            CaricaRiepilogo(trvRiepilogo, Utenti, CartelleCliente);
            cmbAree.ItemsSource = cCartelle.GetAree().Where(a => CartelleCliente.Any(c => a.Codice == c.Codice));
        }
Beispiel #3
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);
        }