コード例 #1
0
        public void StartProcess()
        {
            //Retrieve existing datas from client
            var clientDatas = RetrieveDealershipDatas();

            //Retrieve datas from files
            var files = ServiceFactory.File.RetrieveLinesFromFile();

            var worker = new BackgroundWorkerQueue(10);
            for (var i = 0; i < files.Length; i++)
            {
                var model = new ProcessDataRequestModel(Clients)
                {
                    Size = files.Length,
                    Position = i,
                    Line = files[i]
                };
                var work = new ProcessDataWork(model, clientDatas);
                worker.Enqueue(work);
            }

            //Generate report Top performing
            var topPerformingModel = new ProcessReportRequestModel(Clients, FrontMessage.ReportIdTopPerforming,
                FrontMessage.ReportTitleTopPerforming, worker)
            {
                WherePredicate = x => x.TotalSales > 0,
                OrderByPredicate = x => x.TotalSales,
                Size = 100
            };
            worker.Enqueue(new ProcessReportWork(topPerformingModel, clientDatas));

            //Generate report Low stock
            var lowStockModel = new ProcessReportRequestModel(Clients, FrontMessage.ReportIdLowStock,
                FrontMessage.ReportTitleLowStock, worker)
            {
                WherePredicate = x => x.AvailableStock < 10,
                OrderByPredicate = x => x.AvailableStock
            };
            worker.Enqueue(new ProcessReportWork(lowStockModel, clientDatas));
        }
コード例 #2
0
 public ProcessReportWork(ProcessReportRequestModel requestModel, ConcurrentBag<DealershipData> clientDatas)
 {
     ProcessReportRequestModel = requestModel;
     ClientDatas = clientDatas;
 }