Beispiel #1
0
        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));
            }
        }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
0
 public PushClickedEventArgs(PushViewModel push)
 {
     Push = push;
 }
Beispiel #4
0
 public void OnPushDoubleClicked(PushViewModel push) => PushDoubleClicked?.Invoke(this, new PushClickedEventArgs(push));