internal void HandleAttachment(FeedbackAttachmentVM attachment)
 {
     if (attachment.MarkedAsDeleted)
     {
         if (!attachment.IsNewAttachment)
         {
             this.Attachments.Remove(attachment);
         }
     }
     else if (attachment.IsNewAttachment)
     {
         this.Attachments.Add(attachment);
     }
 }
예제 #2
0
        internal static async Task <FeedbackAttachmentVM> LoadFromStorageAsync(string filename)
        {
            var helper        = HockeyClient.Current.AsInternal().PlatformHelper;
            var imageFileName = filename.Substring(filename.IndexOf(AttachmentNameSeparator) + 1).Replace(AttachmentFileExt, "");

            var fbAttachVM = new FeedbackAttachmentVM();

            using (var stream = (await helper.GetStreamAsync(filename, ConstantsUniversal.FeedbackAttachmentTmpDir)).AsRandomAccessStream())
            {
                var buffer = WindowsRuntimeBuffer.Create((int)stream.Size);
                await stream.ReadAsync(buffer, (uint)stream.Size, InputStreamOptions.None);

                fbAttachVM.ImageBuffer  = buffer;
                fbAttachVM.InitialImage = await buffer.AsBitmapImageAsync();

                fbAttachVM.FeedbackAttachment.FileName = imageFileName;
            }
            return(fbAttachVM);
        }
예제 #3
0
        internal static async Task <FeedbackMessageVM> LoadFeedbackMessageVMFromStorageAsync()
        {
            var helper     = HockeyClient.Current.AsInternal().PlatformHelper;
            var feedbackVM = new FeedbackMessageVM();

            if (await helper.FileExistsAsync(ConstantsUniversal.OpenFeedbackMessageFile, ConstantsUniversal.FeedbackAttachmentTmpDir))
            {
                DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(FeedbackMessage));
                using (var stream = await helper.GetStreamAsync(ConstantsUniversal.OpenFeedbackMessageFile, ConstantsUniversal.FeedbackAttachmentTmpDir))
                {
                    feedbackVM.FeedbackMessage = serializer.ReadObject(stream) as FeedbackMessage;
                }
                var files = await helper.GetFileNamesAsync(ConstantsUniversal.FeedbackAttachmentTmpDir, "*" + FeedbackAttachmentVM.AttachmentFileExt);

                foreach (var filename in files.ToList().OrderBy(f => f))
                {
                    feedbackVM.Attachments.Add(await FeedbackAttachmentVM.LoadFromStorageAsync(filename));
                }
            }
            return(feedbackVM);
        }
 internal void HandleAttachment(FeedbackAttachmentVM attachment)
 {
     if (attachment.MarkedAsDeleted)
     {
         if(!attachment.IsNewAttachment) {
             this.Attachments.Remove(attachment);
         }
     }
     else if (attachment.IsNewAttachment)  {
         this.Attachments.Add(attachment);
     }
 }
        internal static async Task<FeedbackAttachmentVM> LoadFromStorageAsync(string filename)
        {
            var helper = HockeyClient.Current.AsInternal().PlatformHelper;
            var imageFileName = filename.Substring(filename.IndexOf(AttachmentNameSeparator) + 1).Replace(AttachmentFileExt, "");

            var fbAttachVM = new FeedbackAttachmentVM();

            using (var stream = (await helper.GetStreamAsync(filename, ConstantsUniversal.FeedbackAttachmentTmpDir)).AsRandomAccessStream())
            {
                var buffer = WindowsRuntimeBuffer.Create((int)stream.Size);
                await stream.ReadAsync(buffer, (uint)stream.Size, InputStreamOptions.None);
                fbAttachVM.ImageBuffer = buffer;
                fbAttachVM.InitialImage = await buffer.AsBitmapImageAsync();
                fbAttachVM.FeedbackAttachment.FileName = imageFileName; 
            }
            return fbAttachVM;
        }
예제 #6
0
        internal async Task<object> GetDataContextNavigatedToImagePage(NavigationEventArgs args, Canvas canvas, Image showArea)
        {
            await InitializeIfNeeded();
            dynamic pars = args.Parameter as DynamicNavigationParameters ?? new DynamicNavigationParameters();

            FeedbackAttachmentVM attachVM = pars.Attachment; //when called from Formpage
            if (attachVM == null) // called from filePickerResume
            {
                attachVM = new FeedbackAttachmentVM();
                attachVM.IsNewAttachment = true;
                var file = (pars.ImageFile as StorageFile);
                attachVM.FeedbackAttachment.FileName = file.Name;
                var img = await file.GetBitmapImageAsync();
                attachVM.InitialImage = img;
            }

            attachVM.Canvas = canvas;

            if (attachVM.IsNotReadOnly)
            {
                canvas.Children.Clear();
                canvas.Background = attachVM.InitialImage.AsImageBrush();
            }
            
            attachVM.OrientationChanged(canvas, showArea);

            return attachVM;
        }