From 16fc286393e3c7ece26cb7ab3ebc70fc4ba3576a Mon Sep 17 00:00:00 2001 From: denglihong2007 <2639367181@qq.com> Date: Sat, 15 Mar 2025 22:02:47 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=AB=99=E5=8F=B0=E3=80=81=E6=A3=80?= =?UTF-8?q?=E7=A5=A8=E5=8F=A3=E6=99=BA=E8=83=BD=E5=8C=B9=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../StationManagementPageViewModel.cs | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/CRSim/ViewModels/Pages/DataManagement/StationManagementPageViewModel.cs b/CRSim/ViewModels/Pages/DataManagement/StationManagementPageViewModel.cs index de2d0b3..c03becf 100644 --- a/CRSim/ViewModels/Pages/DataManagement/StationManagementPageViewModel.cs +++ b/CRSim/ViewModels/Pages/DataManagement/StationManagementPageViewModel.cs @@ -1,3 +1,5 @@ +using CRSim.Core.Models; + namespace CRSim.ViewModels; public partial class StationManagementPageViewModel : ObservableObject @@ -328,7 +330,7 @@ public partial class StationManagementPageViewModel : ObservableObject { firstColumn = firstColumn[..spaceIndex]; } - if (StationStops.Any(x=> x.Number==firstColumn)) continue; + if (StationStops.Any(x => x.Number == firstColumn)) continue; DateTime? departureTime = DateTime.Parse(data[4]); DateTime? arrivalTime = departureTime.Value.Subtract(TimeSpan.FromMinutes(2)); if (data[1].Split("-")[0] == SelectedStation.Name) @@ -339,18 +341,20 @@ public partial class StationManagementPageViewModel : ObservableObject { departureTime = null; } - StationStops.Add(new StationStop() - { - Number = firstColumn, - Origin = data[1].Split("-")[0], - Terminal = data[1].Split("-")[1], + var stationStop = new StationStop() + { + Number = firstColumn, + Origin = data[1].Split("-")[0], + Terminal = data[1].Split("-")[1], ArrivalTime = arrivalTime, - DepartureTime = departureTime, - TicketChecks = [TicketChecks[new Random().Next(TicketChecks.Count)].Name], + DepartureTime = departureTime, Platform = Platforms[new Random().Next(Platforms.Count)].Name, Length = firstColumn.StartsWith('G') || firstColumn.StartsWith('D') || firstColumn.StartsWith('C') ? Math.Abs(firstColumn.GetHashCode()) % 3 == 0 ? 8 : 16 : 18, - Landmark = new[] { "红色", "绿色", "褐色", "蓝色", "紫色", "黄色", "橙色",null}[new Random().Next(8)] - }); + Landmark = new[] { "红色", "绿色", "褐色", "蓝色", "紫色", "黄色", "橙色", null }[new Random().Next(8)] + }; + stationStop.TicketChecks = TicketChecks.Where(x => x.Name == stationStop.Platform + "A" || x.Name == stationStop.Platform + "B").Select(x => x.Name).ToList(); + if (stationStop.TicketChecks.Count == 0) stationStop.TicketChecks = [TicketChecks[new Random().Next(TicketChecks.Count)].Name]; + StationStops.Add(stationStop); } } } @@ -442,10 +446,11 @@ public partial class StationManagementPageViewModel : ObservableObject StationStops.Clear(); foreach (StationStop t in stops) { - t.TicketChecks = [TicketChecks[new Random().Next(TicketChecks.Count)].Name]; t.Platform = Platforms[new Random().Next(Platforms.Count)].Name; t.Landmark = new[] { "红色", "绿色", "褐色", "蓝色", "紫色", "黄色", "橙色", null }[new Random().Next(8)]; t.Length = t.Number.StartsWith('G') || t.Number.StartsWith('D') || t.Number.StartsWith('C') ? Math.Abs(t.Number.GetHashCode()) % 3 == 0 ? 8 : 16 : 18; + t.TicketChecks = TicketChecks.Where(x => x.Name == t.Platform + "A" || x.Name == t.Platform + "B").Select(x => x.Name).ToList(); + if (t.TicketChecks.Count == 0) t.TicketChecks = [TicketChecks[new Random().Next(TicketChecks.Count)].Name]; StationStops.Add(t); } }