private void tsbDeleteParameters_Click(object sender, EventArgs e) { if (lvParameters.SelectedItems.Count == 0) { MessageBox.Show(this, "Please select a parameter", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } SetState(true); WorkAsync("Deleting attribute(s)...", (bw, evt) => { var lvItems = (ListView.SelectedListViewItemCollection)((object[])evt.Argument)[0]; var formsUpdated = new List <CrmForm>(); foreach (ListViewItem item in lvItems) { var parameter = (FormParameter)item.Tag; // Deleting attribute on form parameter.ParentForm.RemoveParameter(parameter); if (!formsUpdated.Contains(parameter.ParentForm)) { formsUpdated.Add(parameter.ParentForm); } } // Updating form foreach (var form in formsUpdated) { form.UpdateForm(Service); } bw.ReportProgress(0, "Publishing form(s)..."); // Publishing form CrmForm.PublishForms(Service, formsUpdated.Select(f => f.EntityLogicalName)); evt.Result = formsUpdated; }, evt => { if (evt.Error != null) { MessageBox.Show(this, evt.Error.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { foreach (var form in (List <CrmForm>)evt.Result) { foreach (ListViewItem item in lvForms.Items) { if (((CrmForm)item.Tag).Id == form.Id) { item.SubItems[2].Text = (form.Parameters.Count > 0).ToString(); } } } lvForms_ItemChecked(null, null); } SetState(false); }, evt => SetWorkingMessage(evt.UserState.ToString()), new object[] { lvParameters.SelectedItems }); }
private void tsbCreateNewParameter_Click(object sender, EventArgs e) { if (lvForms.CheckedItems.Count == 0) { MessageBox.Show(this, "Please select a form before creating a parameter", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } var pForm = new ParameterForm(Service); if (pForm.ShowDialog(this) == DialogResult.OK) { SetState(true); WorkAsync("Creating attribute...", (bw, evt) => { var parameter = (FormParameter)((object[])evt.Argument)[0]; var lvItems = (ListView.CheckedListViewItemCollection)((object[])evt.Argument)[1]; var formsUpdated = new List <CrmForm>(); foreach (ListViewItem item in lvItems) { var crmForm = (CrmForm)item.Tag; // Creating attribute on form crmForm.AddParameter(parameter); // Updating form crmForm.UpdateForm(Service); item.Tag = crmForm; formsUpdated.Add(crmForm); } // Publishing form bw.ReportProgress(0, "Publishing form(s) ..."); CrmForm.PublishForms(Service, formsUpdated.Select(f => f.EntityLogicalName)); evt.Result = lvItems; }, evt => { if (evt.Error != null) { MessageBox.Show(this, evt.Error.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { var lvItems = (ListView.CheckedListViewItemCollection)evt.Result; foreach (ListViewItem item in lvItems) { item.SubItems[2].Text = (((CrmForm)item.Tag).Parameters.Count > 0).ToString(); } lvForms_ItemChecked(null, null); } SetState(false); }, evt => SetWorkingMessage(evt.UserState.ToString()), new object[] { pForm.Parameter, lvForms.CheckedItems }); } }