Esempio n. 1
0
        public static string Convert(this string name)
        {
            Project = LocalUtils.GetActiveProjectNode();
            ProjectParameters.Contruct();
            MetaModelProviders = ServiceLocator.GetService(typeof(IMetaModelProviders)) as IMetaModelProviders;
            MetaModelService   = MetaModelProviders.CurrentMetaModelService;

            var extension = ProjectParameters.Instance.Extension;

            var englishLabelFile =
                MetaModelService.GetLabelFileNames()
                .FirstOrDefault(
                    lableFileName => lableFileName.StartsWith(extension) && lableFileName.Contains("en-US"));

            var lableFile = MetaModelService.GetLabelFile(englishLabelFile);
            var labelKey  = name.Replace(extension, "");

            var lableTxt = Regex.Replace(labelKey, "((?<=[a-z])[A-Z]|[A-Z](?=[a-z]))", " $1").Trim().ToLower().UppercaseFirst();

            LabelControllerFactory factory = new LabelControllerFactory();
            LabelEditorController  labelEditorController = factory.GetOrCreateLabelController(lableFile, LocalUtils.Context);

            //CoreUtility.DisplayInfo(labelKey);

            if (!labelEditorController.Exists(labelKey))
            {
                labelEditorController.Insert(labelKey, lableTxt, string.Empty);
                labelEditorController.Save();
            }

            return($"@{extension}Labels:{labelKey}");
        }
Esempio n. 2
0
        public ElementType()
        {
            MetaService = LocalUtils.MetaService;

            Model   = LocalUtils.GetModel();
            Project = LocalUtils.GetActiveProjectNode();
        }
        /// <summary>
        ///     Receive the current class info (loaded from current classes present on runtime and check against the persisted meta model
        /// </summary>
        public bool Check(IDictionary<Type, ClassInfo> currentCIs, IMetaModelService metaModelService)
        {
            foreach (var persistedCI in metaModelService.GetAllClasses())
                CheckClass(currentCIs, persistedCI);

            foreach (var result in _results)
            {
                DLogger.Info(string.Format("MetaModelCompabilityChecker: Class {0} has changed :", result.GetFullClassName()));
                DLogger.Info("MetaModelCompabilityChecker: " + result);
            }

            return _results.Count != 0;
        }
Esempio n. 4
0
        public static string Convert(this string name, string alternative = null)
        {
            Project = GetActiveProjectNode();
            ProjectParameters.Contruct();

            MetaModelProviders = CoreUtility.ServiceProvider.GetService(typeof(IMetaModelProviders)) as IMetaModelProviders;
            if (MetaModelProviders != null)
            {
                MetaModelService = MetaModelProviders.CurrentMetaModelService;
            }

            var extension             = ProjectParameters.Instance.Extension;
            var defaultLablesFileName = ProjectParameters.Instance.DefaultLabelsFileName;

            if (string.IsNullOrEmpty(defaultLablesFileName))
            {
                throw new System.Exception(
                          "Label file name not specified in the Settings: Dynamics 365 > Addins > Ninja DevTools Settings");
            }

            var lableFile = MetaModelService.GetLabelFile(defaultLablesFileName);

            if (lableFile == null)
            {
                throw new Exception("Labels file not found");
            }

            var    labelKey = name.Replace(extension, "");
            string lableTxt;

            if (alternative != null && !alternative.StartsWith("@"))
            {
                lableTxt = alternative;
            }
            else
            {
                lableTxt = Regex.Replace(labelKey, "((?<=[a-z])[A-Z]|[A-Z](?=[a-z]))", " $1").Trim().ToLower().UppercaseFirst();
            }

            LabelControllerFactory factory = new LabelControllerFactory();
            LabelEditorController  labelEditorController = factory.GetOrCreateLabelController(lableFile, LocalUtils.Context);

            if (!labelEditorController.Exists(labelKey))
            {
                labelEditorController.Insert(labelKey, lableTxt, string.Empty);
                labelEditorController.Save();
            }

            return($"@{extension}Labels:{labelKey}");
        }
        /// <summary>
        ///     Receive the current class info (loaded from current classes present on runtime and check against the persisted meta model
        /// </summary>
        public bool Check(IDictionary <Type, ClassInfo> currentCIs, IMetaModelService metaModelService)
        {
            foreach (var persistedCI in metaModelService.GetAllClasses())
            {
                CheckClass(currentCIs, persistedCI);
            }

            foreach (var result in _results)
            {
                DLogger.Info(string.Format("MetaModelCompabilityChecker: Class {0} has changed :", result.GetFullClassName()));
                DLogger.Info("MetaModelCompabilityChecker: " + result);
            }

            return(_results.Count != 0);
        }
