Пример #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="args"></param>
        public static void Main(string[] args)
        {
            var serviceProvider = new ServiceCollection()
                                  .AddLogging()
                                  .AddTransient <IGetWeatherForecastSvc, GetWeatherForecastSvc>()
                                  .BuildServiceProvider();


            ServiceLocator.SetLocatorProvider(serviceProvider);

            var request = new List <WeatherForecastRequestDto> {
                new() {
                    ID = 2003
                },
                new() {
                    ID = 2004
                }
            };

            var result = new List <WEATHER_FORECAST>();

            using (var svc =
                       new BulkServiceExecutorManager <IGetWeatherForecastSvc, WeatherForecastRequestDto>(request)) {
                svc.SetRequest((s, r) => s.Request = r)
                .AddFilter(s => s.Request.ID.xIsNotNull())
                .OnExecuted(s => {
                    result.Add(s.Result);
                    return(true);
                });
            }

            result.xForEach(item => { Console.WriteLine(item.xToJson()); });
        }
    }
Пример #2
0
 public override void Execute()
 {
     using (var svc = new BulkServiceExecutorManager <SaveConfigSvc, SaveConfigRequest>(Request)) {
         svc.SetRequest((o, current) => { o.Request = current; })
         .AddFilter(o => { return(o.Request.xIsNotNull()); }).OnExecuted(o => {
             var result = o.Result;
             return(true);
         });
     }
 }
        /// <summary>
        /// 대량 서비스 생성을 위한 메서드
        /// 비공유 인스턴스 생성을 위해 servicelocator를 사용함.
        /// </summary>
        /// <param name="requests"></param>
        /// <typeparam name="TServiceExecutor"></typeparam>
        /// <typeparam name="TRequest"></typeparam>
        /// <typeparam name="TResult"></typeparam>
        /// <returns></returns>
        protected IEnumerable <TResult> CreateBulkService <TServiceExecutor, TRequest, TResult>(
            IEnumerable <TRequest> requests)
            where TServiceExecutor : IServiceExecutor <TRequest, TResult>
        {
            var results = new List <TResult>();

            using var bulkExecutor = new BulkServiceExecutorManager <TServiceExecutor, TRequest>(requests);
            bulkExecutor.SetRequest((o, c) => o.Request = c)
            .OnExecuted(o => {
                results.Add(o.Result);
                return(true);
            });

            return(results);
        }
Пример #4
0
        protected IEnumerable <TResult> CreateBulkService <TServiceExecutor, TRequest, TResult>(TServiceExecutor serviceExecutor,
                                                                                                IEnumerable <TRequest> requests, Func <TServiceExecutor, bool> func = null)
            where TServiceExecutor : IServiceExecutor <TRequest, TResult>
        {
            var results = new JList <TResult>();

            using var bulkExecutor = new BulkServiceExecutorManager <TServiceExecutor, TRequest>(requests);
            bulkExecutor.SetRequest((o, c) => o.Request = c)
            .AddFilter(func)
            .OnExecuted(o => {
                results.Add(o.Result);
                return(true);
            });

            return(results);
        }