Пример #1
0
        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);
        }
Пример #2
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);
        }