Skip to content

Instantly share code, notes, and snippets.

@janvanderhaegen
Created September 20, 2013 23:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save janvanderhaegen/6645356 to your computer and use it in GitHub Desktop.
Save janvanderhaegen/6645356 to your computer and use it in GitHub Desktop.
Get an overview of all screens from the model service.
private static IEnumerable<string> _allScreens;
static BuildingBlockProvider()
{
List<string> screens = new List<string>();
foreach (var screenModel in ServiceProxy.Instance.ModelService.Items.OfType<IScreenDefinition>())
{
if (screenModel.Members.Any(m => m.Attributes.OfType<IIsParameterAttribute>().Any(att => !(att.Parent as IScreenPropertyDefinition).PropertyType.Name.EndsWith("?")))) {
continue;
}
string name;
var displayName = screenModel.Attributes.OfType<IDisplayNameAttribute>().FirstOrDefault();
if (displayName != null)
{
name = displayName.Value;
if (name == "$(UsersScreen_DisplayName)")
name = "Users";
if (name == "$(RolesScreen_DisplayName)")
name = "Roles";
}
else
{
name = screenModel.Name;
var sb = new StringBuilder(name.Count() + 5);
sb.Append(name[0]);
for (int i = 1; i < name.Count(); i++)
{
char c = name[i];
if ((int)c >= 65 && (int)c <= 90)
sb.Append(" ");
sb.Append(c);
}
name = sb.ToString();
}
screens.Add(name);
}
_allScreens = screens.OrderBy(t => t).ToList();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment