// Created with MonoDevelop
//
//    QuickStep: Acquire, view and identify spectra 
//    Copyright (C) 2021 Torsten Schache, Hiperscan GmbH Dresden, Germany
//
//    This program is free software: you can redistribute it and/or modify
//    it under the terms of the GNU General Public License as published by
//    the Free Software Foundation, either version 3 of the License, or
//    (at your option) any later version.
//
//    This program is distributed in the hope that it will be useful,
//    but WITHOUT ANY WARRANTY; without even the implied warranty of
//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//    GNU General Public License for more details.
//
//    You should have received a copy of the GNU General Public License
//    along with this program.  If not, see <http://www.gnu.org/licenses/>.

using System;
using System.IO;
using System.Reflection;
using Hiperscan.Common.I18n;
using Hiperscan.Unix;

namespace Hiperscan.Extensions.ApoIdent
{
    public partial class ApoIdentApplication
    {
        public void ShowPDF(string file_name)
        {
            string path = Path.Combine("Resources", "Pdfs");
            path = Locale.ResourceFileRelativeToAssembly(Assembly.GetExecutingAssembly(), path, file_name, false);

            Uri uri = new Uri("file://" + path.Replace("\\", "/"));
            Console.WriteLine("Open URI: " + uri);

            try
            {
                if (File.Exists(path) == false)
                    throw new Exception(String.Format(Catalog.GetString("Cannot find file '{0}'."), path));
                Process.OpenUri(uri);
            }
            catch (Exception ex)
            {
                string message = String.Format(Catalog.GetString("Cannot open ULR '{0}': {1}"),
                                          uri, ex.Message);
                    
                this.Update(ApoIdentApplicationState.ShowErrorDialogWithoutSerivceDialog, message, ex);
                       
            }
        }
    }
}
