Advertisement
Guest User

Untitled

a guest
Apr 13th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.43 KB | None | 0 0
  1. using bdoEmu.Common;
  2. using bdoEmu.Common.Extensions;
  3. using bdoEmu.Common.Models;
  4. using bdoEmu.Game.Configs;
  5. using bdoEmu.Game.Messages;
  6. using bdoEmu.Game.Models.Mappings;
  7. using bdoEmu.Game.Network;
  8. using FluentNHibernate.Cfg;
  9. using FluentNHibernate.Cfg.Db;
  10. using NHibernate;
  11. using NHibernate.Tool.hbm2ddl;
  12. using NLog;
  13. using System;
  14. using System.Diagnostics;
  15. using System.Text;
  16. using System.Threading.Tasks;
  17.  
  18. namespace bdoEmu.Game.Processors
  19. {
  20. public class AuthProcessor : IProcessor
  21. {
  22. /// <summary>
  23. /// Logger for this class
  24. /// </summary>
  25. private static readonly Logger Log = LogManager.GetCurrentClassLogger();
  26.  
  27. /// <summary>
  28. /// Login server dao factory
  29. /// </summary>
  30. private static ISessionFactory _lsDbFactory;
  31.  
  32. /// <summary>
  33. /// Initilize service action
  34. /// </summary>
  35. /// <param name="previousInstanceContext"></param>
  36. public void OnLoad(object previousInstanceContext)
  37. {
  38. var config = Fluently.Configure().Database(MySQLConfiguration.Standard.ConnectionString(cs => cs.Is(
  39. $"Server={DatabaseConfig.DB_HOST};" +
  40. $"Database={DatabaseConfig.LOGINSERVER_DB_NAME};" +
  41. $"User={DatabaseConfig.DB_USER}" +
  42. $";Password={DatabaseConfig.DB_PASS};" +
  43. "CharSet=utf8"))).Mappings(m =>
  44. {
  45. m.FluentMappings.AddFromNamespaceOf<AccountsMap>();
  46. });
  47.  
  48. config.ExposeConfiguration(x =>
  49. {
  50. x.SetInterceptor(new SqlStatementInterceptor());
  51. });
  52.  
  53. var export = new SchemaUpdate(config.BuildConfiguration());
  54.  
  55. export.Execute(false, true);
  56.  
  57. _lsDbFactory = config.BuildSessionFactory();
  58. }
  59.  
  60. public void AuthProcess(Connection connection, string accountId)
  61. {
  62. Log.Fatal("CONTENTS OF \"accountId\" = {0}", accountId);
  63. using (var db = _lsDbFactory.OpenSession())
  64. {
  65. int intToString = Convert.ToInt32(accountId);
  66. Log.Fatal("CONTENTS OF \"intToString\" = {0}", intToString);
  67. var model = db.QueryOver<Accounts>()
  68. .Where(p => p.AccountName == "test").Take(1).SingleOrDefault(); //CANT USE ID,NEED TO USE ACCOUNTID
  69. if (model == null)
  70. {
  71. connection.Disconnect($"AuthProcessor could not find the following account by ID: {accountId}");
  72. return;
  73. }
  74.  
  75. connection.Account = model; // set the account for the current connection.
  76.  
  77. connection.Send(new SMGetContentServiceInfo());
  78. connection.Send(new SMChargeUser());
  79.  
  80. Core.Act(s => s.LobbyProcessor.GetCharacterList(connection));
  81. }
  82. }
  83.  
  84. public object OnUnload()
  85. {
  86. return null;
  87. }
  88.  
  89. public class SqlStatementInterceptor : EmptyInterceptor
  90. {
  91. public override NHibernate.SqlCommand.SqlString OnPrepareStatement(NHibernate.SqlCommand.SqlString sql)
  92. {
  93. Log.Warn(sql.ToString());
  94. return sql;
  95. }
  96. }
  97. }
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement