1
0
mirror of https://github.com/proxysu/ProxySU.git synced 2024-11-23 05:36:08 +03:00
ProxySU/ProxySuper.Core/Models/Record.cs

71 lines
1.9 KiB
C#
Raw Normal View History

2021-05-16 04:12:47 +03:00
using MvvmCross;
using MvvmCross.Commands;
using MvvmCross.Navigation;
using MvvmCross.ViewModels;
using Newtonsoft.Json;
2021-05-14 14:07:19 +03:00
using Newtonsoft.Json.Linq;
using ProxySuper.Core.Models.Hosts;
using ProxySuper.Core.Models.Projects;
2021-05-16 04:12:47 +03:00
using ProxySuper.Core.ViewModels;
2021-05-14 14:07:19 +03:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ProxySuper.Core.Models
{
2021-05-16 04:12:47 +03:00
public class Record : MvxViewModel
2021-05-14 14:07:19 +03:00
{
2021-05-16 04:12:47 +03:00
[JsonProperty("id")]
public string Id { get; set; }
[JsonProperty("host")]
2021-05-14 14:07:19 +03:00
public Host Host { get; set; }
[JsonProperty("settings")]
2021-05-16 04:12:47 +03:00
public XraySettings XraySettings { get; set; }
[JsonProperty("trojanGoSettings")]
public TrojanGoSettings TrojanGoSettings { get; set; }
2021-05-14 14:07:19 +03:00
2021-05-16 04:12:47 +03:00
[JsonIgnore]
public ProjectType Type
2021-05-14 14:07:19 +03:00
{
get
{
2021-05-16 04:12:47 +03:00
if (XraySettings != null) return ProjectType.Xray;
return ProjectType.TrojanGo;
}
}
public IMvxCommand NavToEditorCommand => new MvxAsyncCommand(NavigateToEditor);
public async Task NavigateToEditor()
{
var nav = Mvx.IoCProvider.Resolve<IMvxNavigationService>();
if (Type == ProjectType.Xray)
{
var result = await nav.Navigate<XrayEditorViewModel, Record, Record>(this);
if (result == null) return;
this.Host = result.Host;
this.XraySettings = result.XraySettings;
await RaisePropertyChanged("Host");
2021-05-14 14:07:19 +03:00
}
2021-05-16 11:29:37 +03:00
if (Type == ProjectType.TrojanGo)
{
var result = await nav.Navigate<TrojanGoEditorViewModel, Record, Record>(this);
if (result == null) return;
this.Host = result.Host;
this.TrojanGoSettings = result.TrojanGoSettings;
}
2021-05-14 14:07:19 +03:00
}
}
}