PageRenderTime 38ms CodeModel.GetById 12ms RepoModel.GetById 1ms app.codeStats 0ms

/TechEdWebApiDemo/Global.asax.cs

https://github.com/garchibald/TechEdWebApiDemo
C# | 97 lines | 74 code | 17 blank | 6 comment | 3 complexity | 6ca2a44c5fe358fb8252ac86bd412cb8 MD5 | raw file
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data.Entity;
  4. using System.Data.SqlClient;
  5. using System.IO;
  6. using System.Linq;
  7. using System.Web;
  8. using System.Web.Http;
  9. using System.Web.Mvc;
  10. using System.Web.Optimization;
  11. using System.Web.Routing;
  12. using TechEdWebApiDemo.App_Start;
  13. using TechEdWebApiDemo.DAL;
  14. namespace TechEdWebApiDemo
  15. {
  16. // Note: For instructions on enabling IIS6 or IIS7 classic mode,
  17. // visit http://go.microsoft.com/?LinkId=9394801
  18. public class WebApiApplication : System.Web.HttpApplication
  19. {
  20. protected void Application_Start()
  21. {
  22. AreaRegistration.RegisterAllAreas();
  23. WebApiConfig.Register(GlobalConfiguration.Configuration);
  24. FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
  25. RouteConfig.RegisterRoutes(RouteTable.Routes);
  26. BundleConfig.RegisterBundles(BundleTable.Bundles);
  27. // Register Database
  28. Database.SetInitializer(new TechEdInit());
  29. // Create LocalDB instance for database to be created in
  30. CreateDatabase("TechEd", Server.MapPath("~/App_Data/TechEd.mdf"));
  31. // Register Security
  32. SecurityConfig.ConfigureGlobal(GlobalConfiguration.Configuration);
  33. // Register Automapper
  34. AutoMapper.Mapper.CreateMap<Models.Member, TechEd.Integration.ServiceModels.Member>();
  35. AutoMapper.Mapper.CreateMap<TechEd.Integration.ServiceModels.Member, Models.Member>();
  36. }
  37. public bool CreateDatabase(string dbName, string dbFileName)
  38. {
  39. try
  40. {
  41. if (File.Exists(dbFileName))
  42. return true;
  43. string connectionString = String.Format(@"Data Source=(LocalDB)\v11.0;Initial Catalog=master;Integrated Security=True");
  44. using (var connection = new SqlConnection(connectionString))
  45. {
  46. connection.Open();
  47. SqlCommand cmd = connection.CreateCommand();
  48. DetachDatabase(dbName);
  49. cmd.CommandText = String.Format("CREATE DATABASE {0} ON (NAME = N'{0}', FILENAME = '{1}')", dbName, dbFileName);
  50. cmd.ExecuteNonQuery();
  51. }
  52. if (File.Exists(dbFileName)) return true;
  53. else return false;
  54. }
  55. catch
  56. {
  57. throw;
  58. }
  59. }
  60. public static bool DetachDatabase(string dbName)
  61. {
  62. try
  63. {
  64. string connectionString = String.Format(@"Data Source=(LocalDB)\v11.0;Initial Catalog=master;Integrated Security=True");
  65. using (var connection = new SqlConnection(connectionString))
  66. {
  67. connection.Open();
  68. SqlCommand cmd = connection.CreateCommand();
  69. cmd.CommandText = String.Format("exec sp_detach_db '{0}'", dbName);
  70. cmd.ExecuteNonQuery();
  71. return true;
  72. }
  73. }
  74. catch
  75. {
  76. return false;
  77. }
  78. }
  79. }
  80. }