private void _esperienzaButton_Click(object sender, EventArgs e) { using (EditingRequisitiDialog editingRequisitiDialog = new EditingRequisitiDialog()) { editingRequisitiDialog.Control.Selezionatore = new SelezionatorePerClasse(SelezionatoreBase.SelezionatoreDiTutto, "Esperienza"); editingRequisitiDialog.LoadItemsTipologie(TipologiaFactory.GetTipologie().Where(t => t.GetType().Name == "Categoria").ToList()); if (editingRequisitiDialog.ShowDialog() == DialogResult.OK) { IRequisito r; GradoDiValutazione g; bool notGood = false; AggiungiRequisito(editingRequisitiDialog, out r, out g, out notGood, "Esperienza"); if (!notGood) { RequisitoPersonale rp = RequisitoPersonaleFactory.CreateRequisitoDiEsperienza(r.Guid, g); GiaInserito(rp); RefreshListBox(); } } } }
private void AggiungiRequisito(EditingRequisitiDialog dialog, out IRequisito r, out GradoDiValutazione g, out bool notGood, string tipo) { string nomeRequisito = null; string nomeTipologia = null; bool tipotext = false; bool reqtext = false; notGood = false; bool requisitoSelezionato = ((CheckBox)dialog.Control.Panel2.Controls["_checkNew"]).Checked; bool tipologiaSelezionata = ((CheckBox)dialog.Control.Panel3.Controls["_checkNewTip"]).Checked; r = null; ITipologia t = TipologiaFactory.GetTipologia(((ComboBox)dialog.Control.Panel3.Controls["_tipologie"]).SelectedItem.ToString()); g = (GradoDiValutazione)Enum.Parse(typeof(GradoDiValutazione), ((ComboBox)dialog.Control.Panel2.Controls["_gradoValutazione"]).SelectedItem.ToString(), true); try { if (requisitoSelezionato) { nomeRequisito = ((TextBox)dialog.Control.Panel3.Controls["_nomeReq"]).Text; if (nomeRequisito == string.Empty) { reqtext = true; } nomeTipologia = ((TextBox)dialog.Control.Panel3.Controls["_nomeTip"]).Text; if (nomeTipologia == string.Empty) { tipotext = true; } if (tipologiaSelezionata) { switch (tipo) { case "Formazione": t = TipologiaFactory.CreateLivelloDiIstruzione(nomeTipologia); break; default: t = TipologiaFactory.CreateCategoria(nomeTipologia); break; } } Guid id = new Guid(); switch (tipo) { case "Lingua": id = RequisitoFactory.CreateRequisitoDiLingua(nomeRequisito, t); break; case "Formazione": id = RequisitoFactory.CreateRequisitoDiFormazione(nomeRequisito, t); break; case "Esperienza": id = RequisitoFactory.CreateRequisitoDiEsperienza(nomeRequisito, t); break; case "Competenza": id = RequisitoFactory.CreateRequisitoDiCompetenza(nomeRequisito, t); break; } r = RequisitoFactory.GetRequisito(id); } else { r = (IRequisito)dialog.Control.ListBoxRequisiti.SelectedItem; } } catch (ArgumentException) { notGood = true; StringBuilder s = new StringBuilder(); if (tipotext) { s.Append("una nuova tipologia,"); } if (reqtext) { s.Append("un nuovo requisito,"); } MessageBox.Show("Si è scelto di inserire " + s + " ma lasciato vuoto il relativo campo di testo"); } }