InitializationContext.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using XUnity.AutoTranslator.Plugin.Core.Configuration;
  6. using XUnity.AutoTranslator.Plugin.Core.Extensions;
  7. using XUnity.AutoTranslator.Plugin.Core.Web;
  8. namespace XUnity.AutoTranslator.Plugin.Core.Endpoints
  9. {
  10. internal class InitializationContext : IInitializationContext
  11. {
  12. private HttpSecurity _security;
  13. internal InitializationContext(
  14. HttpSecurity httpSecurity,
  15. string sourceLanguage,
  16. string destinationLanguage )
  17. {
  18. _security = httpSecurity;
  19. SourceLanguage = sourceLanguage;
  20. DestinationLanguage = destinationLanguage;
  21. }
  22. /// <summary>
  23. /// Gets the source language.
  24. /// </summary>
  25. public string SourceLanguage { get; }
  26. /// <summary>
  27. /// Gets the destination language.
  28. /// </summary>
  29. public string DestinationLanguage { get; }
  30. public string PluginDirectory => Config.Current.DataPath;
  31. public void EnableSslFor( params string[] hosts )
  32. {
  33. _security.EnableSslFor( hosts );
  34. }
  35. public T GetOrCreateSetting<T>( string section, string key, T defaultValue )
  36. {
  37. return Config.Current.Preferences[ section ][ key ].GetOrDefault<T>( defaultValue );
  38. }
  39. public T GetOrCreateSetting<T>( string section, string key )
  40. {
  41. return Config.Current.Preferences[ section ][ key ].GetOrDefault<T>( default( T ) );
  42. }
  43. }
  44. }