2022-11-24 19:38:19 +01:00
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using Newtonsoft.Json;
|
|
|
|
|
using EDPlayerJournal.BGS;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
|
|
|
|
namespace EliteBGS;
|
|
|
|
|
|
|
|
|
|
public class UITransaction {
|
|
|
|
|
public bool IsEnabled { get; set; } = true;
|
|
|
|
|
|
|
|
|
|
public bool IsExpanded { get; set; } = true;
|
|
|
|
|
|
|
|
|
|
public Transaction Transaction { get; set; }
|
|
|
|
|
|
|
|
|
|
public UITransaction() { }
|
|
|
|
|
|
|
|
|
|
public UITransaction(Transaction transaction) {
|
|
|
|
|
Transaction = transaction;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public string Name {
|
|
|
|
|
get { return ToString(); }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public string CompletedAt {
|
|
|
|
|
get { return Transaction.CompletedAt; }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override string ToString() {
|
|
|
|
|
return Transaction.ToString();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public class Objective : IComparable<Objective> {
|
|
|
|
|
public bool IsEnabled { get; set; }
|
|
|
|
|
|
|
|
|
|
public List<UITransaction> UITransactions { get; } = new List<UITransaction>();
|
|
|
|
|
|
|
|
|
|
public List<Transaction> Transactions {
|
|
|
|
|
get { return UITransactions.Select(x => x.Transaction).ToList<Transaction>(); }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public string Name {
|
|
|
|
|
get { return this.ToString(); }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public bool IsExpanded { get; set; }
|
|
|
|
|
|
|
|
|
|
public void Clear() {
|
|
|
|
|
if (Transactions == null) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
Transactions.Clear();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public bool Matches(string system, string faction) {
|
|
|
|
|
return string.Compare(system, System) == 0 &&
|
|
|
|
|
string.Compare(faction, Faction) == 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public int CompareTo(Objective other) {
|
|
|
|
|
return (other.System == System &&
|
|
|
|
|
other.Faction == Faction) ? 0 : -1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public bool IsValid {
|
|
|
|
|
get { return !string.IsNullOrEmpty(System) && !string.IsNullOrEmpty(Faction); }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public string System { get; set; }
|
|
|
|
|
|
|
|
|
|
public string Faction { get; set; }
|
|
|
|
|
|
|
|
|
|
public override string ToString() {
|
|
|
|
|
StringBuilder str = new StringBuilder();
|
|
|
|
|
if (!string.IsNullOrEmpty(System)) {
|
|
|
|
|
str.AppendFormat("System: {0}", System);
|
2022-11-25 14:39:45 +01:00
|
|
|
|
} else {
|
|
|
|
|
str.AppendFormat("System: Unknown");
|
2022-11-24 19:38:19 +01:00
|
|
|
|
}
|
|
|
|
|
if (!string.IsNullOrEmpty(Faction)) {
|
|
|
|
|
if (str.Length > 0) {
|
|
|
|
|
str.Append(", ");
|
|
|
|
|
}
|
|
|
|
|
str.AppendFormat("Faction: {0}", Faction);
|
|
|
|
|
}
|
|
|
|
|
return str.ToString();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public List<Type> EnabledOfType<Type>() where Type : Transaction {
|
|
|
|
|
return UITransactions
|
|
|
|
|
.Where(x => x.IsEnabled)
|
|
|
|
|
.Select(x => x.Transaction)
|
|
|
|
|
.OfType<Type>()
|
|
|
|
|
.ToList()
|
|
|
|
|
;
|
|
|
|
|
}
|
|
|
|
|
}
|