예제 #1
0
        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();
                }
            }
        }
예제 #2
0
        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;
        }