2022-08-30 15:42:25 +02:00
|
|
|
|
using System.IO;
|
2021-11-07 19:42:59 +01:00
|
|
|
|
using System.Reflection;
|
|
|
|
|
using System.Text;
|
2022-08-30 15:42:25 +02:00
|
|
|
|
using Serilog;
|
2021-11-07 19:42:59 +01:00
|
|
|
|
|
|
|
|
|
namespace TINK.ViewModel
|
|
|
|
|
{
|
2022-09-06 16:08:19 +02:00
|
|
|
|
public static class ViewModelResourceHelper
|
|
|
|
|
{
|
|
|
|
|
/// <summary> Get ressource prefix depending on platform.</summary>
|
|
|
|
|
public static string RessourcePrefix
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
2021-11-07 19:42:59 +01:00
|
|
|
|
#if __IOS__
|
2022-09-06 16:08:19 +02:00
|
|
|
|
return "TINK.iOS.";
|
2021-11-07 19:42:59 +01:00
|
|
|
|
#endif
|
|
|
|
|
#if __ANDROID__
|
2022-09-06 16:08:19 +02:00
|
|
|
|
return "TINK.Droid.";
|
2021-11-07 19:42:59 +01:00
|
|
|
|
#endif
|
|
|
|
|
#if WINDOWS_UWP
|
|
|
|
|
return "TINK.WinPhone.";
|
|
|
|
|
#endif
|
2022-09-06 16:08:19 +02:00
|
|
|
|
}
|
|
|
|
|
}
|
2021-11-07 19:42:59 +01:00
|
|
|
|
|
2022-09-06 16:08:19 +02:00
|
|
|
|
/// <summary> Gets an an embedded html ressource.</summary>
|
|
|
|
|
/// <param name="resrouceName">Name of resource to get.</param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public static string GetSource(string resrouceName)
|
|
|
|
|
{
|
|
|
|
|
var l_oRessourceName = RessourcePrefix + resrouceName;
|
|
|
|
|
Log.Verbose($"Using this resource prefix {RessourcePrefix}.");
|
|
|
|
|
// note that the prefix includes the trailing period '.' that is required
|
|
|
|
|
var assembly = typeof(ViewModelResourceHelper).GetTypeInfo().Assembly;
|
|
|
|
|
var stream = assembly.GetManifestResourceStream(l_oRessourceName);
|
|
|
|
|
return stream != null
|
|
|
|
|
? (new StreamReader(stream, Encoding.UTF8)).ReadToEnd()
|
|
|
|
|
: string.Format("<!DOCTYPE html><html lang=\"de\"><body>An error occurred loading html- ressource {0}.</body>", l_oRessourceName);
|
|
|
|
|
}
|
|
|
|
|
}
|
2021-11-07 19:42:59 +01:00
|
|
|
|
}
|