using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
namespace TrainInfomationProviderService.StationInfo.Entities
{
public class StationStorage
{
///
/// 创建 的新实例(StationStorage)
///
[JsonConstructor]
protected StationStorage()
{
Stations = new Dictionary(StringComparer.OrdinalIgnoreCase);
}
public StationStorage(int version, IEnumerable detail)
{
Version = version;
Stations = detail.ToDictionary(s => s.Code, s => s, StringComparer.OrdinalIgnoreCase);
StationNameMap = detail.ToDictionary(s => s.Name, s => s, StringComparer.OrdinalIgnoreCase);
}
[JsonProperty("v")]
public int Version { get; set; }
[JsonProperty("s")]
public Dictionary Stations { get; set; }
[JsonIgnore]
public Dictionary StationNameMap { get; private set; }
[OnDeserialized]
void DeserializeCallback(StreamingContext context)
{
Init();
}
///
/// 初始化
///
protected void Init()
{
StationNameMap = Stations.ToDictionary(s => s.Value.Name, s => s.Value, StringComparer.OrdinalIgnoreCase);
}
}
}