示例#1
0
    public PollModule(TinyIoc.TinyIoCContainer container, IPollService pollService = null, ISessionProvider sessionProvider = null)
    {
      if (container == null) throw new ArgumentNullException("container");
      if (!(sessionProvider is DefaultSessionProvider)) _SessionProvider = sessionProvider;

      if (pollService == null)
      {
        container.Register<IPollService, PollService>().AsSingleton();
        pollService = container.Resolve<IPollService>();
      }
      _PollService = pollService as PollService;
      if (pollService == null) throw new ApplicationException("Support Nany.LongPoll.PollService implementation only");

      Get["/Poll/Register"] = x =>
      {
        var sp = _SessionProvider;
        if (sp == null) sp = new DefaultSessionProvider(Request);

        var response = Response.AsJson(_PollService.Register(Request.UserHostAddress, sp.SessionId));
        if (sp is DefaultSessionProvider)
        {
          response = response.WithCookie(DefaultSessionProvider.SessionIdCookieName, sp.SessionId);
        }

        return response;
      };
      Get["/Poll/Wait"] = x =>
      {
        string clientId = Request.Query.clientId;
        ulong seqCode = Request.Query.seqCode;

        return Response.AsText(JsonConvert.SerializeObject(_PollService.Wait(clientId, seqCode)), "application/json");
      };
    }
示例#2
0
    public PollModule(TinyIoc.TinyIoCContainer container, PollService pollService = null, ISessionProvider sessionProvider = null)
    {
      if (container == null) throw new ArgumentNullException("container");
      if (!(sessionProvider is DefaultSessionProvider)) _SessionProvider = sessionProvider;

      if (pollService == null)
      {
        container.Register<PollService>().AsSingleton();
        pollService = container.Resolve<PollService>();
      }
      _PollService = pollService;

      Get["/Poll/Register"] = x =>
      {
        var sp = _SessionProvider;
        if (sp == null) sp = new DefaultSessionProvider(Request);

        var response = Response.AsJson(_PollService.Register(Request.UserHostAddress, sp.SessionId));
        if (sp is DefaultSessionProvider)
        {
          response = response.WithCookie(DefaultSessionProvider.SessionIdCookieName, sp.SessionId);
        }

        return response;
      };
      Get["/Poll/Wait"] = x =>
      {
        string clientId = Request.Query.clientId;
        ulong seqCode = Request.Query.seqCode;

        return Response.AsJson(_PollService.Wait(clientId, seqCode));
      };
    }
示例#3
0
    protected override void ConfigureApplicationContainer(TinyIoc.TinyIoCContainer container)
    {
      base.ConfigureApplicationContainer(container);

      container.Register<PollService>().AsSingleton();
      container.Register<ExampleNotificationService>().AsSingleton();
    }
示例#4
0
        protected override void ConfigureApplicationContainer(TinyIoc.TinyIoCContainer container)
        {
            base.ConfigureApplicationContainer(container);

            container.Register<ISirenDocumentWriter<Order>, OrderWriter>();
            container.Register<ISirenDocumentWriter<OrderItemViewModel>, OrderItemViewModelWriter>();

            container.RegisterMultiple<ILinkGenerator>(new[] { typeof(OrderLinkGenerator) });
        }
示例#5
0
        protected override void ConfigureApplicationContainer(TinyIoc.TinyIoCContainer container)
        {
            base.ConfigureApplicationContainer(container);

            // This is the important part - build HAL config for types
            container.Register(typeof(IProvideHalTypeConfiguration), HypermediaConfiguration());

            var db = new Database();
            CreateTestDataIn(db);
            container.Register(db);
        }
示例#6
0
 public App()
 {
     Ioc = new TinyIoc();
     Ioc.Register <IStorageUtility>(ioc => new StorageUtility());
     Ioc.Register <IApplicationContext>(ioc => new ApplicationContext());
     Ioc.Register <IDialog>(ioc => new WpfDialog());
     Ioc.Register <ISyndicationHelper>(ioc => new SyndicationHelper());
     Ioc.Register(ioc => new BlogDataSource(
                      ioc.Resolve <IStorageUtility>(),
                      ioc.Resolve <IApplicationContext>(),
                      ioc.Resolve <IDialog>(),
                      ioc.Resolve <ISyndicationHelper>()));
 }
示例#7
0
        public void Given()
        {
            _ioc = new TinyIoc();
            _ioc.Configure(c =>
                               {
                                   c.Add<IFoo>(ctx => new Bar());
                                   c.Add<IFoo>("baz", ctx => new Baz());
                                   c.AddSingleton(ctx=> new Qux());

                                   c.Add<IDependable>(ctx => new Depending(ctx.Get<IFoo>()));
                                   c.Add<IDependable>("b", ctx => new Depending(ctx.Get<IFoo>("baz")));
                               });
        }
示例#8
0
        /// <summary>
        /// Initializes the singleton Application object.  This is the first line of authored code
        /// executed, and as such is the logical equivalent of main() or WinMain().
        /// </summary>
        public App()
        {
            Extended = false;
            InitializeComponent();
            Suspending += OnSuspending;
            RegisterChannel();

            Ioc = new TinyIoc();
            Ioc.Register <IStorageUtility>(ioc => new StorageUtility());
            Ioc.Register <IApplicationContext>(ioc => new ApplicationContext());
            Ioc.Register <IDialog>(ioc => new Dialog());
            Ioc.Register <ISyndicationHelper>(ioc => new SyndicationHelper(ioc.Resolve <IDialog>()));
            Ioc.Register(ioc => new BlogDataSource(ioc.Resolve <IStorageUtility>(),
                                                   ioc.Resolve <IApplicationContext>(),
                                                   ioc.Resolve <IDialog>(),
                                                   ioc.Resolve <ISyndicationHelper>()));
        }
示例#9
0
 protected override void ApplicationStartup(TinyIoc.TinyIoCContainer container, Nancy.Bootstrapper.IPipelines pipelines)
 {
     base.ApplicationStartup(container, pipelines);
     Elmahlogging.Enable(pipelines, "admin/elmah");
 }
示例#10
0
 protected override void ApplicationStartup(TinyIoc.TinyIoCContainer container, Bootstrapper.IPipelines pipelines)
 {
   base.ApplicationStartup(container, pipelines);
 }
示例#11
0
 protected override void ConfigureApplicationContainer(TinyIoc.TinyIoCContainer container)
 {
     container.Register<ITokenizer>(new Tokenizer(cfg => cfg.WithKeyCache(new InMemoryTokenKeyStore())));
 }
示例#12
0
 protected override void ApplicationStartup(TinyIoc.TinyIoCContainer container, Nancy.Bootstrapper.IPipelines pipelines)
 {
     base.ApplicationStartup(container, pipelines);
     Elmahlogging.Enable(pipelines, "admin/elmah", new string[0], new HttpStatusCode[]{HttpStatusCode.NotFound});
 }
示例#13
0
 protected override void ConfigureApplicationContainer(TinyIoc.TinyIoCContainer container)
 {
   base.ConfigureApplicationContainer(container);
 }
        protected override void ConfigureApplicationContainer(TinyIoc.TinyIoCContainer container)
        {
            base.ConfigureApplicationContainer(container);

            container.Register<ILocator, PostLocator>();
        }