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)); }
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); }