private void lvEntities_SelectedIndexChanged(object sender, EventArgs e) { if (lvEntities.SelectedItems.Count > 0) { string entityLogicalName = lvEntities.SelectedItems[0].Tag.ToString(); Cursor = Cursors.WaitCursor; lvFormXmls.Items.Clear(); WorkAsync(new WorkAsyncInfo { Message = "Loading formXmls...", AsyncArgument = entityLogicalName, Work = (bw, evt) => { evt.Result = FormXmlHelper.GetFormXmlsByEntity(evt.Argument.ToString(), Service); }, PostWorkCallBack = evt => { if (evt.Error != null) { MessageBox.Show(this, "An error occured: " + evt.Error.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { Cursor = Cursors.Default; var formXmls = (EntityCollection)evt.Result; // lvFormXmls.Items.AddRange(formXmls.Entities.Select( // c => new ListViewItem(,c.GetAttributeValue<string>("userqueryvisualizationid")) { Tag = c }).ToArray()); foreach (var entity in formXmls.Entities) { bool isUser = true; if (entity.Attributes.Contains("formid")) { isUser = false; } ListViewItem lvi = new ListViewItem( ); lvi.Tag = entity; lvi.SubItems.Add(entity.GetAttributeValue <string>("name")); lvi.SubItems.Add(isUser.ToString()); lvi.SubItems.Add(entity.GetAttributeValue <bool>("isdefault").ToString()); lvi.SubItems.Add(entity.GetAttributeValue <bool>("isdesktopenabled").ToString()); lvi.SubItems.Add(entity.GetAttributeValue <bool>("istabletenabled").ToString()); lvi.SubItems.Add(entity.GetAttributeValue <string>("description")); lvFormXmls.Items.Add(lvi); } } } }); } }
public void ProcessFiles(List <string> files) { WorkAsync(new WorkAsyncInfo { Message = "Analyzing file(s)...", AsyncArgument = files, Work = (bw, e) => { e.Result = FormXmlHelper.AnalyzeFiles((List <string>)e.Argument, Service); }, PostWorkCallBack = evt => { var results = (List <FormXmlDefinition>)evt.Result; if (results.Any(r => r.Errors.Count > 0)) { // Display errors var elForm = new ErrorsListForm(results); elForm.ShowDialog(ParentForm); } else { if (results.Any(r => r.Exists)) { // Display overwrite confirmation var ocDialog = new OverwriteConfirmationDialog(results); var result = ocDialog.ShowDialog(ParentForm); if (result == DialogResult.Cancel) { return; } } WorkAsync(new WorkAsyncInfo("Importing file(s)...", (w, evt2) => { FormXmlHelper.ImportFiles((List <FormXmlDefinition>)evt2.Argument, Service); w.ReportProgress(0, "Publishing entities..."); Service.Execute(new PublishXmlRequest { ParameterXml = string.Format("<importexportxml><entities>{0}</entities><nodes/><securityroles/><settings/><workflows/></importexportxml>", string.Join("", results.Select(r => string.Format("<entity>{0}</entity>", r.Entity.GetAttributeValue <string>("primaryentitytypecode"))))) }); }) { AsyncArgument = results, PostWorkCallBack = evt2 => { if (evt2.Error != null) { MessageBox.Show(ParentForm, evt2.Error.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { MessageBox.Show(ParentForm, "FormXml(s) imported!", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); lvEntities_SelectedIndexChanged(null, null); } }, ProgressChanged = evt2 => { SetWorkingMessage(evt2.UserState.ToString()); } }); } } }); }