예제 #1
0
        private void ActivityOnResulted(Utilities.Activity activity, object result)
        {
            if (!System.Windows.Application.Current.CheckAccess())
            {
                System.Windows.Application.Current.Dispatcher.BeginInvoke(
                    (Action <Utilities.Activity, object>)ActivityOnResulted,
                    DispatcherPriority.ApplicationIdle,
                    activity,
                    result);
                return;
            }
            var main = ((MainWindow)System.Windows.Application.Current.MainWindow);
            FrameworkElement entity;
            var func = result as Func <FrameworkElement>;

            if (func != null)
            {
                entity = func.Invoke();
            }
            else
            {
                entity = result as FrameworkElement ?? new ContentPresenter
                {
                    Content     = result,
                    DataContext = result
                };
            }
            main.Results.Items.Add(entity);
            //main.Navigator.Children.Add(entity);
        }
예제 #2
0
        private void ActivityOnResulted(Utilities.Activity activity, object result, DependencyObject sender)
        {
            if (!System.Windows.Application.Current.CheckAccess())
            {
                System.Windows.Application.Current.Dispatcher.BeginInvoke(
                    (Action <Utilities.Activity, object, DependencyObject>)ActivityOnResulted,
                    DispatcherPriority.ApplicationIdle,
                    activity,
                    result,
                    sender);
                return;
            }

            var results = (ObservableCollection <object>)sender.GetValue(ResultsProperty);

            if (results == null)
            {
                results = new ObservableCollection <object>();
                sender.SetValue(ResultsProperty, results);
            }
            results.Add(result);

            /*
             * FrameworkElement entity;
             * var func = result as Func<FrameworkElement>;
             * if (func != null)
             * {
             *  entity = func.Invoke();
             * }
             * else
             * {
             *  entity = result as FrameworkElement ?? new ContentPresenter
             *  {
             *      Content = result,
             *      DataContext = result
             *  };
             * }
             */
            //Results.Items.Add(entity);
            //main.Navigator.Children.Add(entity);
        }
예제 #3
0
 private void AppOnActivityCompleted(Utilities.Activity activity)
 {
     // update list of recent activites
     Dispatcher.BeginInvoke((Action)(() =>
     {
         using (var data = new DatalayerDataContext())
         {
             var recent = data.ActivityQueues
                          .Where(x => x.TimeStarted >= App.Start && x.TimeCompleted != null &&
                                 x.TimeAdded >= App.Start)
                          .ToList();
             var activities =
                 recent.Select(x => App.Activities.First(y => y.Entity.Id == x.ActivityId))
                 .ToList();
             var oldItems =
                 Recent.Children.OfType <ContentPresenter>()
                 .Where(x => !activities.Contains(x.Content))
                 .ToList();
             var newItems = activities.Where(x => !Recent.Children
                                             .OfType <ContentPresenter>()
                                             .Select(y => y.Content).Contains(x))
                            .ToList();
             foreach (var old in oldItems)
             {
                 Recent.Children.Remove(old);
             }
             foreach (var newItem in newItems)
             {
                 Recent.Children.Add(new ContentPresenter
                 {
                     Content = newItem,
                     Margin = new Thickness(5)
                 });
             }
         }
     }), DispatcherPriority.ApplicationIdle);
 }