private ListeObservable <T> Ajouter_List <T, U>(object sender, RoutedEventArgs e, Boolean UnSeul = false) where T : ObjetGestion, new() where U : ObjetGestion { ListeObservable <T> pListe = new ListeObservable <T>(); ListBox V; ListeObservable <T> Liste; List <T> Ls; T L; if (Info(sender as MenuItem, out V, out Liste, out Ls, out L)) { U Parent = (U)V.DataContext; // On force à faire au minimum un tour de boucle dans le cas ou la liste est vide. int Nb = Math.Max(Ls.Count, 1); if (UnSeul) { Nb = 1; } for (int i = 0; i < Nb; i++) { T obj = Ajouter <T, U>(Parent); pListe.Add(obj); V.ScrollIntoView(obj); V.SelectedItem = obj; } } return(pListe); }
private ListeObservable <T> Inserer_Coller_List <T>(object sender, RoutedEventArgs e) where T : ObjetGestion, new() { ListeObservable <T> pListe = new ListeObservable <T>(); ListBox V; ListeObservable <T> Liste; List <T> Ls; T L; if (Info(sender as MenuItem, out V, out Liste, out Ls, out L) && (_Copie_Liste != null)) { List <T> pListeCopie = new List <T>(); pListeCopie = _Copie_Liste as List <T>; foreach (T iL in pListeCopie) { T Obj = Ajouter <T>(); pListe.Add(Obj); Obj.Copier(iL); // Si la liste contient des lignes, on la déplace if (L != null) { Liste.Move(Liste.IndexOf(Obj), Liste.IndexOf(L)); } } Liste.Numeroter(); } return(pListe); }
public ListeObservable(ListeObservable <T> Liste) { foreach (T item in Liste) { base.Add(item); } }
protected void SupprimerListe <T>(ListeObservable <T> Liste) where T : ObjetGestion { if (Liste != null) { while (Liste.Count > 0) { Liste[0].Supprimer(); } } }
private Boolean Info <T>(MenuItem I, out ListBox V, out ListeObservable <T> Liste, out List <T> Ls, out T L) where T : ObjetWpf, INotifyPropertyChanged { V = null; Liste = null; Ls = null; L = default(T); if (I != null) { V = (I.Parent as ContextMenu).PlacementTarget as ListBox; Liste = V.ItemsSource as ListeObservable <T>; Ls = V.SelectedItems.Cast <T>().ToList(); L = (T)V.SelectedItem; if ((V != null) && (Liste != null) && (Ls != null) && ((L != null) || (Liste.Count == 0))) { return(true); } } return(false); }
private ListeObservable <T> Inserer_List <T>(object sender, RoutedEventArgs e) where T : ObjetGestion, new() { ListeObservable <T> pListe = new ListeObservable <T>(); ListBox V; ListeObservable <T> Liste; List <T> Ls; T L; if (Info(sender as MenuItem, out V, out Liste, out Ls, out L)) { foreach (T iL in Ls) { T Obj = Ajouter <T>(); pListe.Add(Obj); Liste.Move(Liste.IndexOf(Obj), Liste.IndexOf(L)); } Liste.Numeroter(); } return(pListe); }
private ListeObservable <T> Inserer_Coller_List <T, U>(object sender, RoutedEventArgs e) where T : ObjetGestion, new() where U : ObjetGestion { // Liste temporaire renvoyé par la fonction ListeObservable <T> pListe = new ListeObservable <T>(); ListBox V; ListeObservable <T> Liste; List <T> Ls; T L; if (Info(sender as MenuItem, out V, out Liste, out Ls, out L) && (_Copie_Liste != null)) { List <T> pListeCopie = new List <T>(); U Parent = (U)V.DataContext; pListeCopie = _Copie_Liste as List <T>; foreach (T iL in pListeCopie) { // On ajoute une ligne T Obj = Ajouter <T, U>(Parent); pListe.Add(Obj); // On copie la ligne Obj.Copier(iL); // Si la liste contient des lignes, on la déplace if (L != null) { Liste.Move(Liste.IndexOf(Obj), Liste.IndexOf(L)); } } Liste.Numeroter(); } return(pListe); }
private ListeObservable <T> Ajouter_List <T>(object sender, RoutedEventArgs e, Boolean UnSeul = false) where T : ObjetGestion, new() { ListeObservable <T> pListe = new ListeObservable <T>(); ListBox V; ListeObservable <T> Liste; List <T> Ls; T L; if (Info(sender as MenuItem, out V, out Liste, out Ls, out L)) { int Nb = Math.Max(Ls.Count, 1); if (UnSeul) { Nb = 1; } // On force à faire au minimum un tour de boucle dans le cas ou la liste est vide. for (int i = 0; i < Nb; i++) { pListe.Add(Ajouter <T>()); } } return(pListe); }
public Boolean Analyser(DateTime dateDebut, DateTime dateFin) { _ListeAnalyseChantier = new ListeObservable <AnalyseChantier>(); if (dateFin <= dateDebut) { return(false); } if ((dateFin - dateDebut).TotalDays < 32) { _DateValeur = String.Format("{0}", dateDebut.ToString("MMM yy")).UpperCaseFirstCharacter(); } else { _DateValeur = String.Format("de {0} à {1}", dateDebut.ToString("MMM yy"), dateFin.ToString("MMM yy")); } var format = "yyyy-MM-dd HH:mm:ss"; var filtre = String.Format("datevaleur >= '{0}' AND datevaleur < '{1}' ", dateDebut.ToString(format), dateFin.ToString(format) ); var lstAchat = Bdd2.ListeFiltre <Achat>(filtre); var lstHeure = Bdd2.ListeFiltre <Heure>(filtre); if ((lstAchat.Count + lstHeure.Count) == 0) { return(false); } // Permet de précharger les parents et de limiter le nombre de requetes Sql var lstPostes = Bdd2.Parents <Poste, Achat>(lstAchat); foreach (var poste in Bdd2.Parents <Poste, Heure>(lstHeure)) { lstPostes.Add(poste); } Bdd2.Parents <Chantier, Poste>(lstPostes); // fin du préchargement var dicAnalysePoste = new Dictionary <int, AnalysePoste>(); foreach (var achat in lstAchat) { var pst = achat.Poste; AnalysePoste ap; if (dicAnalysePoste.ContainsKey(pst.Id)) { ap = dicAnalysePoste[pst.Id]; } else { dicAnalysePoste.Add(pst.Id, ap = new AnalysePoste(pst)); } ap.AjouterAchat(achat); } foreach (var heure in lstHeure) { var pst = heure.Poste;; AnalysePoste ap; if (dicAnalysePoste.ContainsKey(pst.Id)) { ap = dicAnalysePoste[pst.Id]; } else { dicAnalysePoste.Add(pst.Id, ap = new AnalysePoste(pst)); } ap.AjouterHeure(heure); } var dicAnalyseChantier = new Dictionary <int, AnalyseChantier>(); foreach (var analysePoste in dicAnalysePoste.Values) { var cht = analysePoste.Poste.Chantier; AnalyseChantier ac; if (dicAnalyseChantier.ContainsKey(cht.Id)) { ac = dicAnalyseChantier[cht.Id]; } else { dicAnalyseChantier.Add(cht.Id, ac = new AnalyseChantier(cht)); } analysePoste.AnalyseChantier = ac; ac.AjouterAnalysePoste(analysePoste); } foreach (var analyseChantier in dicAnalyseChantier.Values) { analyseChantier.AnalysePeriode = this; this.AjouterAnalyseChantier(analyseChantier); } return(true); }