Ejemplo n.º 1
0
        /// ************************************************************************************************
        /// <summary>
        /// Build departureDataSourse from departureResponse for now
        /// </summary>
        /// <param name="deserializedDepartures"></param>
        /// <param name="preparedDepartureCollection"></param>
        /// <returns>Hash code for departure response</returns>
        private void BuildDepartureDataSource(DateTime now, DeserializedDepartures[] deserializedDepartures, ObservableCollection <PreparedDeparture> preparedDepartures)
        {
            preparedDepartures.Clear();

            if (connectionStatus == ConnectionState.NOT_CONNECTED)
            {
                AddHeaderToDepartureDataSource(preparedDepartures, empty: true);
                preparedDepartures.Add(SetServiceMessage(Common.WarnMessageType[MessageType.NoConnection], Common.Messages[MessageType.NoConnection]));
            }
            else
            {
                if (connectionStatus == ConnectionState.JUST_STARTED && (deserializedDepartures == null || (deserializedDepartures != null && deserializedDepartures.Length == 0)))
                {
                    AddHeaderToDepartureDataSource(preparedDepartures, empty: true);
                    preparedDepartures.Add(SetServiceMessage(Common.WarnMessageType[MessageType.Waiting], Common.Messages[MessageType.Waiting]));
                }
                else
                {
                    AddHeaderToDepartureDataSource(preparedDepartures, empty: false);

                    if (connectionStatus == ConnectionState.LONG_DISCONNECT)
                    {
                        preparedDepartures.Add(SetServiceMessage(Common.WarnMessageType[MessageType.NoConnection], Common.Messages[MessageType.NoConnection]));
                        preparedDepartures.Add(SetServiceMessage(Common.WarnMessageType[MessageType.Warning], Common.Messages[MessageType.Warning]));
                    }
                    if (deserializedDepartures != null)
                    {
                        foreach (DeserializedDepartures dp in deserializedDepartures)
                        {
                            // Don't include cancelled lines into data source for visualization
                            if (!dp.cancelled)
                            {
                                Common.GetTimes(now, dp.departureTime, dp.delay, out DateTime actualTime, out _, out TimeSpan difference);

                                PreparedDeparture fd = new PreparedDeparture
                                {
                                    Product             = dp.product,
                                    Label               = dp.label,
                                    Destination         = dp.destination,
                                    Platform            = dp.platform,
                                    Station             = StationName,
                                    LineBackgroundColor = dp.lineBackgroundColor,
                                    MinutesToDeparture  = BuildMinutesToDeparture(difference),
                                    DepartureTime       = string.Format(CultureInfo.InvariantCulture, "{0:D2}:{1:D2}", actualTime.Hour, actualTime.Minute),
                                    FontSize            = TableFontSize.ToString(CultureInfo.InvariantCulture),
                                    Sev        = dp.sev,
                                    Delay      = dp.delay.ToString(),
                                    FontFamily = TableFontFamily
                                };

                                preparedDepartures.Add(fd);
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        /// ************************************************************************************************
        /// <summary>
        /// Sets Service Message as PreparedDeparture
        /// </summary>
        /// <param name="type">Type of the Service Message</param>
        /// <param name="message">Service message</param>
        /// <returns>Prepared departure with Service Message</returns>
        private PreparedDeparture SetServiceMessage(string type, string message)
        {
            PreparedDeparture fd = new PreparedDeparture
            {
                DepartureTime      = "",
                Label              = "",
                MinutesToDeparture = "",
                Product            = type,
                Destination        = message,
                FontSize           = TableFontSize.ToString(CultureInfo.InvariantCulture)
            };

            return(fd);
        }
Ejemplo n.º 3
0
        /// ************************************************************************************************
        /// <summary>
        /// Adds header to the departure data source
        /// </summary>
        /// <param name="preparedDepartures"></param>
        /// <param name="empty"></param>
        private void AddHeaderToDepartureDataSource(ObservableCollection <PreparedDeparture> preparedDepartures, bool empty = false)
        {
            PreparedDeparture hd = new PreparedDeparture
            {
                Product             = Common.HeaderProduct,
                Label               = empty ? "" : Common.HeaderTitles["Line"],
                Destination         = empty ? "" : Common.HeaderTitles["Destination"],
                Platform            = empty ? "" : (departuresModel.SGleisColumnPresent ? Common.HeaderTitles["PlatformS"] : (departuresModel.GleisColumnPresent ? Common.HeaderTitles["PlatformT"] : "")),
                Station             = StationName,
                LineBackgroundColor = "",
                MinutesToDeparture  = empty ? "" : Common.HeaderTitles["TimeToDeparture"],
                DepartureTime       = empty ? "" : Common.HeaderTitles["DepartureTime"],
                FontSize            = empty ? "1" : HeaderFontSize.ToString(CultureInfo.InvariantCulture),
                Sev        = false,
                Delay      = "",
                FontFamily = HeaderFontFamily
            };

            preparedDepartures.Add(hd);
        }