public void DeleteEntity() { string message = "Deleting this entity will also delete records of this entity! Are you sure you want to proceed?"; if (MessageBox.Show(this, message, "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No) { return; } tsbCreateRecords.Enabled = false; tsbDeleteEntity.Enabled = false; tsbLoadEntities.Enabled = false; WorkAsync(new WorkAsyncInfo { Message = "Deleting entity...", Work = (bw, evt) => { var mm = new MetadataManager(Service); var entityExists = mm.EntityExists("gap_powerbioptionsetref"); if (!entityExists) { throw new Exception( "There is no 'Power BI Option-Set Xref' entity on the connected organization"); } mm.DeleteEntity("gap_powerbioptionsetref"); }, PostWorkCallBack = evt => { if (evt.Error != null) { MessageBox.Show(this, evt.Error.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } tsbCreateRecords.Enabled = true; tsbDeleteEntity.Enabled = true; tsbLoadEntities.Enabled = true; } }); }
private void tsbCreateRecords_Click(object sender, EventArgs e) { if (lvOptionSets.CheckedItems.Count == 0) return; var mm = new MetadataManager(Service); var entityExists = mm.EntityExists("gap_powerbioptionsetref"); if (!entityExists) { var message = "'Power BI Option-Set Xref' entity does not exist on your organization. Would you like to create it? If you answer 'no', the process will be aborted"; if (MessageBox.Show(this, message, "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No) { return; } } var settings = new Settings { CreateEntity = !entityExists, OptionSets = lvOptionSets.CheckedItems.Cast<ListViewItem>().Select(o => (AttributeMetadata)o.Tag).ToList(), AllMetadata = emc }; tsbCreateRecords.Enabled = false; tsbDeleteEntity.Enabled = false; tsbLoadEntities.Enabled = false; WorkAsync(new WorkAsyncInfo { Message = "Initializing...", AsyncArgument = settings, Work = (bw, evt) => { if (((Settings)evt.Argument).CreateEntity) { var organization = Service.RetrieveMultiple(new QueryExpression("organization") { ColumnSet = new ColumnSet("languagecode") }).Entities.First(); bw.ReportProgress(0, "Creating entity..."); mm.CreatePowerBiOptionSetRefEntity(organization.GetAttributeValue<int>("languagecode"), bw); } bw.ReportProgress(0, "Processing Option Sets ..."); CreateRecords(settings); }, ProgressChanged = evt => { SetWorkingMessage(evt.UserState.ToString()); }, PostWorkCallBack = evt => { tsbCreateRecords.Enabled = true; tsbDeleteEntity.Enabled = true; tsbLoadEntities.Enabled = true; } }); }