예제 #1
0
        public override void ProcessRequest(HttpContextBase context)
        {
            const string DefaultService = "msdn";

            Guid   id      = context.Request.QueryString["id"].ToGuid();
            string service = (context.Request.QueryString["srv"] ?? DefaultService).ToLowerInvariant();

            if (id == Guid.Empty)
            {
                RedirectToPrevious(context);
                return;
            }

            IStory story = StoryRepository.FindById(id);

            if (story == null)
            {
                RedirectToPrevious(context);
                return;
            }

            ISocialServiceRedirector redirector = null;

            try
            {
                redirector = IoC.Resolve <ISocialServiceRedirector>(service);
            }
            catch (Exception e)
            {
                Log.Exception(e);
            }

            if (redirector == null)
            {
                redirector = IoC.Resolve <ISocialServiceRedirector>(DefaultService);
            }

            redirector.Redirect(context, story);
        }
예제 #2
0
 public TwitterRedirectorFixture()
 {
     _contentService = new Mock <IContentService>();
     _redirector     = new TwitterRedirector(_contentService.Object);
 }
예제 #3
0
 public DeliciousRedirectorFixture()
 {
     _redirector = new DeliciousRedirector();
 }
예제 #4
0
 public MsdnRedirectorFixture()
 {
     _redirector = new MsdnRedirector();
 }
예제 #5
0
 public FacebookRedirectorFixture()
 {
     _redirector = new FaceBookRedirector();
 }