Esempio n. 6
0
        public ModelServices(IMetaModelService _metaModelService)
        {
            System.Diagnostics.Debug.Print("--------Inicio de carga---------------///////");
            try
            {
                metaModelService = _metaModelService;
                objectModel      = new ObjectModel();
                objectModel.app_Objects.AddRange(metaModelService.Objects.Cast <dynamic>().Select(x => new app_object {
                    Name = x.Title, object_id = x.ObjectId
                }));


                //objectModel.app_Objects.Where(x => x.object_id == 2022040).FirstOrDefault().instances.AddRange(metaModelService.ReadInstancesWithObjectIdForDesigner(2022040).Cast<dynamic>().Select(x => new Instance { instance_id = x.instance_id }));



                System.Diagnostics.Debug.Print("--------Objectos Cargados---------------///////");
            }catch (Exception e)
            {
                System.Diagnostics.Debug.Print("--------ERROR---------------:" + e.Message);
            }
        }
        /// <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)
        {
            // Dont display Already exists message
            helper.PromptOnDuplicate = false;
            try
            {
                // Get the metamodelService
                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));

                    helper.createPropertyLabels(table, table.Name);

                    // Loop through each BaseField. Similar logic coulde be added for FieldGroups Ect.
                    foreach (IBaseField baseField in table.BaseFields)
                    {
                        var labelPrefix = String.Format("{0}_{1}", baseField.Table.Name, baseField.Name);
                        helper.createPropertyLabels(baseField, labelPrefix);
                    }
                }
                if (e.SelectedElement is IView)
                {
                    IView view = e.SelectedElement as IView;
                    helper.setModelAndLabelFile(metaModelService.GetViewModelInfo(view.Name));

                    helper.createPropertyLabels(view, view.Name);

                    // Loop through each BaseField. Similar logic coulde be added for FieldGroups Ect.
                    foreach (IViewBaseField baseField in view.ViewBaseFields)
                    {
                        var labelPrefix = String.Format("{0}_{1}", baseField.View.Name, baseField.Name);
                        helper.createPropertyLabels(baseField, labelPrefix);
                    }
                }
                // Is this a Form Design Element?
                else if (e.SelectedElement is IFormDesign)
                {
                    IFormDesign formDesign = e.SelectedElement as IFormDesign;
                    var         form       = formDesign.Form;

                    helper.setModelAndLabelFile(metaModelService.GetFormModelInfo(form.Name));

                    helper.createPropertyLabels(formDesign, formDesign.Form.Name);

                    // Loop through all children FormControls.
                    this.crawlDesignControls(formDesign.VisualChildren, form.Name);
                }
                else if (e.SelectedElement is IBaseEnum)
                {
                    IBaseEnum axEnum = e.SelectedElement as IBaseEnum;
                    helper.setModelAndLabelFile(metaModelService.GetEnumModelInfo(axEnum.Name));

                    var labelPrefix = String.Format("{0}_{1}", Tags.EnumTag, axEnum.Name);

                    helper.createPropertyLabels(axEnum, labelPrefix);
                    // Was unable to locate a way of finding the parent enum of a enumValue. No model could be found without it.
                    // Loop through all values
                    foreach (IBaseEnumValue enumValue in axEnum.BaseEnumValues)
                    {
                        var enumValueLabelPrefix = String.Format("{0}_{1}_{2}", Tags.EnumTag, axEnum.Name, enumValue.Name);
                        helper.createPropertyLabels(enumValue, enumValueLabelPrefix);
                    }
                }
                else if (e.SelectedElement is IReport)
                {
                    IReport Report = e.SelectedElement as IReport;

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

                    foreach (IReportDataSet dataSet in Report.DataSets)
                    {
                        foreach (IReportDataSetField dataField in dataSet.Fields)
                        {
                            var labelPrefix = String.Format("{0}_{1}_{2}", dataSet.Report.Name, dataSet.Name, dataField.Name);
                            helper.createPropertyLabels(dataField, labelPrefix);
                        }
                    }
                }
                else if (e.SelectedElement is IReportDataSet)
                {
                    IReportDataSet dataSet = e.SelectedElement as IReportDataSet;

                    helper.setModelAndLabelFile(metaModelService.GetReportModelInfo(dataSet.Report.Name));

                    foreach (IReportDataSetField dataField in dataSet.Fields)
                    {
                        var labelPrefix = String.Format("{0}_{1}_{2}", dataSet.Report.Name, dataSet.Name, dataField.Name);
                        helper.createPropertyLabels(dataField, labelPrefix);
                    }
                }
            }
            catch (Exception ex)
            {
                Microsoft.Dynamics.Framework.Tools.MetaModel.Core.CoreUtility.HandleExceptionWithErrorMessage(ex);
            }
        }
        /// <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);

            }
        }
Esempio n. 9
0
 public ObjecTreeController(IModelServices ms, IServiceProvider provider, IMetaModelService injectedService)
 {
     Provider           = provider;
     InjectedMeta_Model = Provider.GetService <IMetaModelService>();
     modelServices      = Provider.GetService <IModelServices>();
 }