public BlobDetailsViewModel(INavigation navigation, CloudBlob blob) : base(navigation)
 {
     Blob = blob;
     BlobFileExtension = System.IO.Path.GetExtension(blob.Name);
     BlobFileType      = MediaTypeMapper.GetFileTypeFromExtension(BlobFileExtension);
 }
        async Task ExecuteShareBlobCommandAsync()
        {
            if (IsBusy)
            {
                return;
            }

            App.Logger.Track(AppEvent.ShareBlob.ToString());


            if (HasBlobBeenSaved)
            {
                try
                {
#if __ANDROID__
                    string          mimeType = MediaTypeMapper.GetMimeType(BlobFileExtension);
                    Android.Net.Uri uri      = Android.Net.Uri.Parse("file:///" + GetBlobFilePath());
                    Intent          intent   = new Intent(Intent.ActionView);
                    intent.SetDataAndType(uri, mimeType);
                    intent.SetFlags(ActivityFlags.ClearWhenTaskReset | ActivityFlags.NewTask);
                    try
                    {
                        Xamarin.Forms.Forms.Context.StartActivity(intent);
                    }
                    catch (Exception ex)
                    {
                        MessagingService.Current.SendMessage <MessagingServiceAlert>(MessageKeys.Message, new MessagingServiceAlert
                        {
                            Title   = "Unable to Share",
                            Message = "No applications available to open files of type " + BlobFileExtension,
                            Cancel  = "OK"
                        });
                        throw ex;
                    }
#elif __IOS__
                    var extensionClassRef = new NSString(UTType.TagClassFilenameExtension);
                    var mimeTypeClassRef  = new NSString(UTType.TagClassMIMEType);

                    var uti = NativeTools.UTTypeCreatePreferredIdentifierForTag(extensionClassRef.Handle, new NSString(BlobFileExtension).Handle, IntPtr.Zero);
                    //TODO: open file based off of type
                    var fi   = NSData.FromFile(GetBlobFilePath());
                    var item = NSObject.FromObject(fi);


                    var activityItems = new[] { item };



                    var activityController = new UIActivityViewController(activityItems, null);

                    var topController = UIApplication.SharedApplication.KeyWindow.RootViewController;

                    while (topController.PresentedViewController != null)
                    {
                        topController = topController.PresentedViewController;
                    }

                    topController.PresentViewController(activityController, true, () => { });
#endif
                }
                catch (Exception ex)
                {
                    App.Logger.Report(ex, Severity.Error);
                }
            }
        }