Exemple #1
0
        private async Task FetchLatestEvents()
        {
            if (IsBusy)
            {
                return;
            }
            IsBusy   = true;
            HasError = false;
            Error    = null;
            meetings.Clear();
            int year   = (selectedYear == "无" || selectedYear == null) ? -1 : int.Parse(selectedYear);
            int month  = (selectedMonth == "无" || selectedMonth == null) ? -1 : int.Parse(selectedMonth);
            int day    = (selectedDay == "无" || selectedDay == null) ? -1 : int.Parse(selectedDay);
            var result = await eventService.FetchMeetings(year, month, day);

            IsBusy = false;
            if (result.HasError)
            {
                HasError = true;
                Error    = result.Error;
            }
            else
            {
                var groups = result.Model.GroupBy(i => i.MeetingCreatedAt.ToString("yyyy年MM月"))
                             .Select(i => {
                    var group = new PageTypeGroup(i.Key, "");
                    group.AddRange(i);
                    return(group);
                }).ToList();
                foreach (var item in groups)
                {
                    meetings.Add(item);
                }
            }
        }
 public Task <Result <IList <PageTypeGroup> > > FetchLatestEvent()
 {
     return(Task.Run(() =>
     {
         var result = new Result <IList <PageTypeGroup> >();
         var meetings = SimpleData.Instance.GetMeetings();
         result.Model = meetings
                        .GroupBy(i => i.Time.ToString("yyyy年MM月"))
                        .Select(i =>
         {
             var group = new PageTypeGroup(i.Key, "");
             group.AddRange(i);
             return group;
         }).ToList();
         return result;
     }));
 }
Exemple #3
0
        internal async Task <bool> SetMeetingReaded(Meeting meeting)
        {
            if (IsBusy)
            {
                return(false);
            }
            IsBusy   = true;
            HasError = false;
            Error    = null;
            Result <bool> result = await eventService.SetMeetingReaded(meeting);

            if (result.HasError)
            {
                HasError = true;
                Error    = result.Error;
            }
            else
            {
                if (result.Model)
                {
                    meeting.IsReaded = true;
                    PageTypeGroup selectedGroup = null;
                    int           index         = 0;
                    foreach (var group in meetings)
                    {
                        if (group.Contains(meeting))
                        {
                            selectedGroup = group;
                            break;
                        }
                        index++;
                    }
                    meetings.RemoveAt(index);
                    meetings.Insert(index, selectedGroup);
                }
            }
            IsBusy = false;
            return(result.Model);
        }