コード例 #1
0
        public static CarrinhoCompra GetCarrinho(System.IServiceProvider services)
        {
            // define uma sessão acessando o contexto atual (tem que registrar em IServicesCo
            // Vai retornar uma session se o operador <IHttpContextAcessor> não for nulo
            // por isso usamos o operador condicional nulo ?.
            ISession session = services.GetRequiredService <IHttpContextAccessor>()?.HttpContext.Session;

            // obtém um serviço do tipo do nosso contexto
            var context = services.GetService <AppDbContext>();

            // obtém ou gera o Id do carrinho
            // usamos o operador de coalicence nula (??)
            // se a sessão do carrinho "sessionGetString("CarrinhoId") existir, mantém o valor
            // se for nula, o comando Guid.NewGuid() irá atribuir um novo valor único para a sessão do carrinho
            // gera um número aleatório de 128 bits
            string carrinhoId = session.GetString("CarrinhoId") ?? Guid.NewGuid().ToString();

            // atribui o id do carrinho na Sessão
            session.SetString("CarrinhoId", carrinhoId);

            // retorna o carrinho com o contexto atual e o Id atribuído ou obtido
            return(new CarrinhoCompra(context)
            {
                CarrinhoCompraId = carrinhoId
            });
        }
コード例 #2
0
        public RmqConsumers(IServiceProvider services)
        {
            var options = services.GetRequiredService <RmqOptions>();
            var cs      = Environment.ExpandEnvironmentVariables(options.ConnectionString);

            bus = RabbitHutch.CreateBus(cs);
            SubscribeHandlers(bus, services);
        }
コード例 #3
0
ファイル: AdminCommandTarget.cs プロジェクト: rsdn/janus
		public AdminCommandTarget(IServiceProvider provider) : base(provider)
		{
			_siteUrl =
				() =>
					provider
						.GetRequiredService<IWebConnectionService>()
						.GetConfig()
						.SiteUrl;
		}
コード例 #4
0
ファイル: ForumCommandTarget.cs プロジェクト: rsdn/janus
		private static int GetForumId(IServiceProvider provider, int? forumId)
		{
			if (forumId != null)
				return forumId.Value;

			var currentForum = provider
				.GetRequiredService<IActiveForumService>()
				.ActiveForum;
			return currentForum?.ID ?? -1;
		}
コード例 #5
0
        // https://github.com/EasyNetQ/EasyNetQ/wiki/Auto-Subscriber
        private static void SubscribeHandlers(IBus bus, IServiceProvider services)
        {
            var dispatcherLogger = services.GetRequiredService <ILogger <MessageDispatcher> >();
            var subscriber       = new AutoSubscriber(bus, "auto")
            {
                AutoSubscriberMessageDispatcher = new MessageDispatcher(services, dispatcherLogger),
            };

            subscriber.SubscribeAsync(Assembly.GetExecutingAssembly());
        }
コード例 #6
0
        public static void Main(string[] aArgumentArray)
        {
            IWebHost host = BuildWebHost(aArgumentArray);

            using (IServiceScope scope = host.Services.CreateScope())
            {
                System.IServiceProvider services = scope.ServiceProvider;
                try
                {
                    HercPwaDbContext hercPwaDbContext = services.GetRequiredService <HercPwaDbContext>();
                    DbInitializer.Initialize(hercPwaDbContext);
                }
                catch (Exception exception)
                {
                    ILogger <Program> logger = services.GetRequiredService <ILogger <Program> >();
                    logger.LogError(exception, "An error occurred creating the DB.");
                }
            }
            host.Run();
        }
コード例 #7
0
        private static int GetForumId(IServiceProvider provider, int?forumId)
        {
            if (forumId != null)
            {
                return(forumId.Value);
            }

            var currentForum = provider
                               .GetRequiredService <IActiveForumService>()
                               .ActiveForum;

            return(currentForum != null ? currentForum.ID : -1);
        }
コード例 #8
0
        public static CarrinhoCompra GetCarrinho(System.IServiceProvider services)
        {
            ISession session =
                services.GetRequiredService <IHttpContextAccessor>()?.HttpContext.Session;

            //var x = Microsoft.AspNetCore.Http.HttpContext. HttpContext.

            var    context    = services.GetService <AppDbContext>();
            string carrinhoId = session.GetString("CarrinhoId") ?? Guid.NewGuid().ToString();

            session.SetString("CarrinhoId", carrinhoId);

            return(new CarrinhoCompra(context)
            {
                CarrinhoCompraId = carrinhoId
            });
        }
コード例 #9
0
ファイル: ShoppingCart.cs プロジェクト: mfratassi/burguer-web
        public static ShoppingCart GetId(System.IServiceProvider services)
        {
            //Define uma sessao acessando o contexto atual (Tem que registrar em IServicesCollection)
            ISession session = services.GetRequiredService <IHttpContextAccessor>()?.HttpContext.Session;

            //Obtém um serviço do tipo do nosso contexto
            var context = services.GetService <LanchesWebContext>();

            //Obtém ou gera o Id do Carrinho
            string shoppingCartId = session.GetString("ShoppingCartId") ?? Guid.NewGuid().ToString();

            //Atribui o Id do Carrinho na sessão
            session.SetString("ShoppingCartId", shoppingCartId);

            //Retorna o Carrinho com o contexto atual e o Id atribuído ou obtido
            return(new ShoppingCart(context)
            {
                ShoppingCartId = shoppingCartId
            });
        }
