Skip to content

Commit

Permalink
1.5更新
Browse files Browse the repository at this point in the history
プロパティ化
IgnoreDataMember付与
シリアライザ変更 #3 fix
  • Loading branch information
ingen084 committed Sep 27, 2018
1 parent b99cf08 commit cc2e6e5
Show file tree
Hide file tree
Showing 19 changed files with 151 additions and 128 deletions.
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,13 @@
強震モニタを使用したソフトを開発する際に毎回クラスや処理をコピーするのが面倒なので作成しました。

# 更新情報
## 0.1.5
### 変更
- `Nullable` パース問題のためJsonシリアライザを `Utf8Json` から `Newtonsoft.Json` に変更しました。

### 修正
- `WebApi.GetEewInfo` が正常に動作しなかった問題を解決しました。 thx! @Kichi2525yt

## 0.1.4.0
### 修正
- 観測地点のリンク処理を改良しました。
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<PropertyGroup>
<TargetFrameworks>netstandard2.0;net47;net46</TargetFrameworks>
<Version>0.1.4.0</Version>
<Version>0.1.5</Version>
<Copyright>Copyright © ingenWorkS 2018</Copyright>
<Company>ingenWorkS</Company>
<Authors>ingen084</Authors>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<PropertyGroup>
<TargetFrameworks>netstandard2.0;net47;net46</TargetFrameworks>
<Version>0.1.4.0</Version>
<Version>0.1.5</Version>
<Copyright>Copyright © ingenWorkS 2018</Copyright>
<Company>ingenWorkS</Company>
<Authors>ingen084</Authors>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<PropertyGroup>
<TargetFrameworks>netstandard2.0;net47;net46</TargetFrameworks>
<Version>0.1.4.0</Version>
<Version>0.1.5</Version>
<Copyright>Copyright © ingenWorkS 2018</Copyright>
<Company>ingenWorkS</Company>
<Authors>ingen084</Authors>
Expand Down
10 changes: 5 additions & 5 deletions src/KyoshinMonitorLib.Training/TrainingAppApi.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
using System.Threading.Tasks;
using KyoshinMonitorLib.ApiResult.AppApi;
using KyoshinMonitorLib.UrlGenerator;
using Utf8Json;
using Newtonsoft.Json;

namespace KyoshinMonitorLib.Training
{
Expand All @@ -20,15 +20,15 @@ public TrainingAppApi(string basePath, ObservationPoint[] points) : base(points)
}

public override Task<SiteList> GetSiteList(string baseSerialNo)
=> Task.FromResult(JsonSerializer.Deserialize<SiteList>(
=> Task.FromResult(JsonConvert.DeserializeObject<SiteList>(
File.ReadAllText(AppApiUrlGenerator.Generate(baseSerialNo).Replace("http://ts.qtmoni.bosai.go.jp/qt/tsapp/kyoshin_monitor/static/sip_data/", BasePath))));

public override Task<RealTimeData> GetRealTimeData(DateTime time, RealTimeDataType dataType, bool isBehore = false)
=> Task.FromResult(JsonSerializer.Deserialize<RealTimeData>(
=> Task.FromResult(JsonConvert.DeserializeObject<RealTimeData>(
File.ReadAllText(AppApiUrlGenerator.Generate(AppApiUrlType.RealTimeData, time, dataType, isBehore).Replace("http://ts.qtmoni.bosai.go.jp/qt/tsapp/kyoshin_monitor/static/sip_data/", BasePath))));

public override Task<Hypo> GetHypoInfo(DateTime time)
=> Task.FromResult(JsonSerializer.Deserialize<Hypo>(
public override Task<Hypo> GetEewHypoInfo(DateTime time)
=> Task.FromResult(JsonConvert.DeserializeObject<Hypo>(
File.ReadAllText(AppApiUrlGenerator.Generate(AppApiUrlType.HypoInfoJson, time).Replace("http://kv.kmoni.bosai.go.jp/kyoshin_monitor/static/jsondata/", BasePath))));
}
}
6 changes: 3 additions & 3 deletions src/KyoshinMonitorLib/Api.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using System;
using Newtonsoft.Json;
using System;
using System.Net.Http;
using System.Threading.Tasks;
using Utf8Json;

namespace KyoshinMonitorLib
{
Expand All @@ -19,7 +19,7 @@ protected async Task<T> GetJsonObject<T>(string url)
if (!response.IsSuccessStatusCode)
throw new KyoshinMonitorException(url, "Request Not completed", response.StatusCode);

return JsonSerializer.Deserialize<T>(await response.Content.ReadAsStringAsync());
return JsonConvert.DeserializeObject<T>(await response.Content.ReadAsStringAsync());
}
}
catch (TaskCanceledException)
Expand Down
21 changes: 11 additions & 10 deletions src/KyoshinMonitorLib/ApiResult/AppApi/EstShindo.cs
Original file line number Diff line number Diff line change
@@ -1,28 +1,29 @@
using System;
using Newtonsoft.Json;
using System;
using System.Runtime.Serialization;

namespace KyoshinMonitorLib.ApiResult.AppApi
{
public class EstShindo
{
[DataMember(Name = "list")]
[JsonProperty("list")]
public float[] List { get; set; }
[DataMember(Name = "dataTime")]
[JsonProperty("dataTime")]
public DateTime DataTime { get; set; }
[DataMember(Name = "hypoType")]
[JsonProperty("hypoType")]
public string HypoType { get; set; }
[DataMember(Name = "baseData")]
[JsonProperty("baseData")]
public string BaseData { get; set; }
[DataMember(Name = "startMesh")]
[JsonProperty("startMesh")]
public string StartMesh { get; set; }
[DataMember(Name = "startMeshIdx")]
[JsonProperty("startMeshIdx")]
public int StartMeshIdx { get; set; }
[DataMember(Name = "serialNo")]
[JsonProperty("serialNo")]
public string SerialNo { get; set; }

[DataMember(Name = "security")]
[JsonProperty("security")]
public Security Security { get; set; }
[DataMember(Name = "result")]
[JsonProperty("result")]
public Result Result { get; set; }
}
}
59 changes: 30 additions & 29 deletions src/KyoshinMonitorLib/ApiResult/AppApi/Hypo.cs
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
using System;
using Newtonsoft.Json;
using System;
using System.Runtime.Serialization;

namespace KyoshinMonitorLib.ApiResult.AppApi
{
public class Hypo
{
[DataMember(Name = "dataTime")]
[JsonProperty("dataTime")]
public DateTime DataTime { get; set; }
[DataMember(Name = "items")]
[JsonProperty("items")]
public EewInfo[] Eews { get; set; }
[DataMember(Name = "result")]
[JsonProperty("result")]
public Result Result { get; set; }
[DataMember(Name = "security")]
[JsonProperty("security")]
public Security Security { get; set; }
}

Expand All @@ -20,58 +21,58 @@ public class EewInfo
/// <summary>
/// 発報時間
/// </summary>
[DataMember(Name = "reportTime")]
[JsonProperty("reportTime")]
public DateTime ReportTime { get; set; }

/// <summary>
/// 震源の地点コード(生の値)
/// </summary>
[DataMember(Name = "regionCode")]
[JsonProperty("regionCode")]
public string RegionCodeString { get; set; }
/// <summary>
/// 震源の地点コード(変換済み)
/// </summary>
[IgnoreDataMember]
[JsonIgnore]
public int RegionCode => int.Parse(RegionCodeString);

/// <summary>
/// 震源名
/// </summary>
[DataMember(Name = "regionName")]
[JsonProperty("regionName")]
public string RegionName { get; set; }

/// <summary>
/// 経度(生の値)
/// </summary>
[DataMember(Name = "longitude")]
[JsonProperty("longitude")]
public string LongitudeString { get; set; }
/// <summary>
/// 経度(変換済)
/// </summary>
[IgnoreDataMember]
[JsonIgnore]
public float Longitude => float.Parse(LongitudeString.Replace("N", "+").Replace("S", "-"));

/// <summary>
/// キャンセル報かどうか(生の値)
/// </summary>
[DataMember(Name = "isCancel")]
[JsonProperty("isCancel")]
public string IsCancelString { get; set; }
/// <summary>
/// キャンセル報かどうか(変換済)
/// </summary>
[IgnoreDataMember]
[JsonIgnore]
public bool IsCancel => IsCancelString == "true";

/// <summary>
/// 深さ(生の値)
/// </summary>
[DataMember(Name = "depth")]
[JsonProperty("depth")]
public string DepthString { get; set; }
/// <summary>
/// 深さ(変換済)
/// <para>変換できなかった場合nullが返されます。</para>
/// </summary>
[IgnoreDataMember]
[JsonIgnore]
public int? Depth
{
get
Expand All @@ -85,79 +86,79 @@ public int? Depth
/// <summary>
/// 予想最大震度(生の値)
/// </summary>
[DataMember(Name = "calcintensity")]
[JsonProperty("calcintensity")]
public string CalcintensityString { get; set; }
/// <summary>
/// 予想最大震度(変換済)
/// </summary>
[IgnoreDataMember]
[JsonIgnore]
public JmaIntensity Calcintensity => CalcintensityString.ToJmaIntensity();

/// <summary>
/// 最終報かどうか(生の値)
/// </summary>
[DataMember(Name = "isFinal")]
[JsonProperty("isFinal")]
public string IsFinalString { get; set; }
/// <summary>
/// 最終法かどうか(変換済)
/// </summary>
[IgnoreDataMember]
[JsonIgnore]
public bool IsFinal => IsFinalString == "true";

/// <summary>
/// 訓練報かどうか(生の値)
/// </summary>
[DataMember(Name = "isTraining")]
[JsonProperty("isTraining")]
public string IsTrainingString { get; set; }
/// <summary>
/// 訓練報かどうか(変換済)
/// </summary>
[IgnoreDataMember]
[JsonIgnore]
public bool IsTraining => IsTrainingString == "true";

/// <summary>
/// 緯度(生の値)
/// </summary>
[DataMember(Name = "latitude")]
[JsonProperty("latitude")]
public string LatitudeString { get; set; }
/// <summary>
/// 緯度(変換済み)
/// </summary>
[IgnoreDataMember]
[JsonIgnore]
public float Latitude => float.Parse(LatitudeString.Replace("E", "+").Replace("W", "-"));

/// <summary>
/// 発生時刻
/// </summary>
[DataMember(Name = "originTime")]
[JsonProperty("originTime")]
public DateTime OriginTime { get; set; }

/// <summary>
/// マグニチュード(生の値)
/// </summary>
[DataMember(Name = "magnitude")]
[JsonProperty("magnitude")]
public string MagnitudeString { get; set; }
/// <summary>
/// マグニチュード(変換済み)
/// </summary>
[IgnoreDataMember]
[JsonIgnore]
public float Magnitude => float.Parse(MagnitudeString);

/// <summary>
/// 発報番号(生の値)
/// </summary>
[DataMember(Name = "reportNum")]
[JsonProperty("reportNum")]
public string ReportNumString { get; set; }
/// <summary>
/// 発報番号(変換済み)
/// </summary>
[IgnoreDataMember]
[JsonIgnore]
public int ReportNum => int.Parse(ReportNumString);

/// <summary>
/// EEWID?
/// </summary>
[DataMember(Name = "reportId")]
[JsonProperty("reportId")]
public string ReportId { get; set; }
}
}
11 changes: 6 additions & 5 deletions src/KyoshinMonitorLib/ApiResult/AppApi/MeshList.cs
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
using System;
using Newtonsoft.Json;
using System;
using System.Runtime.Serialization;

namespace KyoshinMonitorLib.ApiResult.AppApi
{
public class MeshList
{
[DataMember(Name = "items")]
[JsonProperty("items")]
public object[][] Items { get; set; }
[DataMember(Name = "dataTime")]
[JsonProperty("dataTime")]
public DateTime DataTime { get; set; }
[DataMember(Name = "serialNo")]
[JsonProperty("serialNo")]
public string SerialNo { get; set; }

[DataMember(Name = "result")]
[JsonProperty("result")]
public Result Result { get; set; }
}
}
21 changes: 11 additions & 10 deletions src/KyoshinMonitorLib/ApiResult/AppApi/PSWave.cs
Original file line number Diff line number Diff line change
@@ -1,32 +1,33 @@
using System;
using Newtonsoft.Json;
using System;
using System.Runtime.Serialization;

namespace KyoshinMonitorLib.ApiResult.AppApi
{
public class PSWave
{
[DataMember(Name = "dataTime")]
[JsonProperty("dataTime")]
public DateTime DataTime { get; set; }
[DataMember(Name = "hypoType")]
[JsonProperty("hypoType")]
public string HypoType { get; set; }
[DataMember(Name = "items")]
[JsonProperty("items")]
public PSWaveItem[] Items { get; set; }

[DataMember(Name = "result")]
[JsonProperty("result")]
public Result Result { get; set; }
[DataMember(Name = "security")]
[JsonProperty("security")]
public Security Security { get; set; }
}

public class PSWaveItem
{
[DataMember(Name = "latitude")]
[JsonProperty("latitude")]
public string Latitude { get; set; }
[DataMember(Name = "longitude")]
[JsonProperty("longitude")]
public string Longitude { get; set; }
[DataMember(Name = "p_radius")]
[JsonProperty("p_radius")]
public string PWaveRadius { get; set; }
[DataMember(Name = "s_radius")]
[JsonProperty("s_radius")]
public string SWaveRadius { get; set; }
}
}
Loading

0 comments on commit cc2e6e5

Please sign in to comment.