* Separating "SSH Info" and "Quick Launch", and updating translations. * Adding "Quick Launch" to menu. * Auto-complete, initial version. * Builds, but not finished. * Improved, but there are still some bugs... * Minor changes. * Refactroing request/response identifiers. * Improving command history. * Minor refactoring. * Deleting history by using "Del" key. * Handling mosh special case in quick commands. * SSH command handled as any other command in the path. * New resource strings. * Fixing quick command links. * Fixing after-merging bugs. * Improving filtering. * Finishing filtering. * Changing placeholder text. * Minor refactoring. * Updating resources. * Renaming NewRemoteTab back to NewSshTab.
63 lines
1.8 KiB
C#
63 lines
1.8 KiB
C#
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Windows.Storage;
|
|
|
|
namespace FluentTerminal.App.Services.Adapters
|
|
{
|
|
public class ApplicationDataContainerAdapter : IApplicationDataContainer
|
|
{
|
|
private readonly ApplicationDataContainer _applicationDataContainer;
|
|
|
|
public ApplicationDataContainerAdapter(ApplicationDataContainer applicationDataContainer)
|
|
{
|
|
_applicationDataContainer = applicationDataContainer;
|
|
}
|
|
|
|
public void Delete(string key)
|
|
{
|
|
_applicationDataContainer.Values.Remove(key);
|
|
}
|
|
|
|
public void Clear()
|
|
{
|
|
_applicationDataContainer.Values.Clear();
|
|
}
|
|
|
|
public IEnumerable<object> GetAll()
|
|
{
|
|
return _applicationDataContainer.Values.Select(x => x.Value);
|
|
}
|
|
|
|
public T ReadValueFromJson<T>(string name, T fallbackValue)
|
|
{
|
|
if (_applicationDataContainer.Values.TryGetValue(name, out object value))
|
|
{
|
|
if (EqualityComparer<T>.Default.Equals(fallbackValue, default))
|
|
{
|
|
fallbackValue = Activator.CreateInstance<T>();
|
|
}
|
|
|
|
JsonConvert.PopulateObject((string)value, fallbackValue);
|
|
}
|
|
return fallbackValue;
|
|
}
|
|
|
|
public void SetValue(string key, object value)
|
|
{
|
|
_applicationDataContainer.Values[key] = value;
|
|
}
|
|
|
|
public bool TryGetValue(string key, out object value)
|
|
{
|
|
return _applicationDataContainer.Values.TryGetValue(key, out value);
|
|
}
|
|
|
|
public void WriteValueAsJson<T>(string name, T value)
|
|
{
|
|
_applicationDataContainer.Values[name] = JsonConvert.SerializeObject(value);
|
|
}
|
|
}
|
|
}
|