fishbait/LoadBalancerProject-DONT-IMPORT-INTO-UNITY/LRM_LoadBalancer/Endpoint/EndpointExtra.cs
2021-04-07 11:01:40 -04:00

45 lines
1.6 KiB
C#

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LightReflectiveMirror.LoadBalancing
{
public partial class Endpoint
{
/// <summary>
/// We can write all server operations in here,
/// to make it more clean.
/// </summary>
/// <param name="operation"></param>
/// <param name="onComplete"></param>
public static void PerformActionToAllServers(LRMServerOpCode operation, Action onComplete = null)
{
switch (operation)
{
case LRMServerOpCode.Clear:
for (int i = 0; i < _allServersToPerformActionOn.Count; i++)
_allServersToPerformActionOn[i].Item1.Clear();
break;
// Removes the old cached string and reserialzes the new one
case LRMServerOpCode.Cache:
for (int i = 0; i < _allServersToPerformActionOn.Count; i++)
{
var tuple = _allServersToPerformActionOn[i];
var serializedData = JsonConvert.SerializeObject(_allServersToPerformActionOn[i].Item1);
_allServersToPerformActionOn.Remove(tuple);
_allServersToPerformActionOn.Add(new Tuple<List<Room>, string>(tuple.Item1, serializedData));
}
break;
default:
break;
}
}
}
}