private void SetCommands() { this.ShowImageCommand = new RelayCommand(() => { dynamic pars = new DynamicNavigationParameters(); pars.Attachment = this; (Window.Current.Content as Frame).Navigate(typeof(FeedbackImagePage), pars); }); SaveImageCommand = new RelayCommand(async () => { ImageBuffer = await Canvas.SaveAsPngIntoBufferAsync(); InitialImage = await ImageBuffer.AsBitmapImageAsync(); (Window.Current.Content as Frame).Navigate(typeof(FeedbackFormPage), this); }); DeleteImageCommand = new RelayCommand(() => { MarkedAsDeleted = true; (Window.Current.Content as Frame).Navigate(typeof(FeedbackFormPage), this); }); ResetImageCommand = new RelayCommand(() => { Canvas.Children.Clear(); Canvas.Background = InitialImage.AsImageBrush(); }); CloseImageCommand = new RelayCommand(() => { (Window.Current.Content as Frame).GoBack(); }); }
private void SetCommands() { Frame rootFrame = (Window.Current.Content as Frame); CancelCommand = new RelayCommand(() => { rootFrame.GoBack(); }); SendCommand = new RelayCommand(async () => { bool success = true; if (await ValidateInputAsync()) { if(NetworkInterface.GetIsNetworkAvailable()) { this.IsBusy = true; try { IFeedbackMessage sentMessage = await this.SendFeedbackAsync(); await FeedbackManager.Current.ClearMessageCacheAsync(); await AfterSendActionAsync(sentMessage); } catch (WebException e) { HockeyClient.Current.AsInternal().HandleInternalUnhandledException(e); success = false; } finally { this.IsBusy = false; } if (!success) { await new MessageDialog(LocalizedStrings.LocalizedResources.FeedbackSendError).ShowAsync(); } } else { await new MessageDialog(LocalizedStrings.LocalizedResources.FeedbackNoInternet).ShowAsync(); } } }); AttachImgCommand = new RelayCommand(() => { PickPhoto(); }); EditAttachmentCommand = new RelayCommand((attachVM) => { var vm = attachVM as FeedbackAttachmentVM; vm.IsNewAttachment = false; dynamic pars = new DynamicNavigationParameters(); pars.Attachment = vm; rootFrame.Navigate(this.FeedbackImagePageType, pars); }); }
public void SetCommands() { RemoveAttachmentCommand = new RelayCommand(() => { if (this.FeedbackMessageVM != null) { this.FeedbackMessageVM.Attachments.Remove(this); } }); OpenAttachmentCommand = new RelayCommand(async () => { await OpenAttachmentAsync(); }); }
public FeedbackFlyoutVM() { RefreshCommand = new RelayCommand(() => { this.IsBusy = true; var tasks = FeedbackThreadList.Where(t => !t.FeedbackThread.IsNewThread) .Select(t => FeedbackManager.Current.RefreshFeedbackThreadVMAsync(SelectedFeedbackThread)); Task.WaitAll(tasks.ToArray(),20); this.IsBusy = false; }); AddThreadCommand = new RelayCommand(() => { var threadVM = new FeedbackThreadVM(); this.FeedbackThreadList.Add(threadVM); FeedbackManager.Current.AddFeedbackThread(threadVM); this.SelectedFeedbackThread = threadVM; }); CloseThreadCommand = new RelayCommand(async () => { var msg = this.SelectedFeedbackThread.IsNewThread ? LocalizedStrings.LocalizedResources.CloseNewThreadQuestion : LocalizedStrings.LocalizedResources.CloseActiveThreadQuestion; var dialog = new MessageDialog(msg); dialog.Commands.Add(new UICommand() { Id = true, Label = LocalizedStrings.LocalizedResources.Yes }); dialog.Commands.Add(new UICommand() { Id = false, Label = LocalizedStrings.LocalizedResources.No }); var result = await dialog.ShowAsync(); FeedbackFlyoutVM.ShowFlyout(); if ((bool)result.Id) { if (this.SelectedFeedbackThread.IsNewThread) { FeedbackManager.Current.SaveFeedbackThreadTokens(); } this.FeedbackThreadList.Remove(this.SelectedFeedbackThread); if (!this.FeedbackThreadList.Any()) { this.FeedbackThreadList.Add(new FeedbackThreadVM()); } this.SelectedFeedbackThread = this.FeedbackThreadList.First(); } }); }
private void SetCommands() { AddAttachmentCommand = new RelayCommand(async () => { var picker = new FileOpenPicker(); picker.ViewMode = PickerViewMode.List; picker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary; picker.FileTypeFilter.Add("*"); var files = await picker.PickMultipleFilesAsync(); foreach (var file in files) { byte[] bytes = null; using (var stream = await file.OpenReadAsync()) { IBuffer buffer = WindowsRuntimeBuffer.Create((int)stream.Size); await stream.ReadAsync(buffer, (uint)stream.Size, InputStreamOptions.None); bytes = buffer.ToArray(); } var attach = new FeedbackAttachment(file.Name, bytes, file.ContentType); this.Attachments.Add(new FeedbackAttachmentVM(attach) { FeedbackMessageVM = this }); } }); OpenAttachmentCommand = new RelayCommand(async (o) => { await ((FeedbackAttachmentVM)o).OpenAttachmentAsync(); }); SendMessageCommand = new RelayCommand(async (o) => { bool success = true; if (await ValidateInputAsync()) { if (NetworkInterface.GetIsNetworkAvailable()) { this.IsBusy = true; try { IFeedbackMessage sentMessage = await this.SendFeedbackAsync(); this.FeedbackThreadVM.HandleSentMessage(sentMessage); } catch (Exception e) { HockeyClient.Current.AsInternal().HandleInternalUnhandledException(e); success = false; } finally { this.IsBusy = false; } if (!success) { await new MessageDialog(LocalizedStrings.LocalizedResources.FeedbackSendError).ShowAsync(); FeedbackFlyoutVM.ShowFlyout(); } } else { await new MessageDialog(LocalizedStrings.LocalizedResources.FeedbackNoInternet).ShowAsync(); FeedbackFlyoutVM.ShowFlyout(); } } else { FeedbackFlyoutVM.ShowFlyout(); } }); CancelMessageCommand = new RelayCommand((o) => { this.Message = null; this.Attachments.Clear(); }); if (!String.IsNullOrWhiteSpace(this.Email)) { Task t = this.ReLoadGravatar(); } else { this.Gravatar = GravatarHelper.DefaultGravatar; } }