public string GetProperty(string propertyName, string format, CultureInfo formatProvider, UserInfo accessingUser, Scope accessLevel, ref bool propertyNotFound) { string retVal = ""; switch (propertyName.ToLower()) { case "all": int moduleId = _moduleContext.ModuleId; int portalId = _moduleContext.PortalId; int tabId = _moduleContext.TabId; ModuleInfo module = new ModuleController().GetModule(moduleId, tabId); dynamic properties = new ExpandoObject(); System.IO.FileInfo fi = new System.IO.FileInfo(HttpContext.Current.Server.MapPath("~/" + _moduleContext.Configuration.ModuleControl.ControlSrc.Replace(".html", "") + ".resx")); string physResourceFile = fi.DirectoryName + "/App_LocalResources/" + fi.Name; string relResourceFile = "/DesktopModules/" + module.DesktopModule.FolderName + "/App_LocalResources/" + fi.Name; if (File.Exists(physResourceFile)) { using (var rsxr = new ResXResourceReader(physResourceFile)) { var res = rsxr.OfType<DictionaryEntry>() .ToDictionary( entry => entry.Key.ToString().Replace(".", "_"), entry => Localization.GetString(entry.Key.ToString(), relResourceFile)); properties.Resources = res; } } else { properties.Resources = physResourceFile + " not found"; } properties.Settings = _moduleContext.Settings; properties.Editable = _moduleContext.EditMode && _moduleContext.IsEditable; properties.Admin = accessingUser.IsInRole(PortalSettings.Current.AdministratorRoleName); properties.ModuleId = moduleId; properties.PortalId = portalId; properties.UserId = accessingUser.UserID; properties.HomeDirectory = PortalSettings.Current.HomeDirectory.Substring(1); properties.RawUrl = HttpContext.Current.Request.RawUrl; List<string> languages = new List<string>(); LocaleController lc = new LocaleController(); Dictionary<string, Locale> loc = lc.GetLocales(_moduleContext.PortalId); foreach (KeyValuePair<string, Locale> item in loc) { string cultureCode = item.Value.Culture.Name; languages.Add(cultureCode); } properties.Languages = languages; properties.CurrentLanguage = System.Threading.Thread.CurrentThread.CurrentCulture.Name; retVal = JsonConvert.SerializeObject(properties); break; case "view": retVal = (string)_moduleContext.Settings["View"]; if (String.IsNullOrEmpty(retVal)) retVal = "View.html"; break; case "list": retVal = (string)_moduleContext.Settings["List"]; if (String.IsNullOrEmpty(retVal)) retVal = "List.html"; break; } return retVal; }