public static void Save(string filename, ConflictSettings conflictSettings) { if (!Directory.Exists(Path.GetDirectoryName(filename))) Directory.CreateDirectory(Path.GetDirectoryName(filename)); using (StreamWriter file = File.CreateText(filename)) { JsonSerializer serializer = new JsonSerializer(); serializer.Serialize(file, conflictSettings); } }
internal bool IsDefaultRule(ConflictSettings.DefaultRuleType defaultRule) { if (defaultRule == ConflictSettings.DefaultRuleType.All) { foreach (bool b in ClientsRules.Values) if (!b) return false; return true; } else if (defaultRule == ConflictSettings.DefaultRuleType.None) { foreach (bool b in ClientsRules.Values) if (b) return false; return true; } return false; }
private void CreateRule(string character, string fullEventName, ConflictRule.ConflictTypes conflictType, List<string> clientsList, ConflictSettings.DefaultRuleType defaultRule) { ConflictRule cr = new ConflictRule(fullEventName, conflictType); if (defaultRule != ConflictSettings.DefaultRuleType.Ignore) { foreach (string client in clientsList) cr.ClientsRules[client] = defaultRule == ConflictSettings.DefaultRuleType.All; } else { foreach (string client in clientsList) cr.UnsolvedClients.Add(client); } if (!conflictRulesBuffer.ContainsKey(character)) conflictRulesBuffer[character] = new Dictionary<string, Dictionary<ConflictRule.ConflictTypes, ConflictRule>>(); if (!conflictRulesBuffer[character].ContainsKey(fullEventName)) conflictRulesBuffer[character][fullEventName] = new Dictionary<ConflictRule.ConflictTypes, ConflictRule>(); conflictRulesBuffer[character][fullEventName][conflictType] = cr; }
private bool IsRuleSolved(string character, string fullEventName, ConflictRule.ConflictTypes conflictType, List<string> clientsList, ConflictSettings.DefaultRuleType defaultRule) { if (!conflictRules.ContainsKey(character)) return false; if (!conflictRules[character].ContainsKey(fullEventName)) return false; if (!conflictRules[character][fullEventName].ContainsKey(conflictType)) return false; if (!conflictRules[character][fullEventName][conflictType].Solved) return false; return true; }
private void SaveSettings(Character character = null) { if (Properties.Settings.Default.ConflictRulesFile != "") { ConflictSettings settings = new ConflictSettings(); settings.ConflictRules = this.ConflictRules; settings.DefaultRuleOnActionPublishingConflict = this.defaultRuleOnActionPublishingConflict; settings.DefaultRuleOnActionSubscriptionConflict = this.defaultRuleOnActionSubscriptionConflict; settings.DefaultRuleOnPerceptionPublishingConflict = this.defaultRuleOnPerceptionPublishingConflict; settings.DefaultRuleOnPerceptionSubscriptionConflict = this.defaultRuleOnPerceptionSubscriptionConflict; ConflictSettings.Save(Properties.Settings.Default.ConflictRulesFile, settings); Debug("Saved settings to " + Properties.Settings.Default.ConflictRulesFile); NotifySettingsSaved(); if (character != null) NotifyConflictsChanged(character); } else { DebugError("Did not save Conflict Rules file because its path is not defined!"); } }
private void LoadSettings(ConflictSettings settings) { this.conflictRules = settings.ConflictRules; this.defaultRuleOnActionPublishingConflict = settings.DefaultRuleOnActionPublishingConflict; this.defaultRuleOnActionSubscriptionConflict= settings.DefaultRuleOnActionSubscriptionConflict; this.defaultRuleOnPerceptionPublishingConflict = settings.DefaultRuleOnPerceptionPublishingConflict; this.defaultRuleOnPerceptionSubscriptionConflict = settings.DefaultRuleOnPerceptionSubscriptionConflict; }