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);
     }
 }
Example #2
0
 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;
 }