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}"); }
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}"); }