/*
         *
         * -----> BUTTONS CLICK <-----
         *
         */

        private void modifyCampaignButton_Click(object sender, EventArgs e)
        {
            if (campaignsGridView.SelectedRows.Count == 0)
            {
                MetroMessageBox.Show(this, "Para eliminar primero debe seleccionar una campaña de la lista", "No hay ninguna campaña seleccionada", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            //se hace depp copy para evitar que el formulario de campaña modifique el objeto antes de guardarlo
            var camapignForm = new CampaignForm(
                DeepCopyHelper.DeepCopy <CampaignDTO>((CampaignDTO)campaignsGridView.SelectedRows[0].DataBoundItem)
                );

            StyleManager.Clone(camapignForm);

            if (camapignForm.ShowDialog(this) == DialogResult.OK)
            {
                //modificar la campaña
                try
                {
                    iCampaignService.Update(camapignForm.iCampaignModel);
                    MetroMessageBox.Show(this, "se han modificado todos los datos", "Exito al modificar la campaña", MessageBoxButtons.OK, MessageBoxIcon.Question);
                    reloadSearch();
                }
                catch (Exception ex)
                {
                    MetroMessageBox.Show(this, "detalles del error: " + ex.Message, "Error al modificar la campaña", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
        private void addCampaignButton_Click(object sender, EventArgs e)
        {
            var camapignForm = new CampaignForm(null);

            StyleManager.Clone(camapignForm);

            if (camapignForm.ShowDialog(this) == DialogResult.OK)
            {
                //guardar la campaña
                try
                {
                    iCampaignService.Create(camapignForm.iCampaignModel);
                    MetroMessageBox.Show(this, "a partir de ahora la campaña creada estara disponible en el sistema", "Exito al crear la campaña", MessageBoxButtons.OK, MessageBoxIcon.Question);
                    reloadSearch();
                }
                catch (Exception ex)
                {
                    MetroMessageBox.Show(this, "detalles del error: " + ex.Message, "Error al crear la campaña", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }