// See the License for the specific language governing permissions and\r
// limitations under the License.\r
\r
+using System;\r
using System.Collections.Generic;\r
+using System.Collections.Specialized;\r
using System.Linq;\r
using static System.Math;\r
\r
if (AllAirCorps == null)\r
return;\r
var values = HttpUtility.ParseQueryString(request);\r
- var areaId = int.Parse(values["api_area_id"] ?? "0");\r
- var airCorps =\r
- AllAirCorps.First(b => b.AreaId == areaId).AirCorps[int.Parse(values["api_base_id"]) - 1];\r
+ var airCorps = GetBaseInfo(values).AirCorps[int.Parse(values["api_base_id"]) - 1];\r
if (json.api_distance()) // 2016春イベにはない\r
airCorps.Distance = (int)json.api_distance;\r
foreach (var planeInfo in json.api_plane_info)\r
if (AllAirCorps == null)\r
return;\r
var values = HttpUtility.ParseQueryString(request);\r
- var areaId = int.Parse(values["api_area_id"] ?? "0");\r
- var airCorps = AllAirCorps.First(b => b.AreaId == areaId).AirCorps;\r
+ var airCorps = GetBaseInfo(values).AirCorps;\r
foreach (var entry in\r
values["api_base_id"].Split(',')\r
.Zip(values["api_action_kind"].Split(','), (b, a) => new {baseId = b, action = a}))\r
}\r
}\r
\r
+ public void InspectExpandBase(string request, dynamic json)\r
+ {\r
+ var values = HttpUtility.ParseQueryString(request);\r
+ var baseInfo = GetBaseInfo(values);\r
+ var airCorps = baseInfo.AirCorps;\r
+ Array.Resize(ref airCorps, airCorps.Length + 1);\r
+ baseInfo.AirCorps = airCorps;\r
+ airCorps[airCorps.Length - 1] = new AirCorpsInfo\r
+ {\r
+ Planes =\r
+ ((dynamic[])json[0].api_plane_info).\r
+ Select(plane => new PlaneInfo {Slot = new ItemStatus()}).ToArray()\r
+ };\r
+ }\r
+\r
+ private BaseInfo GetBaseInfo(NameValueCollection values)\r
+ {\r
+ var areaId = int.Parse(values["api_area_id"] ?? "0"); // 古いAPIに対応するため\r
+ return AllAirCorps.First(b => b.AreaId == areaId);\r
+ }\r
+\r
public void InspectPlaneInfo(dynamic json)\r
{\r
_relocationgPlanes = json.api_base_convert_slot()\r