Client rework for API change and paradigm shift (#39)

* most of the groups refactoring on client

* register OnMethods for group stuff

* start implementing client (still pretty broken)

* finish implementing new api first iteration

* idk rework everything for pair shit (still WIP); goal is to remove PairedClients and GroupPairClients from ApiController

* move everything to PairManager, remove dictionaries from APiController

* remove admin stuff from client, cleanup

* adjust reconnection handling, add new settings, todo still to remove access from old stuff that's marked obsolete from config

* add back adding servers, fix intro ui

* fix obsolete calls

* adjust config namespace

* add UI for setting animation/sound permissions to syncshells

* add ConfigurationService to hot reload config on change from external

* move transient data cache to configuration

* add deleting service to ui

* fix saving of transient resources

* fix group pair user assignments

* halt scanner when penumbra inactive, add visible/online/offline split to individual pairs and tags

* add presence to syncshell ui

* move fullpause from config to server config

* fixes in code style

* more codestyle

* show info icon on player in shells, don't show icon when no changes from default state are made, add online notifs

* fixes to intro UI

---------

Co-authored-by: rootdarkarchon <root.darkarchon@outlook.com>
This commit is contained in:
rootdarkarchon
2023-01-29 15:13:53 +01:00
committed by GitHub
parent 616af3626a
commit b2276a1883
79 changed files with 3585 additions and 2701 deletions

View File

@@ -1,25 +1,21 @@
using System;
using System.Collections.Generic;
using System.Linq;
using MareSynchronos.API;
using MareSynchronos.WebAPI;
using MareSynchronos.API.Dto.User;
using MareSynchronos.Managers;
namespace MareSynchronos.UI.Handlers
{
public class TagHandler
{
private readonly Configuration _configuration;
private readonly ApiController _apiController;
private readonly ServerConfigurationManager _serverConfigurationManager;
public TagHandler(Configuration configuration)
public TagHandler(ServerConfigurationManager serverConfigurationManager)
{
_configuration = configuration;
_serverConfigurationManager = serverConfigurationManager;
}
public void AddTag(string tag)
{
GetAvailableTagsForCurrentServer().Add(tag);
_configuration.Save();
_serverConfigurationManager.Save();
}
public void RemoveTag(string tag)
@@ -30,20 +26,20 @@ namespace MareSynchronos.UI.Handlers
GetUidTagDictionaryForCurrentServer().Keys
.ToList()
.ForEach(otherUid => RemoveTagFromPairedUid(otherUid, tag));
_configuration.Save();
_serverConfigurationManager.Save();
}
public void SetTagOpen(string tag, bool open)
{
if (open)
{
_configuration.OpenPairTags.Add(tag);
_serverConfigurationManager.CurrentServer!.OpenPairTags.Add(tag);
}
else
{
_configuration.OpenPairTags.Remove(tag);
_serverConfigurationManager.CurrentServer!.OpenPairTags.Remove(tag);
}
_configuration.Save();
_serverConfigurationManager.Save();
}
/// <summary>
@@ -53,7 +49,7 @@ namespace MareSynchronos.UI.Handlers
/// <returns>open true/false</returns>
public bool IsTagOpen(string tag)
{
return _configuration.OpenPairTags.Contains(tag);
return _serverConfigurationManager.CurrentServer!.OpenPairTags.Contains(tag);
}
public List<string> GetAllTagsSorted()
@@ -71,30 +67,30 @@ namespace MareSynchronos.UI.Handlers
.ToHashSet(StringComparer.Ordinal);
}
public void AddTagToPairedUid(ClientPairDto pair, string tagName)
public void AddTagToPairedUid(UserPairDto pair, string tagName)
{
var tagDictionary = GetUidTagDictionaryForCurrentServer();
var tagsForPair = tagDictionary.GetValueOrDefault(pair.OtherUID, new List<string>());
var tagsForPair = tagDictionary.GetValueOrDefault(pair.User.UID, new List<string>());
tagsForPair.Add(tagName);
tagDictionary[pair.OtherUID] = tagsForPair;
_configuration.Save();
tagDictionary[pair.User.UID] = tagsForPair;
_serverConfigurationManager.Save();
}
public void RemoveTagFromPairedUid(ClientPairDto pair, string tagName)
public void RemoveTagFromPairedUid(UserPairDto pair, string tagName)
{
RemoveTagFromPairedUid(pair.OtherUID, tagName);
_configuration.Save();
RemoveTagFromPairedUid(pair.User.UID, tagName);
_serverConfigurationManager.Save();
}
public bool HasTag(ClientPairDto pair, string tagName)
public bool HasTag(UserPairDto pair, string tagName)
{
var tagsForPair = GetUidTagDictionaryForCurrentServer().GetValueOrDefault(pair.OtherUID, new List<string>());
var tagsForPair = GetUidTagDictionaryForCurrentServer().GetValueOrDefault(pair.User.UID, new List<string>());
return tagsForPair.Contains(tagName, StringComparer.Ordinal);
}
public bool HasAnyTag(ClientPairDto pair)
public bool HasAnyTag(UserPairDto pair)
{
return GetUidTagDictionaryForCurrentServer().ContainsKey(pair.OtherUID);
return GetUidTagDictionaryForCurrentServer().ContainsKey(pair.User.UID);
}
private void RemoveTagFromPairedUid(string otherUid, string tagName)
@@ -114,22 +110,12 @@ namespace MareSynchronos.UI.Handlers
private Dictionary<string, List<string>> GetUidTagDictionaryForCurrentServer()
{
if (!_configuration.UidServerPairedUserTags.ContainsKey(_configuration.ApiUri))
{
_configuration.UidServerPairedUserTags.Add(_configuration.ApiUri, new(StringComparer.Ordinal));
}
return _configuration.UidServerPairedUserTags[_configuration.ApiUri];
return _serverConfigurationManager.CurrentServer!.UidServerPairedUserTags;
}
private HashSet<string> GetAvailableTagsForCurrentServer()
{
if (!_configuration.ServerAvailablePairTags.ContainsKey(_configuration.ApiUri))
{
_configuration.ServerAvailablePairTags.Add(_configuration.ApiUri, new(StringComparer.Ordinal));
}
return _configuration.ServerAvailablePairTags[_configuration.ApiUri];
return _serverConfigurationManager.CurrentServer!.ServerAvailablePairTags;
}
}
}