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; })); }
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); }