borepin/Borepin/Borepin/Service/Connections/ConnectionService.cs

69 lines
2.3 KiB
C#

using Borepin.Model;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Xamarin.Essentials;
namespace Borepin.Service.Connections
{
public class ConnectionService : IConnectionService
{
public Task<List<Connection>> GetConnectionList()
{
return Task.FromResult(JsonConvert.DeserializeObject<List<Connection>>(Preferences.Get("connection_list", "[]")));
}
public Task<bool> AddConnection(Connection connection)
{
List<Connection> connection_list = JsonConvert.DeserializeObject<List<Connection>>(Preferences.Get("connection_list", "[]"));
if(connection_list.Contains(connection))
{
throw new ArgumentException("Connection allready exist");
}
connection_list.Add(connection);
Preferences.Set("connection_list", JsonConvert.SerializeObject(connection_list));
return Task.FromResult(true);
}
public Task<bool> RemoveConnection(Connection connection)
{
List<Connection> connection_list = JsonConvert.DeserializeObject<List<Connection>>(Preferences.Get("connection_list", "[]"));
if (!connection_list.Contains(connection))
{
throw new ArgumentException("Connection does not exist");
}
connection_list.RemoveAll(x => x.Equals(connection));
Preferences.Set("connection_list", JsonConvert.SerializeObject(connection_list));
return Task.FromResult(true);
}
public Task<bool> LogConnect(Connection connection)
{
List<Connection> connection_list = JsonConvert.DeserializeObject<List<Connection>>(Preferences.Get("connection_list", "[]"));
if (!connection_list.Contains(connection))
{
throw new ArgumentException("Connection does not exist");
}
int index = connection_list.IndexOf(connection);
Connection connection_update = connection_list[index];
connection_update.LastTime = DateTime.UtcNow;
connection_list[index] = connection_update;
Preferences.Set("connection_list", JsonConvert.SerializeObject(connection_list));
return Task.FromResult(true);
}
}
}