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)); } }
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)); }