using System; using System.Configuration; using System.Linq; using System.Reflection; using System.Web; namespace CPE.App.Web.Models { public partial class CPEWebDataContext { public static CPEWebDataContext Context() { return new CPEWebDataContext(); } public static CPEWebDataContext GetContext() { var connectionString = ConfigurationManager.ConnectionStrings["CPE.Data"].ConnectionString; try { var context = HttpContext.Current; var address = context.Request.UserHostAddress; if (address.StartsWith("192.") || address.StartsWith("10.211") || address == "::1") { connectionString = ConfigurationManager.ConnectionStrings["CPE.Data.Local"].ConnectionString; } } catch (Exception e) { Console.WriteLine(e); } return GetContext(connectionString); //DONE DEPLOY CHANGE back to CPE.DATA } /// /// Returns the DataContext shared for the current request (or creates one if necessary) /// /// The connection string to use. public static CPEWebDataContext GetContext(string connectionString) { if(HttpContext.Current == null) { return new CPEWebDataContext(connectionString); } if(HttpContext.Current.Items.Contains("MUDataContext")) { return HttpContext.Current.Items["MUDataContext"] as CPEWebDataContext; } var context = new CPEWebDataContext(connectionString); HttpContext.Current.Items.Add("MUDataContext", context); return context; } public static CPEWebDataContext Context(IQueryable queryable) { var field = queryable.GetType() .GetField("context", BindingFlags.NonPublic | BindingFlags.Instance); return field.GetValue(queryable) as CPEWebDataContext; } } }