Skip to content

Instantly share code, notes, and snippets.

@jleo3
Created March 12, 2013 14:12
Show Gist options
  • Save jleo3/5143175 to your computer and use it in GitHub Desktop.
Save jleo3/5143175 to your computer and use it in GitHub Desktop.
With functions extracted.
set
{
Interaction.Info("View changed");
var gridSettings = value ?? GridSettings.Default();
_gridSettingsDispatcher.BookFilters = gridSettings.BookFilters;
_gridSettingsDispatcher.SortDefinitions = gridSettings.SortDefinitions;
_gridSettingsDispatcher.Grouping = gridSettings.Grouping;
_gridSettingsDispatcher.ColumnPositions = gridSettings.ColumnPositions.Cast<IColumnDefinition>().ToList();
_gridSettingsDispatcher.ColumnVisibility = SetDictionary(gridSettings.ColumnVisibilty, gridSettings);
_gridSettingsDispatcher.ColumnWidths = SetDictionary(gridSettings.ColumnWidths, gridSettings);
_gridSettingsDispatcher.ColumnFreezeIndex = gridSettings.ColumnFreezeIndex;
_gridSettingsDispatcher.CurrentFilter = gridSettings.CurrentFilter;
_gridSettingsDispatcher.GroupingColumnWidth = gridSettings.GroupingColumnWidth;
_gridSettingsDispatcher.ForegroundDictionary = SetDictionary(gridSettings.ForegroundColors, gridSettings);
_gridSettingsDispatcher.BackgroundDictionary = SetDictionary(gridSettings.BackgroundColors, gridSettings);
_gridSettingsDispatcher.NegativeValuesRedDictionary = SetDictionary(gridSettings.NegativeValuesRed, gridSettings);
_gridSettingsDispatcher.PositiveValuesBlueDictionary = SetDictionary(gridSettings.PositiveValuesBlue, gridSettings);
_gridSettingsDispatcher.FormatStringsDictionary = SetDictionary(gridSettings.FormatString, gridSettings);
_gridSettingsDispatcher.HideDefaultValuesDictionary = SetDictionary(gridSettings.HideDefaultValues, gridSettings);
_gridSettingsDispatcher.FireNeedsSaveChanged(this, false);
}
}
private Dictionary<IColumnDefinition, bool> SetDictionary(Dictionary<string, bool> dictionary, GridSettings gridSettings)
{
return dictionary.Where(x => HasColumnDefinition(gridSettings.ColumnPositions, x.Key)).ToDictionary(x => FindColumnDefinition(gridSettings.ColumnPositions, x.Key), x => x.Value);
}
private Dictionary<IColumnDefinition, string> SetDictionary(Dictionary<string, string> dictionary, GridSettings gridSettings)
{
return dictionary.Where(x => HasColumnDefinition(gridSettings.ColumnPositions, x.Key)).ToDictionary(x => FindColumnDefinition(gridSettings.ColumnPositions, x.Key), x => x.Value);
}
private Dictionary<IColumnDefinition, Color> SetDictionary(Dictionary<string, Color> dictionary, GridSettings gridSettings)
{
return dictionary.Where(x => HasColumnDefinition(gridSettings.ColumnPositions, x.Key)).ToDictionary(x => FindColumnDefinition(gridSettings.ColumnPositions, x.Key), x => x.Value);
}
private Dictionary<IColumnDefinition, int> SetDictionary(Dictionary<string, int> dictionary, GridSettings gridSettings)
{
return dictionary.Where(x => HasColumnDefinition(gridSettings.ColumnPositions, x.Key)).ToDictionary(x => FindColumnDefinition(gridSettings.ColumnPositions, x.Key), x => x.Value);
}
private static bool HasColumnDefinition(List<ColumnDefinition> columns, string columnName)
{
if (columns == null || columnName == null) return false;
return columns.Find(x => x.ColumnName.Equals(columnName))!=null;
}
internal static IColumnDefinition FindColumnDefinition(List<ColumnDefinition> columns, string columnName)
{
return columns.Find(x => x.ColumnName.Equals(columnName));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment