/// <summary> /// Evénement lors du clic sur le bouton Ajout Eleve /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnAddEleve_Click(object sender, EventArgs e) { int _numElement; int _lastSelected = 0; InfosClasse _infoClass = (InfosClasse)cmbClasse.SelectedItem; // Si la classe est nulle on est dans le cas d'une création sans liste if (_infoClass == null) { _infoClass = new InfosClasse(); } switch (tabPriseDeVue.SelectedIndex) { case 0: // On ajoute une Person Person _newPerson = new Person(); _newPerson.Class = _infoClass.nameClass; _newPerson.ClassId = _infoClass.idClass; // Si la classe est toppé come gratuite, on ajoute tous les éléments en Gratuit if (_infoClass.allGratis) { _newPerson.InfosPDV.IsGratis = true; } _newPerson.TypePerson = Constantes.cstEleve; // Par défaut, on crée un élève int _maxId = ClassOutils.getMaxId(p_applClass.School.getListFromType(Constantes.cstIndividu)); _newPerson.Id = _maxId.ToString("D4"); _numElement = ClassOutils.getMaxNumElement(p_SessionBase.Content.ListElement); _newPerson.NumElement = _numElement; _newPerson.Name = "E" + _numElement.ToString("D4"); _newPerson.FirstName = String.Empty; ListePersons.frmEditIndividu frmEdit = new ListePersons.frmEditIndividu(_newPerson, p_applClass.School, ModeAppel.Create); if (frmEdit.ShowDialog(this) == DialogResult.OK) { // On ajoute le Groupe dans la Session. // Il faut aussi l'ajouter dans la liste des éléments p_applClass.School.ListElement.Add(_newPerson); p_applClass.School.IsChanged = true; ClassOutils.saveSchoolFile(p_applClass); p_SessionBase.Content.ListElement.Add(_newPerson); // Dans le cas où on est en double vue on duplique l'élément if (p_applClass.School.DoubleView && p_SessionBase.Content.TypeSession == Constantes.cstIndividu) { _maxId++; IElement _newElement = (IElement)_newPerson.Clone(); _newElement.Id = _newPerson.Id + "B"; _newElement.FirstName += "(BIS)"; _newElement.Photos = new List<FilePhoto>(); _newElement.InfosPDV = new InfoPdV(); p_SessionBase.Content.ListElement.Add(_newElement); } // Il faut trier la liste pour etre cohérent à la liste affichée p_SessionBase.Content.ListElement = p_SessionBase.Content.ListElement.OrderBy(o => o.KeyAsc).ToList(); _lastSelected = this.searchElement(_newPerson); this.ClearListe(); this.ChargeListe(p_SessionBase.Content.ListElement); } break; case 1: // On ajoute un Group Group _newGroup = new Group(); _newGroup.Class = _infoClass.nameClass; _newGroup.ClassId = _infoClass.idClass; // Si la classe est toppé come gratuite, on ajoute tous les éléments en Gratuit if (_infoClass.allGratis) { _newGroup.InfosPDV.IsGratis = true; } _newGroup.TypePerson = Constantes.cstGroup; // Par défaut, on crée un élève int _maxGrpId = ClassOutils.getMaxId(p_SessionBase.Content.ListElement); _newGroup.NumElement = ClassOutils.getMaxNumElement(p_SessionBase.Content.ListElement); _newGroup.Id = _maxGrpId.ToString("D4"); _newGroup.Name = "G" + _newGroup.NumElement.ToString("D4"); _newGroup.FirstName = String.Empty; ListePersons.frmEditGroupe frmEditGrp = new ListePersons.frmEditGroupe(_newGroup, p_applClass.School, ModeAppel.Create); if (frmEditGrp.ShowDialog(this) == DialogResult.OK) { // On ajoute le Groupe dans la Session. // Il faut aussi l'ajouter dans la liste des éléments p_applClass.School.ListElement.Add(_newGroup); p_applClass.School.IsChanged = true; ClassOutils.saveSchoolFile(p_applClass); p_SessionBase.Content.ListElement.Add(_newGroup); // Il faut trier la liste pour etre cohérent à la liste affichée p_SessionBase.Content.ListElement = p_SessionBase.Content.ListElement.OrderBy(o => o.KeyAsc).ToList(); _lastSelected = this.searchElement(_newGroup); this.ClearListe(); this.ChargeListe(p_SessionBase.Content.ListElement); } break; case 2: // On ajoute une Fratrie Person _newFratrie = new Person(); _newFratrie.Class = Constantes.cstFratrie; _newFratrie.ClassId = 99999; _newFratrie.TypePerson = Constantes.cstEleve; // Une Fratrie est un Elève int _maxFraId = ClassOutils.getMaxId(p_SessionBase.Content.ListElement); _newFratrie.NumElement = ClassOutils.getMaxNumElement(p_SessionBase.Content.ListElement); _newFratrie.Id = _maxFraId.ToString("D4"); _newFratrie.Name = "F" + _newFratrie.NumElement.ToString("D4"); _newFratrie.FirstName = String.Empty; ListePersons.frmEditGroupe frmEditFratrie = new ListePersons.frmEditGroupe(_newFratrie, p_applClass.School, ModeAppel.Create); if (frmEditFratrie.ShowDialog(this) == DialogResult.OK) { // On ajoute le Groupe dans la Session. // Il faut aussi l'ajouter dans la liste des éléments p_applClass.School.ListElement.Add(_newFratrie); p_applClass.School.IsChanged = true; ClassOutils.saveSchoolFile(p_applClass); p_SessionBase.Content.ListElement.Add(_newFratrie); // Il faut trier la liste pour etre cohérent à la liste affichée p_SessionBase.Content.ListElement = p_SessionBase.Content.ListElement.OrderBy(o => o.KeyAsc).ToList(); _lastSelected = this.searchElement(_newFratrie); this.ClearListe(); this.ChargeListe(p_SessionBase.Content.ListElement); } break; } if (lstPupils.Items.Count > 0) { lstPupils.Items[_lastSelected].Selected = true; lstPupils.Items[_lastSelected].EnsureVisible(); } this.actualiseCompteurs(); }
/// <summary> /// Modifier un élément dans la liste /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void modifyItemMenu_Click(object sender, EventArgs e) { IElement _selectedItem = (IElement)ctxItemMenu.Tag; Form frmEdit; if (_selectedItem.TypeElement.Equals(Constantes.cstIndividu)) { frmEdit = new ListePersons.frmEditIndividu(_selectedItem, p_applClass.School, ModeAppel.Update); } else { frmEdit = new ListePersons.frmEditGroupe(_selectedItem, p_applClass.School, ModeAppel.Append); } if (frmEdit.ShowDialog(this) == DialogResult.OK) { lstPupils.BeginUpdate(); lstPupils.FocusedItem.SubItems[colFirstName.Index].Text = _selectedItem.GetStringDisplay(colFirstName.Index); lstPupils.FocusedItem.SubItems[colName.Index].Text = _selectedItem.GetStringDisplay(colName.Index); lstPupils.EndUpdate(); lstPupils.Refresh(); p_applClass.School.updateElement(_selectedItem); this.RenamePhoto(_selectedItem); } }