internal void UpdatePushes(List <Push> pushes) { var pushViewModels = PushViewModel.ToViewModels(pushes); if (AllPushCollection.Count > pushes.Count) { AllPushCollection.ResetTo(pushViewModels); } else { AllPushCollection.AddRange(pushViewModels.Skip(AllPushCollection.Count)); } }
static IEnumerable <PushViewModel> toViewModelsReverse(IEnumerable <Push> pushes) { // push from latest to oldest // guesstime from now to oldest var cultureInfo = CultureInfo.GetCultureInfo("zh-TW"); int currYear = DateTime.Now.Year; DateTime latestDateTime = DateTime.Now; foreach (var item in pushes.Reverse()) { var viewModel = new PushViewModel(item); DateTime guessDT; if (DateTime.TryParseExact($"{currYear}/{item.date} {item.time}", "yyyy/MM/dd HH:mm", cultureInfo, DateTimeStyles.AssumeLocal, out guessDT)) { if (guessDT > latestDateTime) { guessDT = guessDT.AddYears(-1); } latestDateTime = guessDT; viewModel.GuessDateTime = guessDT; } yield return(viewModel); } }
public PushClickedEventArgs(PushViewModel push) { Push = push; }
public void OnPushDoubleClicked(PushViewModel push) => PushDoubleClicked?.Invoke(this, new PushClickedEventArgs(push));