Exemple #1
0
        public async Task Invoke(IDictionary <string, object> parameters, string serviceId, string serviceKey)
        {
            var command = _serviceCommandProvider.GetCommand(serviceId);
            var result  = await _serviceCommandProvider.Run(command.Injection, command.InjectionNamespaces);

            if (result is Boolean)
            {
                if ((bool)result)
                {
                    var entries = _serviceEntryManager.GetEntries().ToList();
                    var entry   = entries.Where(p => p.Descriptor.Id == serviceId).FirstOrDefault();
                    await entry.Func(serviceKey, parameters);
                }
            }
        }
        /// <summary>
        /// 调用.
        /// </summary>
        /// <param name="parameters">The parameters.</param>
        /// <param name="serviceId">The service identifier.</param>
        /// <param name="serviceKey">The service key.</param>
        /// <param name="decodeJOject">if set to <c>true</c> [decode j oject].</param>
        /// <returns>Task.</returns>
        public async Task Invoke(IDictionary <string, object> parameters, string serviceId, string serviceKey,
                                 bool decodeJOject)
        {
            var vt      = _serviceCommandProvider.GetCommand(serviceId);
            var command = vt.IsCompletedSuccessfully ? vt.Result : await vt;
            var result  = await _serviceCommandProvider.Run(command.Injection, command.InjectionNamespaces);

            if (result is bool)
            {
                if ((bool)result)
                {
                    var entries = _serviceEntryManager.GetEntries().ToList();
                    var entry   = entries.Where(p => p.Descriptor.Id == serviceId).FirstOrDefault();
                    await entry.Func(serviceKey, parameters);
                }
            }
        }