static void Main(string[] args) { Console.WriteLine("Hello Abstract World!"); IDashboardFactory dashboardFactory; List <Vendor> vendors = new List <Vendor>() { Vendor.GOOGLE, Vendor.FACEBOOK }; foreach (var vendor in vendors) { switch (vendor) { case Vendor.GOOGLE: dashboardFactory = new GoogleFactory(); break; case Vendor.FACEBOOK: dashboardFactory = new FacebookFactory(); break; default: throw new NotImplementedException(); } } }
void context_PostAcquireRequestState(object sender, EventArgs e) { var ctx = HttpContext.Current; Debug.WriteLine("PostAcquireRequestState: {0}", ctx.Handler); if (ctx.Session == null) { Debug.WriteLine("Session state is not available."); return; } var factory = new FacebookFactory(); FacebookInstance fb = (FacebookInstance)ctx.Session["FBInstance"]; string signedRequest = ctx.Request.Params["signed_request"]; //whenever there is a new signed_request, refresh the FB object if (signedRequest.HasValue() || fb == null) { var key = ctx.Request.Params["app"]; var elem = FacebookConfigManager.GetInstance(key); fb = factory.GetInstance(elem, ctx.Request.Params); } ctx.Session["FBInstance"] = fb; }