public void should_save_and_remove_new_contact() { new ContactSQL().Add(new ContactDTO { firstName = "testinsertfirstaname", lastName = "testinsertlastname", fields = new List <FieldDTO> { new FieldDTO { name = "testfield1", value = "testvalue1" } } }); var lastContactAdded = new ContactSQL().GetAll().OrderBy(e => e.id).Single(); Assert.IsTrue(lastContactAdded.firstName == "testinsertfirstaname"); Assert.IsTrue(lastContactAdded.lastName == "testinsertlastname"); Assert.IsTrue(lastContactAdded.fields[0].name == "testfield1"); Assert.IsTrue(lastContactAdded.fields[0].value == "testvalue1"); new ContactSQL().remove(lastContactAdded); var allContact = new ContactSQL().GetAll(); Assert.IsTrue(allContact.Count() == 0); }
/// <summary> /// ajoute toutes les textbox au panel info /// </summary> /// <param name="contact">contact qui preremplira les textbox et qui sera update à l'appui du bouton</param> private void DisplayInfo(int idcontact, Button origin) { ContactDTO contact = new ContactSQL().Get(idcontact); InfoPanel.Controls.Clear(); Button boutonUpdate = new Button(); TextBox boxNewName = SetupPlaceHolder("nouveau champ"); TextBox boxNewValue = new TextBox(); Button boutonAddField = new Button(); //ajoute les textbox qui contiendront les champs du contact, avec nom et prenom par default Dictionary <string, TextBox> textBoxInfo = new Dictionary <string, TextBox>(); foreach (FieldDTO field in contact) { try { textBoxInfo.Add(field.name, SetupTextBoxInfoPanel(field)); } catch { } } //creer et place les textbox d'ajout de champs pour ce contact boxNewName.Location = new Point(0, nbControlsAddedInfoPanel * SPACE_BETWEEN_CONTROLS); boxNewValue.Location = new Point(TEXT_INFO_WIDTH, nbControlsAddedInfoPanel * SPACE_BETWEEN_CONTROLS); InfoPanel.SetFlowBreak(boxNewValue, true); nbControlsAddedInfoPanel++; boxNewName.Hide(); boxNewValue.Hide(); boutonAddField.Text = "Ajouter"; boutonAddField.Location = new Point(TEXT_INFO_WIDTH, nbControlsAddedInfoPanel * SPACE_BETWEEN_CONTROLS); boutonAddField.Click += (e, s) => { boxNewName.Show(); boxNewValue.Show(); boutonAddField.Hide(); nbControlsAddedInfoPanel++; boutonUpdate.Location = new Point(TEXT_INFO_WIDTH * 2, nbControlsAddedInfoPanel * SPACE_BETWEEN_CONTROLS); }; InfoPanel.Controls.Add(boxNewName); InfoPanel.Controls.Add(boxNewValue); InfoPanel.Controls.Add(boutonAddField); //creer et place le bouton qui enregistre les modif faites sur le contact boutonUpdate.Text = "Enregistrer"; boutonUpdate.AutoSize = true; boutonUpdate.Location = new Point(TEXT_INFO_WIDTH * 2, nbControlsAddedInfoPanel * SPACE_BETWEEN_CONTROLS); boutonUpdate.Click += (e, s) => { ContactDTO newContact = new ContactDTO { id = contact.id, firstName = textBoxInfo["FirstName"].Text == "FirstName" ? "" : textBoxInfo["FirstName"].Text, lastName = textBoxInfo["LastName"].Text == "LastName" ? "" : textBoxInfo["LastName"].Text }; foreach (var item in textBoxInfo.Keys) { if (item != "FirstName" && item != "LastName") { newContact.fields.Add(new FieldDTO { idContact = newContact.id, name = item, value = textBoxInfo[item].Text }); } } if (boxNewValue.Text != "" && boxNewName.Text != "nouveau champ") { newContact.fields.Add(new FieldDTO { idContact = newContact.id, name = boxNewName.Text, value = boxNewValue.Text }); new FieldSQL().Add(new FieldDTO { idContact = newContact.id, name = boxNewName.Text, value = boxNewValue.Text }); } contactSQL.update(newContact); InfoPanel.Controls.Clear(); DisplayInfo(newContact.id, null); if (origin != null) { origin.Text = newContact.firstName + " " + newContact.lastName; } }; InfoPanel.Controls.Add(boutonUpdate); }