private async void GetActivitiesButton_OnClick(object sender, RoutedEventArgs e)
        {
            TimelinesResource timelines = await ExecuteAsync((client, cancellationToken) => client.GetTimelinesAsync(cancellationToken));

            if (timelines == null)
            {
                return;
            }
            if (timelines.Timelines == null || timelines.Timelines.Length == 0)
            {
                return;
            }
            var window = new TimelinePickerWindow
            {
                Owner = this,
                WindowStartupLocation = WindowStartupLocation.CenterOwner,
                Timelines             = timelines.Timelines,
                SelectedTimeline      = timelines.Timelines.SingleOrDefault(t => t.TimelineId == SelectedTimelineId) ?? timelines.Timelines.FirstOrDefault(),
                FromTime      = DateTime.Today,
                ToTime        = DateTime.Today,
                SizeToContent = SizeToContent.WidthAndHeight
            };

            if (window.ShowDialog() == true && window.FromTime != null && window.ToTime != null)
            {
                SelectedTimelineId = window.SelectedTimeline.TimelineId;
                TimelineResource timeline = await ExecuteAsync((client, cancellationToken) => client.GetActivitiesByTimelineIdAsync(
                                                                   SelectedTimelineId, window.FromTime.Value, window.ToTime.Value.AddDays(1), cancellationToken));

                RefreshUpdatedActivitiesUrl(timeline);
            }
        }
        private async void SendActivityUpdatesButton_OnClick(object sender, RoutedEventArgs e)
        {
            TimelinesResource timelines = await ExecuteAsync((client, cancellationToken) => client.GetTimelinesAsync(cancellationToken));

            if (timelines == null || timelines.Timelines == null || timelines.Timelines.Length == 0)
            {
                return;
            }

            var window = new SendActivityUpdatesWindow
            {
                Owner = this,
                WindowStartupLocation = WindowStartupLocation.CenterOwner,
                Timelines             = timelines.Timelines,
                SelectedTimeline      = timelines.Timelines.SingleOrDefault(t => t.TimelineId == SelectedTimelineId) ?? timelines.Timelines.FirstOrDefault(),
                SizeToContent         = SizeToContent.WidthAndHeight
            };

            if (window.ShowDialog() == true)
            {
                SelectedTimelineId = window.SelectedTimeline.TimelineId;
                var activityUpdates = new ActivityUpdatesResource
                {
                    ClientEnvironment   = window.SelectedTimeline.ClientEnvironment,
                    TimelineKey         = window.SelectedTimeline.TimelineKey,
                    Activities          = window.Activities,
                    DeletedActivityIds  = window.DeletedActivityIds,
                    GroupLists          = window.GroupLists,
                    DeletedGroupListIds = window.DeletedGroupListIds,
                    Groups          = window.Groups,
                    DeletedGroupIds = window.DeletedGroupIds
                };
                await ExecuteAsync((client, cancellationToken) => client.SendActivityUpdates(SelectedTimelineId, activityUpdates, cancellationToken));
            }
        }
Exemple #3
0
        public async Task <TimelineResource> GetActivitiesByTimelineIdAsync(string timelineId, DateTime fromTime, DateTime toTime, CancellationToken cancellationToken)
        {
            TimelinesResource timelines = await GetTimelinesAsync(cancellationToken);

            var timeline = timelines == null || timelines.Timelines == null
                ? null
                : timelines.Timelines.SingleOrDefault(tr => tr.TimelineId == timelineId);
            string activitiesUrl = timeline == null ? null : timeline.Links.Url(Relations.Activities);

            if (activitiesUrl == null)
            {
                return(null);
            }
            return(await GetActivitiesByUrlAsync(activitiesUrl, fromTime, toTime, cancellationToken));
        }
Exemple #4
0
        public async Task <UpdateStateResource> SendActivityUpdates(string timelineId, ActivityUpdatesResource activityUpdates, CancellationToken cancellationToken)
        {
            TimelinesResource timelines = await GetTimelinesAsync(cancellationToken);

            var timeline = timelines == null || timelines.Timelines == null
                ? null
                : timelines.Timelines.SingleOrDefault(tr => tr.TimelineId == timelineId);

            if (timeline == null)
            {
                throw new InvalidOperationException("Cannot update activities. Timeline not found.");
            }
            string activityUpdatesUrl = timeline.Links.Url(Relations.ActivityUpdates);

            if (activityUpdatesUrl == null)
            {
                throw new InvalidOperationException("Cannot update activities. Activity updates url not found.");
            }
            return(await SendAsync <UpdateStateResource>(activityUpdatesUrl, HttpMethod.Post, activityUpdates, cancellationToken));
        }