public async Task FillItems(SampleDataGroup group) { var groupKind = group.GroupKind; try { var localMessages = await localStorageService.LoadGroup(groupKind); group.Items.Clear(); foreach (var message in localMessages) { group.Items.Add(CreateItem(message, group)); } var networkMessages = await GetClientGroupMessages(groupKind); group.Items.Clear(); foreach (var message in networkMessages) { group.Items.Add(CreateItem(message, group)); } messagesByGroupKind[groupKind] = networkMessages; if (networkMessages != null) { group.Items.Clear(); networkMessages .Select(x => CreateItem(x, group)) .ForEach(group.Items.Add); } } catch { // todo: show message that working offline } }