Ejemplo n.º 1
0
        private async void LoadSchedule()
        {
            try
            {
                IsBusy = true;
                if (Stop.ID == null)
                {
                    Subtitle    = "No stop is selected.";
                    HasSchedule = false;
                }
                else
                {
                    Subtitle = null;
                    var retrievedSchedule = await DataSource.GetScheduleForStopAsync(Stop.ID, DataSourcePreference.All, TokenSource.Token);

                    if (retrievedSchedule.HasData)
                    {
                        Schedule = retrievedSchedule.Data;
                        DayGroups.Clear();
                        var groups = Schedule.GetScheduleGroups().ToArray();
                        foreach (var group in groups)
                        {
                            DayGroups.Add(new DayScheduleGroup(group));
                        }
                        //if (groups.Length > 0)
                        //    DayGroups.AddRange(groups);
                        HasSchedule = true;
                        var today       = DateTime.Today.DayOfWeek.ToServiceDay();
                        var todaysGroup = DayGroups.FirstOrDefault(dg => (dg.DayGroup & today) == today);
                        if (todaysGroup == null)
                        {
                            SelectedDayGroup = DayGroups[0];
                        }
                        else
                        {
                            SelectedDayGroup = todaysGroup;
                        }
                    }
                    //LoadSelectedSchedule();
                }
            }
            catch (OperationCanceledException)
            {
                Subtitle    = "Schedule retrieval was cancelled.";
                HasSchedule = false;
            }
            catch (Exception ex)
            {
                Subtitle    = "Error has occured: " + ex.Message;
                HasSchedule = false;
            }
            finally
            {
                IsBusy = false;
            }
        }
Ejemplo n.º 2
0
 public override IEnumerable <_1_1.Data.ServiceDay> GetScheduleGroups()
 {
     return(DayGroups.Select(d => (_1_1.Data.ServiceDay)((int)d)));
 }