configuration rework
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using MareSynchronos.API.Dto.User;
|
||||
using MareSynchronos.Managers;
|
||||
using MareSynchronos.Models;
|
||||
|
||||
namespace MareSynchronos.UI.Handlers
|
||||
{
|
||||
@@ -17,34 +18,27 @@ namespace MareSynchronos.UI.Handlers
|
||||
|
||||
public void AddTag(string tag)
|
||||
{
|
||||
GetAvailableTagsForCurrentServer().Add(tag);
|
||||
_serverConfigurationManager.Save();
|
||||
_serverConfigurationManager.AddTag(tag);
|
||||
}
|
||||
|
||||
public void RemoveTag(string tag)
|
||||
{
|
||||
// First remove the tag from teh available pair tags
|
||||
GetAvailableTagsForCurrentServer().Remove(tag);
|
||||
// Then also clean up the tag in all the pairs
|
||||
GetUidTagDictionaryForCurrentServer().Keys
|
||||
.ToList()
|
||||
.ForEach(otherUid => RemoveTagFromPairedUid(otherUid, tag));
|
||||
_serverConfigurationManager.Save();
|
||||
_serverConfigurationManager.RemoveTag(tag);
|
||||
}
|
||||
|
||||
public void SetTagOpen(string tag, bool open)
|
||||
{
|
||||
if (open)
|
||||
{
|
||||
_serverConfigurationManager.CurrentServer!.OpenPairTags.Add(tag);
|
||||
_serverConfigurationManager.AddOpenPairTag(tag);
|
||||
}
|
||||
else
|
||||
{
|
||||
_serverConfigurationManager.CurrentServer!.OpenPairTags.Remove(tag);
|
||||
_serverConfigurationManager.RemoveOpenPairTag(tag);
|
||||
}
|
||||
_serverConfigurationManager.Save();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Is this tag opened in the paired clients UI?
|
||||
/// </summary>
|
||||
@@ -52,73 +46,39 @@ namespace MareSynchronos.UI.Handlers
|
||||
/// <returns>open true/false</returns>
|
||||
public bool IsTagOpen(string tag)
|
||||
{
|
||||
return _serverConfigurationManager.CurrentServer!.OpenPairTags.Contains(tag);
|
||||
return _serverConfigurationManager.ContainsOpenPairTag(tag);
|
||||
}
|
||||
|
||||
public List<string> GetAllTagsSorted()
|
||||
{
|
||||
return GetAvailableTagsForCurrentServer()
|
||||
return _serverConfigurationManager.GetServerAvailablePairTags()
|
||||
.OrderBy(s => s, StringComparer.OrdinalIgnoreCase)
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public HashSet<string> GetOtherUidsForTag(string tag)
|
||||
{
|
||||
return GetUidTagDictionaryForCurrentServer()
|
||||
.Where(pair => pair.Value.Contains(tag, StringComparer.Ordinal))
|
||||
.Select(pair => pair.Key)
|
||||
.ToHashSet(StringComparer.Ordinal);
|
||||
return _serverConfigurationManager.GetUidsForTag(tag);
|
||||
}
|
||||
|
||||
public void AddTagToPairedUid(UserPairDto pair, string tagName)
|
||||
{
|
||||
var tagDictionary = GetUidTagDictionaryForCurrentServer();
|
||||
var tagsForPair = tagDictionary.GetValueOrDefault(pair.User.UID, new List<string>());
|
||||
tagsForPair.Add(tagName);
|
||||
tagDictionary[pair.User.UID] = tagsForPair;
|
||||
_serverConfigurationManager.Save();
|
||||
_serverConfigurationManager.AddTagForUid(pair.User.UID, tagName);
|
||||
}
|
||||
|
||||
|
||||
public void RemoveTagFromPairedUid(UserPairDto pair, string tagName)
|
||||
{
|
||||
RemoveTagFromPairedUid(pair.User.UID, tagName);
|
||||
_serverConfigurationManager.Save();
|
||||
_serverConfigurationManager.RemoveTagForUid(pair.User.UID, tagName);
|
||||
}
|
||||
|
||||
public bool HasTag(UserPairDto pair, string tagName)
|
||||
{
|
||||
var tagsForPair = GetUidTagDictionaryForCurrentServer().GetValueOrDefault(pair.User.UID, new List<string>());
|
||||
return tagsForPair.Contains(tagName, StringComparer.Ordinal);
|
||||
return _serverConfigurationManager.ContainsTag(pair.User.UID, tagName);
|
||||
}
|
||||
|
||||
public bool HasAnyTag(UserPairDto pair)
|
||||
{
|
||||
return GetUidTagDictionaryForCurrentServer().ContainsKey(pair.User.UID);
|
||||
}
|
||||
|
||||
private void RemoveTagFromPairedUid(string otherUid, string tagName)
|
||||
{
|
||||
var tagsForPair = GetUidTagDictionaryForCurrentServer().GetValueOrDefault(otherUid, new List<string>());
|
||||
tagsForPair.Remove(tagName);
|
||||
if (!tagsForPair.Any())
|
||||
{
|
||||
// No more entries in list -> we can kick out that entry completely
|
||||
GetUidTagDictionaryForCurrentServer().Remove(otherUid);
|
||||
}
|
||||
else
|
||||
{
|
||||
GetUidTagDictionaryForCurrentServer()[otherUid] = tagsForPair;
|
||||
}
|
||||
}
|
||||
|
||||
private Dictionary<string, List<string>> GetUidTagDictionaryForCurrentServer()
|
||||
{
|
||||
return _serverConfigurationManager.CurrentServer!.UidServerPairedUserTags;
|
||||
}
|
||||
|
||||
private HashSet<string> GetAvailableTagsForCurrentServer()
|
||||
{
|
||||
return _serverConfigurationManager.CurrentServer!.ServerAvailablePairTags;
|
||||
return _serverConfigurationManager.HasTags(pair.User.UID);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user