コード例 #10
0
        public static CarrinhoCompra GetCarrinho(System.IServiceProvider services)
        {
            // define uma sessão utilizando o contexto ( banco de dados ) atual
            ISession session = services.GetRequiredService <IHttpContextAccessor>()?.HttpContext.Session;

            // Obtem um serviço do tipo do nosso contexto
            var context = services.GetService <AppDbContext>();

            // Obtem ou gera o Id do carrinho
            string carrinhoId = session.GetString("CarrinhoId") ?? Guid.NewGuid().ToString();

            // atribui o Id co carrinho na sessão
            session.SetString("CarrinhoId", carrinhoId);

            // retorna o carrinho com o contexto atual
            return(new CarrinhoCompra(context)
            {
                CarrinhoCompraId = carrinhoId
            });
        }
コード例 #11
0
        public static CarrinhoCompra GetCarrinho(System.IServiceProvider services)
        {
            //define uma sessão acessando o contexto atual(tem que registrar em IServices)
            ISession session =
                services.GetRequiredService <IHttpContextAccessor>()?.HttpContext.Session;

            //obtem um serviço do tipo do nosso contexto
            var context = services.GetService <AppDbContext>();

            //obtem ou gera o Id do carrinho
            string carrinhoId = session.GetString("CarrinhoId") ?? Guid.NewGuid().ToString();

            //Atribui o id carrinho na sessão
            session.SetString("CarrinhoId", carrinhoId);

            return(new CarrinhoCompra(context)
            {
                CarrinhocompraId = carrinhoId
            });
        }
コード例 #12
0
        public static CarrinhoCompra GetCarrinho(System.IServiceProvider services)
        {
            //define uma sessão acessando o contexto atual(tem que registrar em IServiceCollection.. )
            //? é um operador condicional nulo, se IHttpContextAcessor for nulo, então ele retorna nulo
            // senão retorna a Sessão com o contexto (HttpContext.Session)
            ISession session = services.GetRequiredService <IHttpContextAccessor>()?.HttpContext.Session;

            //obtem um serviço do tipo do nosso contexto
            var context = services.GetService <AppDbContext>();

            //obtem ou gera o id do carrinho
            // ?? retorna o CarrinhoId se ele existir, se não existir será dado um NewGuid para gerar um
            //identificador único
            string carrinhoId = session.GetString("CarrinhoId") ?? Guid.NewGuid().ToString();

            //atribui o id do carrinho na Sessão
            session.SetString("CarrinhoId", carrinhoId);

            //retorna o carrinho com o contexto atual e o Id atribuido ou obtido
            return(new CarrinhoCompra(context)
            {
                CarrinhoCompraId = carrinhoId
            });
        }
コード例 #13
0
        private static void UpdateForumsSubscriptions(
            [NotNull] System.IServiceProvider serviceProvider,
            [NotNull] IEnumerable <ForumSubscriptionRequest> requests,
            [NotNull] DeleteMessagesPredicate deleteMessagesPredicate)
        {
            if (serviceProvider == null)
            {
                throw new ArgumentNullException("serviceProvider");
            }
            if (requests == null)
            {
                throw new ArgumentNullException("requests");
            }
            if (deleteMessagesPredicate == null)
            {
                throw new ArgumentNullException("deleteMessagesPredicate");
            }

            using (var mgr = serviceProvider.CreateDBContext())
            {
                var forums =
                    GetAllForums(
                        mgr,
                        f => new { f.ID, f.Name, f.Descript, Subscribed = false },
                        f => new { f.ID, f.Name, f.Descript, Subscribed = true })
                    .ToDictionary(forum => forum.ID);
                var requestsArray =
                    requests
                    .Where(request => request.IsSubscribed != forums[request.ForumId].Subscribed)
                    .ToArray();
                if (!requestsArray.Any())
                {
                    return;
                }
                var forumEntryIds =
                    requestsArray
                    .Select(request => new ForumEntryIds(request.ForumId))
                    .ToArray();
                var eventBroker = serviceProvider.GetRequiredService <IEventBroker>();

                eventBroker.Fire(
                    ForumEventNames.BeforeForumEntryChanged,
                    new ForumEntryChangedEventArgs(forumEntryIds, ForumEntryChangeType.ForumSubscription));

                foreach (var request in requestsArray)
                {
                    if (request.IsSubscribed)
                    {
                        Subscribe(serviceProvider, request.ForumId);
                    }
                    else
                    {
                        var forum = forums[request.ForumId];

                        Unsubscribe(
                            serviceProvider,
                            request.ForumId,
                            deleteMessagesPredicate(forum.ID, forum.Name, forum.Descript));
                    }
                }
                serviceProvider
                .GetRequiredService <IUIShell>()
                .CreateUIAsyncOperation()
                .PostOperationCompleted(() => serviceProvider.GetRequiredService <IUIShell>().RefreshData());

                eventBroker.Fire(
                    ForumEventNames.AfterForumEntryChanged,
                    new ForumEntryChangedEventArgs(forumEntryIds, ForumEntryChangeType.ForumSubscription));
            }
        }
コード例 #14
0
ファイル: ServiceFactory.cs プロジェクト: danimart1991/Radarr
 public T Build <T>()
     where T : class
 {
     return(_container.GetRequiredService <T>());
 }