// Used by LoadProfile, shouldn't be used seperately. private void _PartialLoad(StackPanel sp, Dictionary <string, Dictionary <string, string> > pData) { try { // Careful, this assumes that the stackpanel's only children are ProfileCreatorEntries foreach (object pceObj in sp.Children) { ProfileCreatorEntry pce = (ProfileCreatorEntry)pceObj; // Attempt to find a defined sqlKey for this appKEy in the profile segment. var matchTables = pData.Where(dd => dd.Value .Where(keys => keys.Key == pce.AppKey).Count() > 0 ); // No match found, clear the sqlKey and tablename and disable if (matchTables.Count() == 0) { pce.SqlKey = ""; pce.TableName = ""; pce.IsIncluded = false; } else // Match found, set known values to ui { pce.TableName = matchTables.First().Key; pce.SqlKey = matchTables.First().Value.Where(kvp => kvp.Key == pce.AppKey).First().Value; // I'm too deep in to change the structure now :P pce.IsIncluded = true; } } } catch { Logger.Log("There was a problem loading this profile into the UI. Is the profile valid for this version of TrinityCreator?", Logger.Status.Error); } }
private void addCustomFieldBtn_Click(object sender, RoutedEventArgs e) { var ne = new ProfileCreatorEntry(); CustomFieldsElements.Add(ne); customFieldsSp.Children.Add(ne); }
// Load an existing profile into the UI private void LoadProfile(Profile p) { // Load metadata EditingProfile = p; DataContext = EditingProfile; // Call partial loads for each creator _PartialLoad(creatureSp, p.Creature); _PartialLoad(questSp, p.Quest); _PartialLoad(itemSp, p.Item); _PartialLoad(lootSp, p.Loot); _PartialLoad(vendorSp, p.Vendor); _PartialLoadDefinitions(definitionsSp, p.Definitions); // Manually set metadata fields because faster // Add Custom Fields customFieldsSp.Children.Clear(); CustomFieldsElements.Clear(); foreach (var custFieldPair in p.CustomFields) { foreach (var keys in custFieldPair.Value) { // Prepare the ProfileCreatorEntry var ne = new ProfileCreatorEntry(); ne.AppKey = keys.Key; ne.SqlKey = keys.Value; ne.TableName = custFieldPair.Key; ne.IsIncluded = true; // Add them to UI CustomFieldsElements.Add(ne); customFieldsSp.Children.Add(ne); } } }