public static string CreateDutyExtension(ISecurityDuty duty)
        {
            var existingSecDutyExt = SecurityDuty.SecurityDutyHelper.GetExtensionObject(duty);

            if (existingSecDutyExt != null)
            {
                // We already have an exisisting security duty extension, so just add this to the project
                // Add this to the project
                Common.CommonUtil.AddElementToProject(existingSecDutyExt);
                return(existingSecDutyExt.Name);
            }

            var securityDutyExtensionName = Common.CommonUtil.GetNextNameSecurityDutyExtension(duty.Name);

            var extSecDuty = new AxSecurityDutyExtension()
            {
                Name = securityDutyExtensionName
            };

            // var secDuty = new AxSecurityDuty() { Name = securityDutyExtensionName };
            //var ex = new AxSecurityDutyExtension() { Name = securityDutyExtensionName };

            //create security duty extension
            Common.CommonUtil.GetMetaModelProviders()
            .CurrentMetadataProvider
            .SecurityDutyExtensions
            .Create(extSecDuty, Common.CommonUtil.GetCurrentModelSaveInfo());

            // Add this to the project
            Common.CommonUtil.AddElementToProject(extSecDuty);

            return(securityDutyExtensionName);
        }
Exemplo n.º 2
0
        public static AxSecurityDutyExtension GetExtensionObject(ISecurityDuty securityDuty)
        {
            // Find current model
            var modelSaveInfo    = Common.CommonUtil.GetCurrentModelSaveInfo();
            var metaModelService = Common.CommonUtil.GetModelSaveService();

            var securityDutyExtension = metaModelService.GetSecurityDutyExtensionNames().ToList()
                                        .Where(extName => extName.StartsWith(securityDuty.Name, StringComparison.InvariantCultureIgnoreCase))
                                        .FirstOrDefault();

            if (String.IsNullOrEmpty(securityDutyExtension) == false)
            {
                var extension = metaModelService.GetSecurityDutyExtension(securityDutyExtension);
                return(extension);
            }
            return(null);
        }
        public static AxSecurityDutyExtension GetExtensionObject(ISecurityDuty securityDuty)
        {
            // Find current model
            var modelSaveInfo    = Common.CommonUtil.GetCurrentModelSaveInfo();
            var metaModelService = Common.CommonUtil.GetModelSaveService();

            var securityDutyExtensions = metaModelService.GetSecurityDutyExtensionNames().ToList()
                                         .Where(extName => extName.StartsWith(securityDuty.Name, StringComparison.InvariantCultureIgnoreCase))
                                         .ToList();

            if (securityDutyExtensions != null)
            {
                var currentModel = Common.CommonUtil.GetCurrentModel();
                foreach (var dutyExtName in securityDutyExtensions)
                {
                    var dutyExtModels = metaModelService.GetSecurityDutyExtensionModelInfo(dutyExtName).ToList();
                    if (dutyExtModels != null)
                    {
                        foreach (var model in dutyExtModels)
                        {
                            if (model.Module.Equals(currentModel.Module, StringComparison.InvariantCultureIgnoreCase))
                            {
                                return(metaModelService.GetSecurityDutyExtension(dutyExtName));
                            }
                        }
                    }
                }
            }
            return(null);

            //var securityDutyExtension = metaModelService.GetSecurityDutyExtensionNames().ToList()
            //                                .Where(extName => extName.StartsWith(securityDuty.Name, StringComparison.InvariantCultureIgnoreCase))
            //                                .FirstOrDefault() ;

            //if(String.IsNullOrEmpty(securityDutyExtension) == false)
            //{
            //    var extension = metaModelService.GetSecurityDutyExtension(securityDutyExtension);
            //    return extension;
            //}
            //return null;
        }
        public static string CreateDutyExtension(ISecurityDuty duty)
        {
            var securityDutyExtensionName = Common.CommonUtil.GetNextNameSecurityDutyExtension(duty.Name + Common.Constants.DotEXTENSION);

            var extSecDuty = new AxSecurityDutyExtension()
            {
                Name = securityDutyExtensionName
            };

            // var secDuty = new AxSecurityDuty() { Name = securityDutyExtensionName };
            //var ex = new AxSecurityDutyExtension() { Name = securityDutyExtensionName };

            //create security duty extension
            Common.CommonUtil.GetMetaModelProviders()
            .CurrentMetadataProvider
            .SecurityDutyExtensions
            .Create(extSecDuty, Common.CommonUtil.GetCurrentModelSaveInfo());

            // Add this to the project
            Common.CommonUtil.AddElementToProject(extSecDuty);

            return(securityDutyExtensionName);
        }
