Procházet zdrojové kódy

Fixed MobileDocumentSource when Data is not populated.

Kenric Nugteren před 1 týdnem
rodič
revize
f17bcc8c83

+ 20 - 10
InABox.Avalonia/MobileDocument/MobileDocumentSource.cs

@@ -1,4 +1,5 @@
 using Avalonia.Controls;
+using InABox.Avalonia.Dialogs;
 using InABox.Avalonia.Platform;
 
 namespace InABox.Avalonia
@@ -41,16 +42,25 @@ namespace InABox.Avalonia
                 try
                 {
                     var file = await Capture(window);
-                    if (file?.Data != null)
+                    if(file is not null)
                     {
-                        result.FileName = Path.GetFileName(file.FileName);
-                        result.Data = file.Data; 
-                        //file.OriginalFilename ?? file.Path);
-                        //await using (var stream = await file.OpenReadAsync())
-                        //{
-                        //    BinaryReader br = new BinaryReader(file.Stream);
-                        //    result.Data = br.ReadBytes((int)file.Stream.Length);
-                        //}
+                        if(file.Data is null)
+                        {
+                            result.FileName = file.FileName;
+                            var bytes = await File.ReadAllBytesAsync(file.FileName);
+                            result.Data = bytes;
+                        }
+                        else
+                        {
+                            result.FileName = Path.GetFileName(file.FileName);
+                            result.Data = file.Data;
+                            //file.OriginalFilename ?? file.Path);
+                            //await using (var stream = await file.OpenReadAsync())
+                            //{
+                            //    BinaryReader br = new BinaryReader(file.Stream);
+                            //    result.Data = br.ReadBytes((int)file.Stream.Length);
+                            //}
+                        }
                     }
                     ApplyOptions(result);
                 }
@@ -67,7 +77,7 @@ namespace InABox.Avalonia
                 catch (Exception ex)
                 {
                     MobileLogging.Log(ex, "Capture(ERR)");
-                    MobileDialog.ShowMessage($"Oops! Something went wrong!\n{ex.Message}");
+                    await MessageDialog.ShowMessage($"Oops! Something went wrong!\n{ex.Message}");
                 }
             }
             return result;