private void FillHtmlList() { ListViewDelegates.ClearItems(lstWebResources); if (webResourcesHtmlCache == null || webResourcesHtmlCache.Count == 0) { webResourcesHtmlCache = new List <Entity>(); QueryExpression qe = new QueryExpression("webresource"); ConditionExpression ce = new ConditionExpression(); ce.AttributeName = "webresourcetype"; if (requestedType == (int)WebResourceType.Image) { ce.Operator = ConditionOperator.In; ce.Values.AddRange(5, 6, 7); } else { ce.Operator = ConditionOperator.Equal; ce.Values.Add(requestedType); } qe.Criteria.AddCondition(ce); qe.ColumnSet.AllColumns = true; EntityCollection ec = service.RetrieveMultiple(qe); foreach (Entity webresource in ec.Entities) { webResourcesHtmlCache.Add(webresource); } } foreach (Entity webresource in webResourcesHtmlCache) { ListViewItem item = new ListViewItem(webresource.Contains("displayname") ? webresource["displayname"].ToString() : "N/A"); item.SubItems.Add(webresource["name"].ToString()); item.Tag = webresource; ListViewDelegates.AddItem(lstWebResources, item); } ListViewDelegates.Sort(lstWebResources); ListViewDelegates.SetEnableState(lstWebResources, true); CommonDelegates.SetEnableState(btnWebResourcePickerCancel, true); CommonDelegates.SetEnableState(btnWebResourcePickerValidate, true); CommonDelegates.SetEnableState(btnNewResource, true); CommonDelegates.SetEnableState(btnRefresh, true); }
private void BwFillViewsDoWork(object sender, DoWorkEventArgs e) { string entityLogicalName = e.Argument.ToString(); List <Entity> viewsList = ViewHelper.RetrieveViews(entityLogicalName, entitiesCache, service); viewsList.AddRange(ViewHelper.RetrieveUserViews(entityLogicalName, entitiesCache, service)); foreach (Entity view in viewsList) { bool display = true; var item = new ListViewItem(view["name"].ToString()); item.Tag = view; display = ShouldDisplayItem(item); if (display) { if (view.Contains("statecode")) { int statecodeValue = ((OptionSetValue)view["statecode"]).Value; switch (statecodeValue) { case ViewHelper.VIEW_STATECODE_ACTIVE: item.SubItems.Add("Active"); break; case ViewHelper.VIEW_STATECODE_INACTIVE: item.SubItems.Add("Inactive"); break; } } // Add view to each list of views (source and target) ListViewItem clonedItem = (ListViewItem)item.Clone(); ListViewDelegates.AddItem(lvSourceViews, item); if (view.Contains("iscustomizable") && ((BooleanManagedProperty)view["iscustomizable"]).Value == false) { clonedItem.ForeColor = Color.Gray; clonedItem.ToolTipText = "This view has not been defined as customizable"; } //ListViewDelegates.AddItem(lvTargetViews, clonedItem); } } }
private void BwTransferViewsDoWork(object sender, DoWorkEventArgs e) { try { List <Entity> checkedViews = new List <Entity>(); foreach (ListViewItem item in ListViewDelegates.GetSelectedItems(lvSourceViews)) { checkedViews.Add((Entity)item.Tag); } e.Result = ViewHelper.TransferViews(checkedViews, service, targetService, _savedQueryMetadata); } catch (Exception error) { CommonDelegates.DisplayMessageBox(ParentForm, error.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void LvTargetViewsItemChecked(object sender, ItemCheckedEventArgs e) { if (e.Item.Checked && e.Item.ForeColor == Color.Gray) { MessageBox.Show(this, "This view has not been defined as customizable. It can't be customized!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); e.Item.Checked = false; } if (ListViewDelegates.GetCheckedItems(lvTargetViews).Length > 0) { tsbSaveViews.Enabled = true; tsbPublishEntity.Enabled = true; } else { tsbSaveViews.Enabled = false; tsbPublishEntity.Enabled = false; } }
/// <summary> /// Fills the list of entities /// </summary> private void FillEntities() { // Checks the application cache and load it if needed //if (entityCache == null || entityCache.Count == 0) //{ // entityCache = new List<EntityMetadata>(); // var request = new RetrieveAllEntitiesRequest // { // EntityFilters = EntityFilters.Entity // }; // var response = (RetrieveAllEntitiesResponse)SiteMapEditor.service.Execute(request); // foreach (var emd in response.EntityMetadata) // { // SiteMapEditor.entityCache.Add(emd); // } //} // Displays entities foreach (var emd in entityCache) { if ((emd.IsCustomizable.Value || emd.IsManaged.Value == false) && emd.DisplayName.UserLocalizedLabel != null) { var item = new ListViewItem { Text = emd.DisplayName.UserLocalizedLabel.Label, Tag = emd }; ListViewDelegates.AddItem(lvSelectedEntities, item); } } // Enables controls ListViewDelegates.Sort(lvSelectedEntities); ListViewDelegates.SetEnableState(lvSelectedEntities, true); CommonDelegates.SetEnableState(btnCancel, true); CommonDelegates.SetEnableState(btnValidate, true); }
/// <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 FillList() { try { ListViewDelegates.ClearItems(lstSolutions); EntityCollection ec = RetrieveSolutions(); foreach (Entity solution in ec.Entities) { ListViewItem item = new ListViewItem(solution["friendlyname"].ToString()); item.SubItems.Add(solution["version"].ToString()); item.SubItems.Add(((EntityReference)solution["publisherid"]).Name); item.Tag = solution; ListViewDelegates.AddItem(lstSolutions, item); } } catch (Exception error) { CommonDelegates.DisplayMessageBox(this, error.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Initializes a new instance of class WebResourcePicker /// </summary> /// <param name="type">Type of web resource to select</param> public WebResourcePicker(WebResourceType type, List <Entity> webResourcesImageCache, List <Entity> webResourcesHtmlCache, IOrganizationService service) { InitializeComponent(); this.webResourcesImageCache = webResourcesImageCache; this.webResourcesHtmlCache = webResourcesHtmlCache; this.service = service; requestedType = (int)type; // Disables controls ListViewDelegates.SetEnableState(lstWebResources, false); CommonDelegates.SetEnableState(btnWebResourcePickerCancel, false); CommonDelegates.SetEnableState(btnWebResourcePickerValidate, false); CommonDelegates.SetEnableState(btnNewResource, false); // Run work var worker = new BackgroundWorker(); worker.DoWork += worker_DoWork; worker.RunWorkerCompleted += worker_RunWorkerCompleted; worker.RunWorkerAsync(); }
void DoWork() { var filterTerm = txtSearch.Text; IEnumerable <Entity> matchingPrivileges = null; if (filterTerm.Length != 0) { matchingPrivileges = privileges.Where( x => x["name"].ToString().ToLower().IndexOf(filterTerm.ToLower(), StringComparison.Ordinal) >= 0); } else { matchingPrivileges = privileges; } var lviList = new List <ListViewItem>(); var lvgList = new List <ListViewGroup>(); foreach (var privilege in matchingPrivileges) { var groupName = string.Empty; var group = (from entity in entities where entity.Privileges.Any(p => p.PrivilegeId == privilege.Id) select new { entity.LogicalName, entity.DisplayName.UserLocalizedLabel.Label }).FirstOrDefault(); var entitySchemaName = (from entity in entities where entity.Privileges.Any(p => p.Name == privilege["name"].ToString()) select entity.SchemaName).FirstOrDefault(); if (group == null) { if (privilege["name"].ToString().EndsWith("Entity")) { groupName = "Entity"; } else if (privilege["name"].ToString().EndsWith("Attribute")) { groupName = "Attribute"; } else if (privilege["name"].ToString().EndsWith("Relationship")) { groupName = "Relationship"; } else if (privilege["name"].ToString().EndsWith("OptionSet")) { groupName = "OptionSet"; } else { groupName = "_Common"; } } else { if (group.LogicalName == "customeraddress") { groupName = entities.First(x => x.LogicalName == "account").DisplayName.UserLocalizedLabel.Label; } else if (group.LogicalName == "email" || group.LogicalName == "task" || group.LogicalName == "letter" || group.LogicalName == "phonecall" || group.LogicalName == "appointment" || group.LogicalName == "serviceappointment" || group.LogicalName == "campaignresponse" || group.LogicalName == "fax") { groupName = entities.First(x => x.LogicalName == "activitypointer").DisplayName.UserLocalizedLabel.Label; } else { groupName = group.Label; } } var lvGroup = lvgList.FirstOrDefault(f => f.Name == groupName); if (lvGroup == null) { lvgList.Add(new ListViewGroup(groupName, groupName)); } var item = new ListViewItem { Text = privilege["name"].ToString().Remove(0, 3), ImageIndex = 1, Tag = privilege, Group = groupName != null ? lvgList.First(f => f.Name == groupName) : lvgList.First(f => f.Name == "_Common") }; if (entitySchemaName != null) { item.Text = item.Text.Replace(entitySchemaName, ""); } lviList.Add(item); } ListViewDelegates.AddGroupsRange(lvPrivileges, lvgList.ToArray()); ListViewDelegates.AddItemsRange(lvPrivileges, lviList.ToArray()); ListViewDelegates.SortGroup(lvPrivileges, true); ListViewDelegates.Sort(lvPrivileges, true); CommonDelegates.SetEnableState(btnAdd, true); CommonDelegates.SetEnableState(btnRemove, true); }
public void UpdateFormEventHanders(Entity form, string eventName, List <FormEvent> formEvents) { WorkAsync(new WorkAsyncInfo { Message = "Updating Form " + form.GetAttributeValue <string>("name") + "...", Work = (bw, e) => { try { var manager = new FormManager(Service); manager.UpdateFormEventHandlers(form, eventName, formEvents); bw.ReportProgress(0, string.Format("Publishing entity '{0}'...", form.GetAttributeValue <string>("objecttypecode"))); new FormManager(Service).PublishEntity(form.GetAttributeValue <string>("objecttypecode")); ListViewDelegates.AddItem(lvLogs, new ListViewItem { Text = form.GetAttributeValue <string>("objecttypecode"), SubItems = { new ListViewItem.ListViewSubItem { Text = form.GetAttributeValue <string>("name") }, new ListViewItem.ListViewSubItem { Text = eventName }, new ListViewItem.ListViewSubItem { Text = "Updated!" } }, ForeColor = Color.Green }); } catch (Exception error) { ListViewDelegates.AddItem(lvLogs, new ListViewItem { Text = form.GetAttributeValue <string>("objecttypecode"), SubItems = { new ListViewItem.ListViewSubItem { Text = form.GetAttributeValue <string>("name") }, new ListViewItem.ListViewSubItem { Text = eventName }, new ListViewItem.ListViewSubItem { Text = error.Message } }, ForeColor = Color.Red }); } }, PostWorkCallBack = e => { if (e.Error != null) { MessageBox.Show(ParentForm, "An error occured:" + e.Error.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }, ProgressChanged = e => { SetWorkingMessage(e.UserState.ToString()); } }); }
private void tsbRemoveCheckedScripts_Click(object sender, EventArgs e) { lvLogs.Items.Clear(); var scriptsParam = crmScriptsTreeView1.GetSelectedScripts(); var formsParam = crmForms1.GetSelectedForms(); if (scriptsParam.Count == 0) { MessageBox.Show(ParentForm, "Please select at least one script", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (formsParam.Count == 0) { MessageBox.Show(ParentForm, "Please select at least one form", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } WorkAsync(new WorkAsyncInfo { Message = "Updating forms...", AsyncArgument = new[] { scriptsParam, formsParam }, Work = (bw, evt) => { var argArray = (List <Entity>[])evt.Argument; var scripts = argArray[0]; var forms = argArray[1]; var fManager = new FormManager(Service); bool atLeastOneSuccess = false; bool atLeastOneSuccessForForm = false; foreach (var form in forms) { bw.ReportProgress(0, string.Format("Updating form '{0}' ({1})...", form.GetAttributeValue <string>("name"), form.GetAttributeValue <string>("objecttypecode"))); foreach (var script in scripts) { try { if (fManager.RemoveLibrary(form, script.GetAttributeValue <string>("name"), ParentForm)) { atLeastOneSuccessForForm = true; ListViewDelegates.AddItem(lvLogs, new ListViewItem { Text = form.GetAttributeValue <string>("objecttypecode"), SubItems = { new ListViewItem.ListViewSubItem { Text = form.GetAttributeValue <string>("name") }, new ListViewItem.ListViewSubItem { Text = script.GetAttributeValue <string>("name") }, new ListViewItem.ListViewSubItem { Text = "Removed!" } }, ForeColor = Color.Green }); } else { ListViewDelegates.AddItem(lvLogs, new ListViewItem { Text = form.GetAttributeValue <string>("objecttypecode"), SubItems = { new ListViewItem.ListViewSubItem { Text = form.GetAttributeValue <string>("name") }, new ListViewItem.ListViewSubItem { Text = script.GetAttributeValue <string>("name") }, new ListViewItem.ListViewSubItem { Text = "Canceled!" } }, ForeColor = Color.DarkOrange }); } } catch (Exception error) { ListViewDelegates.AddItem(lvLogs, new ListViewItem { Text = form.GetAttributeValue <string>("objecttypecode"), SubItems = { new ListViewItem.ListViewSubItem { Text = form.GetAttributeValue <string>("name") }, new ListViewItem.ListViewSubItem { Text = script.GetAttributeValue <string>("name") }, new ListViewItem.ListViewSubItem { Text = error.Message } }, ForeColor = Color.Red }); } } if (atLeastOneSuccessForForm) { fManager.UpdateForm(form); atLeastOneSuccess = true; } } if (!atLeastOneSuccess) { return; } foreach (var entitiesToPublish in forms.Select(f => f.GetAttributeValue <string>("objecttypecode")).Distinct()) { bw.ReportProgress(0, string.Format("Publishing entity '{0}'...", entitiesToPublish)); fManager.PublishEntity(entitiesToPublish); } }, PostWorkCallBack = evt => { if (evt.Error != null) { MessageBox.Show(ParentForm, "An error occured:" + evt.Error.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }, ProgressChanged = evt => { SetWorkingMessage(evt.UserState.ToString()); } }); }
private void tsbAddCheckedScripts_Click(object sender, EventArgs e) { lvLogs.Items.Clear(); var scripts = crmScriptsTreeView1.GetSelectedScripts(); var forms = crmForms1.GetSelectedForms(); if (scripts.Count == 0) { MessageBox.Show(ParentForm, "Please select at least one script", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (forms.Count == 0) { MessageBox.Show(ParentForm, "Please select at least one form", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } var sod = new ScriptsOrderDialog(scripts, false) { StartPosition = FormStartPosition.CenterParent }; if (sod.ShowDialog(ParentForm) == DialogResult.Cancel) { return; } WorkAsync(new WorkAsyncInfo { Message = "Updating forms...", AsyncArgument = new object[] { sod.Scripts, sod.AddFirst, forms }, Work = (bw, evt) => { var scriptsArg = (List <Entity>)((object[])evt.Argument)[0]; var addFirstArg = (bool)((object[])evt.Argument)[1]; var formsArg = (List <Entity>)((object[])evt.Argument)[2]; var formsUpdated = new HashSet <Entity>(); if (addFirstArg) { scripts.Reverse(); } var fManager = new FormManager(Service); bool atLeastOneSuccess = false; foreach (var form in formsArg) { bw.ReportProgress(0, string.Format("Updating form '{0}' ({1})...", form.GetAttributeValue <string>("name"), form.GetAttributeValue <string>("objecttypecode"))); bool atLeastOneScriptSucess = false; foreach (var script in scriptsArg) { try { fManager.AddLibrary(form, script.GetAttributeValue <string>("name"), addFirstArg); atLeastOneScriptSucess = true; atLeastOneSuccess = true; if (!formsUpdated.Contains(form)) { formsUpdated.Add(form); } ListViewDelegates.AddItem(lvLogs, new ListViewItem { Text = form.GetAttributeValue <string>("objecttypecode"), SubItems = { new ListViewItem.ListViewSubItem { Text = form.GetAttributeValue <string>("name") }, new ListViewItem.ListViewSubItem { Text = script.GetAttributeValue <string>("name") }, new ListViewItem.ListViewSubItem { Text = "Added!" } }, ForeColor = Color.Green }); } catch (Exception error) { ListViewDelegates.AddItem(lvLogs, new ListViewItem { Text = form.GetAttributeValue <string>("objecttypecode"), SubItems = { new ListViewItem.ListViewSubItem { Text = form.GetAttributeValue <string>("name") }, new ListViewItem.ListViewSubItem { Text = script.GetAttributeValue <string>("name") }, new ListViewItem.ListViewSubItem { Text = error.Message } }, ForeColor = Color.Red }); } } if (atLeastOneScriptSucess) { fManager.UpdateForm(form); } } if (!atLeastOneSuccess) { return; } foreach (var entityToPublish in formsUpdated.Select(f => f.GetAttributeValue <string>("objecttypecode")).Distinct()) { bw.ReportProgress(0, string.Format("Publishing entity '{0}'...", entityToPublish)); fManager.PublishEntity(entityToPublish); } }, PostWorkCallBack = evt => { if (evt.Error != null) { MessageBox.Show(ParentForm, "An error occured:" + evt.Error.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }, ProgressChanged = evt => { SetWorkingMessage(evt.UserState.ToString()); } }); }
public void UpdateFormLibraryOrder(Entity form, XmlNode formLibrariesNode) { WorkAsync(new WorkAsyncInfo { Message = "Reordering Libraries For Form " + form.GetAttributeValue <string>("name") + "...", AsyncArgument = new object[] { form, formLibrariesNode }, Work = (bw, e) => { var selectedForm = (Entity)((object[])e.Argument)[0]; try { var node = (XmlNode)((object[])e.Argument)[1]; selectedForm["formxml"] = node.OwnerDocument.OuterXml; Service.Update(selectedForm); bw.ReportProgress(0, string.Format("Publishing entity '{0}'...", selectedForm.GetAttributeValue <string>("objecttypecode"))); new FormManager(Service).PublishEntity(selectedForm.GetAttributeValue <string>("objecttypecode")); ListViewDelegates.AddItem(lvLogs, new ListViewItem { Text = selectedForm.GetAttributeValue <string>("objecttypecode"), SubItems = { new ListViewItem.ListViewSubItem { Text = selectedForm.GetAttributeValue <string>("name") }, new ListViewItem.ListViewSubItem { Text = "Reordering Form Libraries" }, new ListViewItem.ListViewSubItem { Text = "Updated!" } }, ForeColor = Color.Green }); } catch (Exception error) { ListViewDelegates.AddItem(lvLogs, new ListViewItem { Text = selectedForm.GetAttributeValue <string>("objecttypecode"), SubItems = { new ListViewItem.ListViewSubItem { Text = selectedForm.GetAttributeValue <string>("name") }, new ListViewItem.ListViewSubItem { Text = "Reordering Form Libraries" }, new ListViewItem.ListViewSubItem { Text = error.Message } }, ForeColor = Color.Red }); } }, PostWorkCallBack = e => { if (e.Error != null) { MessageBox.Show(ParentForm, "An error occured:" + e.Error.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }, ProgressChanged = e => { SetWorkingMessage(e.UserState.ToString()); } }); }
void DoWork() { var filterTerm = textBox1.Text; IEnumerable <Entity> privileges = rManager.Privileges; if (filterTerm.Length != 0) { privileges = rManager.Privileges.Where( x => x["name"].ToString().ToLower().IndexOf(filterTerm.ToLower(), StringComparison.Ordinal) >= 0); } var items = new List <ListViewItem>(); foreach (var privilege in privileges) { var groupName = string.Empty; var group = (from entity in entities where entity.Privileges.Any(p => p.PrivilegeId == privilege.Id) select new{ entity.LogicalName, entity.DisplayName.UserLocalizedLabel.Label }).FirstOrDefault(); var entitySchemaName = (from entity in entities where entity.Privileges.Any(p => p.Name == privilege["name"].ToString()) select entity.SchemaName).FirstOrDefault(); if (group == null) { if (privilege["name"].ToString().EndsWith("Entity")) { groupName = "Entity"; } else if (privilege["name"].ToString().EndsWith("Attribute")) { groupName = "Attribute"; } else if (privilege["name"].ToString().EndsWith("Relationship")) { groupName = "Relationship"; } else if (privilege["name"].ToString().EndsWith("OptionSet")) { groupName = "OptionSet"; } else { groupName = "_Common"; } } else { if (group.LogicalName == "customeraddress") { groupName = entities.First(x => x.LogicalName == "account").DisplayName.UserLocalizedLabel.Label; } else if (group.LogicalName == "email" || group.LogicalName == "task" || group.LogicalName == "letter" || group.LogicalName == "phonecall" || group.LogicalName == "appointment" || group.LogicalName == "serviceappointment" || group.LogicalName == "campaignresponse" || group.LogicalName == "fax") { groupName = entities.First(x => x.LogicalName == "activitypointer").DisplayName.UserLocalizedLabel.Label; } else { groupName = group.Label; } } if (ListViewDelegates.GetGroup(lvPrivileges, groupName) == null) { ListViewDelegates.AddGroup(lvPrivileges, groupName); } var item = new ListViewItem { Text = privilege["name"].ToString().Remove(0, 3), Tag = privilege, Group = groupName != null ? ListViewDelegates.GetGroup(lvPrivileges, groupName) : ListViewDelegates.GetGroup(lvPrivileges, "_Common") }; if (entitySchemaName != null) { item.Text = item.Text.Replace(entitySchemaName, ""); } items.Add(item); } ListViewDelegates.AddRange(lvPrivileges, items); ListViewDelegates.SortGroup(lvPrivileges, true); ListViewDelegates.Sort(lvPrivileges, true); }
private void DoWork() { var filterTerm = txtSearch.Text; IEnumerable <Entity> matchingPrivileges; if (filterTerm.Length != 0) { matchingPrivileges = privileges.Where( x => x["name"].ToString().ToLower().IndexOf(filterTerm.ToLower(), StringComparison.Ordinal) >= 0 || entities.Any(e => e.DisplayName?.UserLocalizedLabel?.Label.ToLower().IndexOf(filterTerm.ToLower()) >= 0 && e.Privileges.Any(p => p.PrivilegeId == x.Id))); } else { matchingPrivileges = privileges; } var lviList = new List <ListViewItem>(); var lvgList = new List <ListViewGroup>(); foreach (var privilege in matchingPrivileges) { string entitySchemaName = null; var groupName = string.Empty; var entitiesWithPrivilege = (from emd in entities where emd.Privileges.Any(p => p.PrivilegeId == privilege.Id) select emd).ToList(); EntityMetadata entity; if (entitiesWithPrivilege.Count > 0 && entitiesWithPrivilege.Any(g => g.IsActivity.Value)) { entity = entitiesWithPrivilege.FirstOrDefault(g => g.LogicalName == "activitypointer"); entitySchemaName = "Activity"; } else { entity = entitiesWithPrivilege.FirstOrDefault(); if (entity != null) { entitySchemaName = entity.SchemaName; } } if (entity == null) { if (privilege["name"].ToString().EndsWith("Entity")) { groupName = "Entity"; } else if (privilege["name"].ToString().EndsWith("Attribute")) { groupName = "Attribute"; } else if (privilege["name"].ToString().EndsWith("Relationship")) { groupName = "Relationship"; } else if (privilege["name"].ToString().EndsWith("OptionSet")) { groupName = "OptionSet"; } else { groupName = "_Common"; } } else { if (entity.LogicalName == "customeraddress") { groupName = entities.First(x => x.LogicalName == "account").DisplayName.UserLocalizedLabel.Label; } else if (entity.IsActivity.Value || entity.LogicalName == "bulkoperation") { groupName = entities.First(x => x.LogicalName == "activitypointer").DisplayName.UserLocalizedLabel.Label; } else { groupName = entity.DisplayName.UserLocalizedLabel.Label; } } var lvGroup = lvgList.FirstOrDefault(f => f.Name == groupName); if (lvGroup == null) { lvgList.Add(new ListViewGroup(groupName, groupName)); } var item = new ListViewItem { Text = privilege["name"].ToString().Remove(0, 3), ImageIndex = 1, Tag = privilege, Group = groupName != null ? lvgList.First(f => f.Name == groupName) : lvgList.First(f => f.Name == "_Common") }; if (entitySchemaName != null) { item.Text = item.Text.Replace(entitySchemaName, ""); } lviList.Add(item); } ListViewDelegates.AddGroupsRange(lvPrivileges, lvgList.ToArray()); ListViewDelegates.AddItemsRange(lvPrivileges, lviList.ToArray()); ListViewDelegates.SortGroup(lvPrivileges, true); ListViewDelegates.Sort(lvPrivileges, true); CommonDelegates.SetEnableState(btnAdd, true); CommonDelegates.SetEnableState(btnRemove, true); }
private void LvSourceViewsSelectedIndexChanged(object sender, System.EventArgs e) { lvSourceViewLayoutPreview.Columns.Clear(); if (lvSourceViews.SelectedItems.Count > 0) { lvSourceViews.SelectedIndexChanged -= LvSourceViewsSelectedIndexChanged; lvSourceViewLayoutPreview.Items.Clear(); lvSourceViews.Enabled = false; WorkAsync("Loading view layout...", evt => { Entity currentSelectedView = (Entity)evt.Argument; string layoutXml = currentSelectedView["layoutxml"].ToString(); string fetchXml = currentSelectedView.Contains("fetchxml") ? currentSelectedView["fetchxml"].ToString() : string.Empty; string currentEntityDisplayName = ListViewDelegates.GetSelectedItems(lvEntities)[0].Text; EntityMetadata currentEmd = entitiesCache.Find( emd => emd.DisplayName.UserLocalizedLabel.Label == currentEntityDisplayName); XmlDocument layoutDoc = new XmlDocument(); layoutDoc.LoadXml(layoutXml); EntityMetadata emdWithItems = MetadataHelper.RetrieveEntity(currentEmd.LogicalName, Service); var headers = new List <ColumnHeader>(); var item = new ListViewItem(); foreach (XmlNode columnNode in layoutDoc.SelectNodes("grid/row/cell")) { ColumnHeader header = new ColumnHeader(); header.Width = int.Parse(columnNode.Attributes["width"].Value); header.Text = MetadataHelper.RetrieveAttributeDisplayName(emdWithItems, columnNode.Attributes["name"].Value, fetchXml, Service); headers.Add(header); if (string.IsNullOrEmpty(item.Text)) //item.SubItems.Add("preview"); { item.Text = columnNode.Attributes["width"].Value + "px"; } else { item.SubItems.Add(columnNode.Attributes["width"].Value + "px"); } } evt.Result = new object[] { headers, item }; }, evt => { if (evt.Error != null) { MessageBox.Show(ParentForm, "Error while displaying view: " + evt.Error.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { var args = (object[])evt.Result; lvSourceViewLayoutPreview.Columns.AddRange(((List <ColumnHeader>)args[0]).ToArray()); lvSourceViewLayoutPreview.Items.Add((ListViewItem)args[1]); lvSourceViewLayoutPreview.Enabled = true; } lvSourceViews.SelectedIndexChanged += LvSourceViewsSelectedIndexChanged; lvSourceViews.Enabled = true; }, lvSourceViews.SelectedItems[0].Tag); } }
private void BwFillViewsDoWork(object sender, DoWorkEventArgs e) { string entityLogicalName = e.Argument.ToString(); List <Entity> viewsList = ViewHelper.RetrieveViews(entityLogicalName, entitiesCache, Service); viewsList.AddRange(ViewHelper.RetrieveUserViews(entityLogicalName, entitiesCache, Service)); foreach (Entity view in viewsList) { bool display = true; var item = new ListViewItem(view["name"].ToString()); item.Tag = view; #region Gestion de l'image associée à la vue switch ((int)view["querytype"]) { case ViewHelper.VIEW_BASIC: { if (view.LogicalName == "savedquery") { if ((bool)view["isdefault"]) { item.SubItems.Add("Default public view"); item.ImageIndex = 3; } else { item.SubItems.Add("Public view"); item.ImageIndex = 0; } } else { item.SubItems.Add("User view"); item.ImageIndex = 6; } } break; case ViewHelper.VIEW_ADVANCEDFIND: { item.SubItems.Add("Advanced find view"); item.ImageIndex = 1; } break; case ViewHelper.VIEW_ASSOCIATED: { item.SubItems.Add("Associated view"); item.ImageIndex = 2; } break; case ViewHelper.VIEW_QUICKFIND: { item.SubItems.Add("QuickFind view"); item.ImageIndex = 5; } break; case ViewHelper.VIEW_SEARCH: { item.SubItems.Add("Lookup view"); item.ImageIndex = 4; } break; default: { //item.SubItems.Add(view["name"].ToString()); display = false; } break; } #endregion if (display) { // Add view to each list of views (source and target) ListViewItem clonedItem = (ListViewItem)item.Clone(); ListViewDelegates.AddItem(lvSourceViews, item); if (view.Contains("iscustomizable") && ((BooleanManagedProperty)view["iscustomizable"]).Value == false && view.Contains("ismanaged") && (bool)view["ismanaged"]) { clonedItem.ForeColor = Color.Gray; clonedItem.ToolTipText = "This managed view has not been defined as customizable"; } ListViewDelegates.AddItem(lvTargetViews, clonedItem); } } }
private void DoWork() { var filterTerm = textBox1.Text; IEnumerable <Entity> privileges = rManager.Privileges; if (filterTerm.Length != 0) { privileges = rManager.Privileges.Where( x => x["name"].ToString().ToLower().IndexOf(filterTerm.ToLower(), StringComparison.Ordinal) >= 0); } var items = new List <ListViewItem>(); foreach (var privilege in privileges) { string entitySchemaName = null; var groupName = string.Empty; var entitiesWithPrivilege = (from emd in entities where emd.Privileges.Any(p => p.PrivilegeId == privilege.Id) select emd).ToList(); EntityMetadata entity; if (entitiesWithPrivilege.Count > 0 && entitiesWithPrivilege.Any(g => g.IsActivity.Value)) { entity = entitiesWithPrivilege.FirstOrDefault(g => g.LogicalName == "activitypointer"); entitySchemaName = "Activity"; } else { entity = entitiesWithPrivilege.FirstOrDefault(); if (entity != null) { entitySchemaName = entity.SchemaName; } } if (entity == null) { if (privilege["name"].ToString().EndsWith("Entity")) { groupName = "Entity"; } else if (privilege["name"].ToString().EndsWith("Attribute")) { groupName = "Attribute"; } else if (privilege["name"].ToString().EndsWith("Relationship")) { groupName = "Relationship"; } else if (privilege["name"].ToString().EndsWith("OptionSet")) { groupName = "OptionSet"; } else { groupName = "_Common"; } } else { if (entity.LogicalName == "customeraddress") { groupName = entities.First(x => x.LogicalName == "account").DisplayName.UserLocalizedLabel.Label; } else if (entity.IsActivity.Value || entity.LogicalName == "bulkoperation") { groupName = entities.First(x => x.LogicalName == "activitypointer").DisplayName.UserLocalizedLabel.Label; } else { groupName = entity.DisplayName.UserLocalizedLabel.Label; } } if (ListViewDelegates.GetGroup(lvPrivileges, groupName) == null) { ListViewDelegates.AddGroup(lvPrivileges, groupName); } var item = new ListViewItem { Text = privilege["name"].ToString().Remove(0, 3), Tag = privilege, Group = groupName != null ? ListViewDelegates.GetGroup(lvPrivileges, groupName) : ListViewDelegates.GetGroup(lvPrivileges, "_Common") }; if (entitySchemaName != null) { item.Text = item.Text.Replace(entitySchemaName, ""); } items.Add(item); } ListViewDelegates.AddRange(lvPrivileges, items); ListViewDelegates.SortGroup(lvPrivileges, true); ListViewDelegates.Sort(lvPrivileges, true); }
void BWorkerDoWork(object sender, DoWorkEventArgs e) { foreach (ListViewItem item in ListViewDelegates.GetItems(lvFiles)) { var fi = (FileInfo)item.Tag; var extension = fi.Extension.Remove(0, 1).ToLower(); var webR = new Entity("webresource"); webR["displayname"] = fi.Name; webR["webresourcetype"] = extension == "png" ? new OptionSetValue(5) : extension == "jpg" || extension == "jpeg" ? new OptionSetValue(6) : new OptionSetValue(7); webR["name"] = (txtPrefixToUse.Text + fi.Name).Replace(" ", ""); var fs = new FileStream(fi.FullName, FileMode.Open, FileAccess.Read); var binaryData = new byte[fs.Length]; fs.Read(binaryData, 0, (int)fs.Length); fs.Close(); webR["content"] = Convert.ToBase64String(binaryData, 0, binaryData.Length); bool processed = false; if (CheckBoxDelegates.IsChecked(chkOverwriteExistingImages)) { var existingWr = _service.RetrieveMultiple(new QueryByAttribute { EntityName = "webresource", Attributes = { "name" }, Values = { webR["name"] } }).Entities.ToList().FirstOrDefault(); if (existingWr != null) { webR.Id = existingWr.Id; _service.Update(webR); processed = true; } } if (!processed) { Guid wrId = _service.Create(webR); webR.Id = wrId; } if (!CheckBoxDelegates.IsChecked(chkAddToDefaultSolution)) { var request = new AddSolutionComponentRequest { ComponentType = 61, SolutionUniqueName = cbbSolutions.SelectedItem.ToString(), ComponentId = webR.Id }; _service.Execute(request); } WebResourcesCreated.Add(webR); } }
private void BwDisplayViewDoWork(object sender, DoWorkEventArgs e) { try { if (ListViewDelegates.GetSelectedItems(lvSourceViews).Count() > 1) { ColumnHeader header = new ColumnHeader(); header.Width = 380; header.Text = "Layout preview cannot be displayed when multiple views are selected."; ListViewDelegates.AddColumn(lvSourceViewLayoutPreview, header); } else { // Gets current view data Entity currentSelectedView = (Entity)ListViewDelegates.GetSelectedItems(lvSourceViews)[0].Tag; string layoutXml = currentSelectedView["layoutxml"].ToString(); string fetchXml = currentSelectedView.Contains("fetchxml") ? currentSelectedView["fetchxml"].ToString() : string.Empty; string currentEntityDisplayName = ListViewDelegates.GetSelectedItems(lvEntities)[0].Text; EntityMetadata currentEmd = entitiesCache.Find( delegate(EntityMetadata emd) { return(emd.DisplayName.UserLocalizedLabel.Label == currentEntityDisplayName); }); XmlDocument layoutDoc = new XmlDocument(); layoutDoc.LoadXml(layoutXml); EntityMetadata emdWithItems = MetadataHelper.RetrieveEntity(currentEmd.LogicalName, service); ListViewItem item = new ListViewItem(); foreach (XmlNode columnNode in layoutDoc.SelectNodes("grid/row/cell")) { ColumnHeader header = new ColumnHeader(); header.Text = MetadataHelper.RetrieveAttributeDisplayName(emdWithItems, columnNode.Attributes["name"].Value, fetchXml, service); int columnWidth = columnNode.Attributes["width"] == null ? 0 : int.Parse(columnNode.Attributes["width"].Value); header.Width = columnWidth; ListViewDelegates.AddColumn(lvSourceViewLayoutPreview, header); if (string.IsNullOrEmpty(item.Text)) { item.Text = columnWidth == 0 ? "(undefined)": (columnWidth + "px"); } else { item.SubItems.Add(columnWidth == 0 ? "(undefined)": (columnWidth + "px")); } } ListViewDelegates.AddItem(lvSourceViewLayoutPreview, item); GroupBoxDelegates.SetEnableState(gbSourceViewLayout, true); } } catch (Exception error) { CommonDelegates.DisplayMessageBox(ParentForm, "Error while displaying view: " + error.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }