Beispiel #1
0
        private void LoadRolesAndPrivileges()
        {
            rManager = new RoleManager(Service);

            WorkAsync("Loading roles...",
                      (bw, e) =>
            {
                rManager.LoadRootRoles();

                bw.ReportProgress(1, "Loading privileges...");
                rManager.LoadPrivileges();

                bw.ReportProgress(2, "Loading Entities privileges...");
                entities = MetadataHelper.GetEntitiesMetadata(Service, EntityFilters.Privileges);
            },
                      e =>
            {
                if (e.Error != null)
                {
                    var errorMessage = CrmExceptionHelper.GetErrorMessage(e.Error, true);
                    MessageBox.Show(this, "An error occured: " + errorMessage, "Error", MessageBoxButtons.OK,
                                    MessageBoxIcon.Error);
                }
                else
                {
                    pnlSteps.Visible    = true;
                    btnPrevious.Visible = false;
                    btnReset.Visible    = false;
                    btnNext.Visible     = true;
                    BtnResetClick(null, null);
                }
            },
                      e => SetWorkingMessage(e.UserState.ToString()));
        }
Beispiel #2
0
        private void LoadEntities()
        {
            lvEntities.Items.Clear();

            WorkAsync("Loading entities...",
                      e =>
            {
                List <EntityMetadata> entities = MetadataHelper.RetrieveEntities(Service);
                e.Result = entities;
            },
                      e =>
            {
                if (e.Error != null)
                {
                    string errorMessage = CrmExceptionHelper.GetErrorMessage(e.Error, true);
                    MessageBox.Show(this, errorMessage, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    foreach (EntityMetadata emd in (List <EntityMetadata>)e.Result)
                    {
                        var item = new ListViewItem {
                            Text = emd.DisplayName.UserLocalizedLabel.Label, Tag = emd
                        };
                        item.SubItems.Add(emd.LogicalName);
                        lvEntities.Items.Add(item);
                    }
                }
            });
        }
Beispiel #3
0
        private void BtnExportTranslationsClick(object sender, EventArgs e)
        {
            if (lvEntities.CheckedItems.Count > 0 || chkExportGlobalOptSet.Checked || chkExportSiteMap.Checked)
            {
                var entities = (from ListViewItem item in lvEntities.CheckedItems select((EntityMetadata)item.Tag).LogicalName).ToList();

                var sfd = new SaveFileDialog {
                    Filter = "Excel workbook|*.xlsx", Title = "Select file destination"
                };
                if (sfd.ShowDialog(this) == DialogResult.OK)
                {
                    var settings = new ExportSettings
                    {
                        ExportAttributes              = chkExportAttributes.Checked,
                        ExportBooleans                = chkExportBooleans.Checked,
                        ExportEntities                = chkExportEntity.Checked,
                        ExportForms                   = chkExportForms.Checked,
                        ExportFormFields              = chkExportFormsFields.Checked,
                        ExportFormSections            = chkExportFormsSections.Checked,
                        ExportFormTabs                = chkExportFormsTabs.Checked,
                        ExportGlobalOptionSet         = chkExportGlobalOptSet.Checked,
                        ExportOptionSet               = chkExportPicklists.Checked,
                        ExportViews                   = chkExportViews.Checked,
                        ExportCustomizedRelationships = chkExportCustomizedRelationships.Checked,
                        ExportSiteMap                 = chkExportSiteMap.Checked,
                        FilePath = sfd.FileName,
                        Entities = entities
                    };

                    SetState(true);

                    WorkAsync("Exporting Translations...",
                              (bw, evt) =>
                    {
                        var engine = new Engine();
                        engine.Export((ExportSettings)evt.Argument, Service, bw);
                    },
                              evt =>
                    {
                        SetState(false);

                        if (evt.Error != null)
                        {
                            string errorMessage = CrmExceptionHelper.GetErrorMessage(evt.Error, true);
                            MessageBox.Show(this, errorMessage, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    },
                              evt => SetWorkingMessage(evt.UserState.ToString()),
                              settings);
                }
            }
        }
Beispiel #4
0
        private void BwPublishAllRunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            Cursor = Cursors.Default;

            if (e.Error != null)
            {
                string errorMessage = CrmExceptionHelper.GetErrorMessage(e.Error, false);
                MessageBox.Show(this, errorMessage, "Error", MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
            }

            Controls.Remove(informationPanel);

            tsbPublishEntity.Enabled = true;
            tsbPublishAll.Enabled    = true;
            tsbLoadEntities.Enabled  = true;
        }
Beispiel #5
0
        private void BwFillEntitiesRunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            if (e.Error != null)
            {
                string errorMessage = CrmExceptionHelper.GetErrorMessage(e.Error, true);
                CommonDelegates.DisplayMessageBox(ParentForm, errorMessage, "Error", MessageBoxButtons.OK,
                                                  MessageBoxIcon.Error);
            }
            else
            {
                gbEntities.Enabled       = true;
                tsbPublishEntity.Enabled = true;
                tsbPublishAll.Enabled    = true;
            }

            Controls.Remove(informationPanel);
            CommonDelegates.SetCursor(this, Cursors.Default);
        }
        private void LoadEntities()
        {
            lvEntities.Items.Clear();
            lvAttributes.Items.Clear();
            btnCheck.Enabled            = false;
            btnCheckAttrOnForms.Enabled = false;
            btnResetAttributes.Enabled  = false;
            gbEntities.Enabled          = false;
            tsbPublishEntity.Enabled    = false;
            tsbSaveAttributes.Enabled   = false;

            WorkAsync("Loading entities...",
                      e =>
            {
                e.Result = MetadataHelper.RetrieveEntities(Service);
            },
                      e =>
            {
                if (e.Error != null)
                {
                    string errorMessage = CrmExceptionHelper.GetErrorMessage(e.Error, true);
                    MessageBox.Show(ParentForm, errorMessage, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    var items = new List <ListViewItem>();
                    foreach (EntityMetadata emd in (List <EntityMetadata>)e.Result)
                    {
                        var item = new ListViewItem {
                            Text = emd.DisplayName.UserLocalizedLabel.Label, Tag = emd
                        };
                        item.SubItems.Add(emd.LogicalName);
                        items.Add(item);
                    }
                    lvEntities.Items.AddRange(items.ToArray());

                    gbEntities.Enabled = true;
                }
            });
        }
Beispiel #7
0
        /// <summary>
        /// Fills the entities listview
        /// </summary>
        public void FillEntitiesList()
        {
            try
            {
                ListViewDelegates.ClearItems(lvEntities);

                foreach (EntityMetadata emd in entitiesCache)
                {
                    var item = new ListViewItem {
                        Text = emd.DisplayName.UserLocalizedLabel.Label, Tag = emd.LogicalName
                    };
                    item.SubItems.Add(emd.LogicalName);
                    ListViewDelegates.AddItem(lvEntities, item);
                }
            }
            catch (Exception error)
            {
                string errorMessage = CrmExceptionHelper.GetErrorMessage(error, true);
                CommonDelegates.DisplayMessageBox(ParentForm, errorMessage, "Error", MessageBoxButtons.OK,
                                                  MessageBoxIcon.Error);
            }
        }
        private void tsbPublishEntity_Click(object sender, EventArgs e)
        {
            if (lvEntities.SelectedItems.Count > 0)
            {
                tsbPublishEntity.Enabled  = false;
                tsbSaveAttributes.Enabled = false;
                tsbLoadEntities.Enabled   = false;

                WorkAsync("Publishing entities...",
                          evt =>
                {
                    var currentEmd = (EntityMetadata)evt.Argument;

                    var pubRequest          = new PublishXmlRequest();
                    pubRequest.ParameterXml = string.Format(@"<importexportxml>
                                                           <entities>
                                                              <entity>{0}</entity>
                                                           </entities>
                                                           <nodes/><securityroles/><settings/><workflows/>
                                                        </importexportxml>", currentEmd.LogicalName);

                    Service.Execute(pubRequest);
                },
                          evt =>
                {
                    if (evt.Error != null)
                    {
                        string errorMessage = CrmExceptionHelper.GetErrorMessage(evt.Error, false);
                        MessageBox.Show(ParentForm, errorMessage, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }

                    tsbPublishEntity.Enabled  = true;
                    tsbSaveAttributes.Enabled = true;
                    tsbLoadEntities.Enabled   = true;
                },
                          lvEntities.SelectedItems[0].Tag);
            }
        }
Beispiel #9
0
        private void ImportTranslations()
        {
            SetState(false);

            WorkAsync("",
                      (bw, e) =>
            {
                var engine = new Engine();
                engine.Import(e.Argument.ToString(), Service, bw);
            },
                      e =>
            {
                if (e.Error != null)
                {
                    string errorMessage = CrmExceptionHelper.GetErrorMessage(e.Error, true);
                    MessageBox.Show(this, errorMessage, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }

                SetState(false);
            },
                      e => SetWorkingMessage(e.UserState.ToString()),
                      txtFilePath.Text);
        }
Beispiel #10
0
        private void LoadEntities()
        {
            entityInfos    = new List <EntityInfo>();
            attributeInfos = new List <AttributeInfo>();
            lvEntities.Items.Clear();
            lvAttributes.Items.Clear();
            gbEntities.Enabled   = false;
            gbAttributes.Enabled = false;
            tsbChangeSystemAuditStatus.Enabled = false;
            tsbChangeSystemAuditStatus.Image   = statusImageList.Images[2];

            WorkAsync("Loading entities...",
                      (bw, e) =>
            {
                emds = MetadataHelper.RetrieveEntities(Service);

                bw.ReportProgress(0, "Retrieving system audit status...");

                var orgs = Service.RetrieveMultiple(new QueryExpression
                {
                    EntityName = "organization",
                    ColumnSet  = new ColumnSet(new[] { "isauditenabled" })
                });

                e.Result = orgs[0].GetAttributeValue <bool>("isauditenabled");
            },
                      e =>
            {
                if (e.Error != null)
                {
                    string errorMessage = CrmExceptionHelper.GetErrorMessage(e.Error, true);
                    MessageBox.Show(ParentForm, errorMessage, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    var isAuditEnabled        = (bool)e.Result;
                    lblStatusStatus.Text      = isAuditEnabled ? "ON" : "OFF";
                    lblStatusStatus.ForeColor = isAuditEnabled ? Color.Green : Color.Red;

                    tsbChangeSystemAuditStatus.Image = isAuditEnabled ? statusImageList.Images[1] : statusImageList.Images[0];
                    tsbChangeSystemAuditStatus.Text  = isAuditEnabled ? "Deactivate global audit" : "Activate global audit";

                    try
                    {
                        lvEntities.Items.Clear();

                        foreach (EntityMetadata emd in emds.Where(x => x.IsAuditEnabled.Value))
                        {
                            entityInfos.Add(new EntityInfo {
                                Action = ActionState.None, Emd = emd, InitialState = true
                            });

                            var item = new ListViewItem {
                                Text = emd.DisplayName.UserLocalizedLabel.Label, Tag = emd
                            };
                            item.SubItems.Add(emd.LogicalName);
                            lvEntities.Items.Add(item);

                            AddEntityAttributesToList(emd);
                        }

                        SortGroups(lvAttributes);
                    }
                    catch (Exception error)
                    {
                        string errorMessage = CrmExceptionHelper.GetErrorMessage(error, true);
                        MessageBox.Show(ParentForm, errorMessage, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }

                gbEntities.Enabled   = true;
                gbAttributes.Enabled = true;
                tsbChangeSystemAuditStatus.Enabled = true;
            },
                      e => SetWorkingMessage(e.UserState.ToString()));
        }