Exemplo n.º 5
0
 public override void setElementType(IRootElement selectedElement)
 {
     this.iSecurityDuty = selectedElement as ISecurityDuty;
 }
        /// <summary>
        /// /Handle the click event in the OnClick method.  Here we will test the selected object, get the object’s model and label file, and create the label.
        /// </summary>
        /// <param name="e">The context of the VS tools and metadata</param>
        public override void OnClick(AddinDesignerEventArgs e)
        {
            try
            {
                // Get the metamodel service
                IMetaModelService metaModelService = helper.MetaModelService;
                
                // Is the selected element a table?
                if (e.SelectedElement is ITable)
                {
                    ITable table = e.SelectedElement as ITable;
                    helper.setModelAndLabelFile(metaModelService.GetTableModelInfo(table.Name));

                    labelPrefix = table.Name;
                }
                else if (e.SelectedElement is IBaseField)
                {
                    IBaseField baseField = e.SelectedElement as IBaseField;
                    var table = baseField.Table;
                    helper.setModelAndLabelFile(metaModelService.GetTableModelInfo(table.Name));

                    labelPrefix = String.Format("{0}_{1}", baseField.Table.Name, baseField.Name);
                }
                if (e.SelectedElement is IView)
                {
                    IView view = e.SelectedElement as IView;
                    helper.setModelAndLabelFile(metaModelService.GetTableModelInfo(view.Name));

                    labelPrefix = view.Name;
                }
                else if (e.SelectedElement is IViewBaseField)
                {
                    IViewBaseField baseField = e.SelectedElement as IViewBaseField;
                    var view = baseField.View;
                    helper.setModelAndLabelFile(metaModelService.GetViewModelInfo(view.Name));

                    labelPrefix = String.Format("{0}_{1}", baseField.View.Name, baseField.Name);
                }
                else if (e.SelectedElement is IFormDesign)
                {
                    IFormDesign formDesign = e.SelectedElement as IFormDesign;
                    var form = formDesign.Form;
                    helper.setModelAndLabelFile(metaModelService.GetFormModelInfo(form.Name));

                    labelPrefix = formDesign.Form.Name;  
                }
                else if (e.SelectedElement is IFormControl)
                {
                    IFormControl formControl = e.SelectedElement as IFormControl;
                    IRootElement rootElement = formControl.RootElement as IRootElement;
                    if (rootElement is IFormExtension)
                    {
                        helper.setModelAndLabelFile(metaModelService.GetFormExtensionModelInfo(rootElement.Name));
                        labelPrefix = String.Format("{0}_{1}", rootElement.Name, formControl.Name);
                        labelPrefix = labelPrefix.Replace(".","_");
                    }
                    else
                    {
                        helper.setModelAndLabelFile(metaModelService.GetFormModelInfo(rootElement.Name));
                        labelPrefix = String.Format("{0}_{1}", rootElement.Name, formControl.Name);
                    }
                }
                else if (e.SelectedElement is ISecurityPrivilege)
                {
                    ISecurityPrivilege securityObject = e.SelectedElement as ISecurityPrivilege;
                    helper.setModelAndLabelFile(metaModelService.GetSecurityPrivilegeModelInfo(securityObject.Name));

                    labelPrefix = String.Format("{0}_{1}", Tags.PrivilegeTag, securityObject.Name);
                }
                else if (e.SelectedElement is ISecurityDuty)
                {
                    ISecurityDuty securityObject = e.SelectedElement as ISecurityDuty;
                    helper.setModelAndLabelFile(metaModelService.GetSecurityDutyModelInfo(securityObject.Name));

                    labelPrefix = String.Format("{0}_{1}", Tags.DutyTag, securityObject.Name);
                }
                else if (e.SelectedElement is ISecurityRole)
                {
                    ISecurityRole securityObject = e.SelectedElement as ISecurityRole;
                    helper.setModelAndLabelFile(metaModelService.GetSecurityRoleModelInfo(securityObject.Name));

                    labelPrefix = String.Format("{0}_{1}", Tags.RoleTag, securityObject.Name);
                }
                else if (e.SelectedElement is IEdtBase)
                {
                    IEdtBase edt = e.SelectedElement as IEdtBase;
                    helper.setModelAndLabelFile(metaModelService.GetExtendedDataTypeModelInfo(edt.Name));

                    labelPrefix = String.Format("{0}_{1}", Tags.EDTTag, edt.Name);           
                }
                else if (e.SelectedElement is IMenuItem)
                {
                    IMenuItem AxMenuItem = e.SelectedElement as IMenuItem;
                    labelPrefix = String.Format("{0}_{1}", Tags.MenuItemTag, AxMenuItem.Name);

                    if (AxMenuItem is IMenuItemAction)
                    {
                        helper.setModelAndLabelFile(metaModelService.GetMenuItemActionModelInfo(AxMenuItem.Name));
                    }
                    else if (AxMenuItem is IMenuItemDisplay)
                    {
                        helper.setModelAndLabelFile(metaModelService.GetMenuItemDisplayModelInfo(AxMenuItem.Name));
                        
                    }
                    else if (AxMenuItem is IMenuItemOutput)
                    {
                        helper.setModelAndLabelFile(metaModelService.GetMenuItemOutputModelInfo(AxMenuItem.Name));
                    }

                }
                else if (e.SelectedElement is IReportDataSetField)
                {
                    IReportDataSetField dataField = e.SelectedElement as IReportDataSetField;

                    helper.setModelAndLabelFile(metaModelService.GetReportModelInfo(dataField.DataSet.Report.Name));

                    labelPrefix = String.Format("{0}_{1}_{2}", dataField.DataSet.Report.Name, dataField.DataSet.Name, dataField.Name);
                }
                helper.createPropertyLabels(e.SelectedElement, labelPrefix);
            }
            catch (Exception ex)
            {
                Microsoft.Dynamics.Framework.Tools.MetaModel.Core.CoreUtility.HandleExceptionWithErrorMessage(ex);

            }
        }