private async Task <CoverResult> Compute(FileData fileData, double LOW, double HIGH, AttributeGroupsOfObjects[] listOfGroupsOfDataObjects, ProgressBarModel progressBarModel, double step) { var result = new CoverResult { TestObjects = fileData.TestObjects, DataObjects = fileData.DataObjects, Groups = listOfGroupsOfDataObjects, AttributesCovers = _coverCalculator.CalculateCovers(listOfGroupsOfDataObjects, LOW, HIGH).ToArray(), }; result.LowZeroColumns = GetZerosColumns(result.AttributesCovers, z => z.LOW.Equals(NegativeClassValue), z => z.LOW.Equals(PositiveClassValue)); result.HighZeroColumns = GetZerosColumns(result.AttributesCovers, z => z.HIGH.Equals(NegativeClassValue), z => z.HIGH.Equals(PositiveClassValue)); result.DataMatrix = _coverMatrixGenerator.CreateMatrix(fileData.DataObjects, LOW, HIGH, result.AttributesCovers, result.LowZeroColumns, result.HighZeroColumns); await _gradeService.Grade(result); progressBarModel.Progress += step; return(result); }
public async Task <DateRates> GetRatesOnDateAsync(ProgressBarModel progressBar, UrlModel url) { var domDocument = await GetDomPageAsync(url.Link); progressBar.Value += 1; return(GetDateRates(domDocument, url)); }
public SearchViewModel() { // Init ProgressBar = new ProgressBarModel { Visibility = Visibility.Hidden }; ButtonGo = new ControlModel { IsEnabled = true }; AliItems = new ObservableCollection <AliItem>(); ProxyServers = new ObservableCollection <ProxyServer>(); CurrentProxy = new ProxyServer(); BrokenUrls = new List <string>(); _itemNo = 0; _currItemNo = 0; // Commands status _canExecute = true; // Background worker settings _bw.WorkerReportsProgress = true; _bw.WorkerSupportsCancellation = true; _bw.ProgressChanged += ProgressChanged; _bw.DoWork += DoWork; _bw.RunWorkerCompleted += BackgroundWorker_RunWorkerCompleted; // Subscribe events StatusViewModel.OnTaskCanceled += CancelWork; StatusViewModel.OnTaskStarted += () => { ButtonGo.IsEnabled = false; }; StatusViewModel.OnTaskFinished += () => { ButtonGo.IsEnabled = true; }; }
public ResultViewModel() { // Init ProgressBar = new ProgressBarModel { Visibility = Visibility.Hidden }; Buttons = new ButtonModel { IsEnabled = true }; AliItems = new ObservableCollection <AliItem>(); // Commands status _canExecute = true; // Background worker1 settings _bw1.WorkerReportsProgress = true; _bw1.WorkerSupportsCancellation = true; _bw1.ProgressChanged += ProgressChanged; _bw1.DoWork += DoSaveDb; _bw1.RunWorkerCompleted += BackgroundWorker_RunWorkerCompleted; // Background worker2 settings _bw2.WorkerReportsProgress = true; _bw2.WorkerSupportsCancellation = true; _bw2.ProgressChanged += ProgressChanged; _bw2.DoWork += DoExport; _bw2.RunWorkerCompleted += BackgroundWorker_RunWorkerCompleted; // Subscribe on all items grabbed event SearchViewModel.OnItemsGrabbed += ShowResult; // Subscribe events ExplorerViewModel.OnItemsOpened += ShowResult; StatusViewModel.OnTaskCanceled += CancelWork; StatusViewModel.OnTaskStarted += () => { Buttons.IsEnabled = false; }; StatusViewModel.OnTaskFinished += () => { Buttons.IsEnabled = true; }; }
public MainViewModel( IFileReaderProvider fileReaderProvider, ICoverMatrixManager coverMatrixManager, IExcelWriter excelWriter, IValidateService validateService, IGroupingManager groupingManager, ITxtExporter txtExporter, IFileChecker fileChecker, IFileReader fileReader, IOpenFileDialog openFileDialog) : base(validateService) { Progress = new ProgressBarModel(); _txtExportert = txtExporter; _fileChecker = fileChecker; _fileReader = fileReader; _openFileDialog = openFileDialog; _fileReaderProvider = fileReaderProvider; _coverMatrixManager = coverMatrixManager; _excelWriter = excelWriter; RunIndicatorVisible = false; ExcelIndicatorVisible = false; CmdCancelComputeData = new DelegateCommand(async() => await CancelComputeData(), () => CancelEnabled); CmdComputeData = new DelegateCommand(async() => await ComputeData(), RunEnableCheck); CmdReadFile = new DelegateCommand(ReadFile, () => RunButtonIndicatorVisible); CmdExportToExcel = new DelegateCommand(async() => await ExportToExcel(), () => CanEnable); CmdExportTstToTxt = new DelegateCommand(async() => await ExportToTxt(CoverResult.TestMatrix, "_Obiekty_testowe"), () => CanEnable); CmdExportTrnToTxt = new DelegateCommand(async() => await ExportToTxt(CoverResult.DataMatrix, "_Obiekty_treningowe"), () => CanEnable); MethodsDelegates = groupingManager.GetGroupingMethods(); SelectedMethod = MethodsDelegates.FirstOrDefault(); }
/// <summary> /// 生成报告,包括生成汇总表以及插入图片 /// </summary> /// <param name="progressModel">进度条数据绑定模型</param> /// <param name="ImageWidth"></param> /// <param name="ImageHeight"></param> /// <param name="CompressImageFlag"></param> public void GenerateReport(ref ProgressBarModel progressModel, bool CommentColumnInsertTable, double ImageWidth = 224.25, double ImageHeight = 168.75, int CompressImageFlag = 70) { progressModel.ProgressValue = 0; InsertSummaryWords(); progressModel.Content = "正在处理桥面系……"; InsertSummaryAndPictureTable(BridgeDeckBookmarkStartName, CompressImageFlag, _bridgeDeckListDamageSummary, ImageWidth, ImageHeight, CommentColumnInsertTable); progressModel.Content = "正在处理上部结构……"; progressModel.ProgressValue = 33; System.Threading.Thread.Sleep(500); InsertSummaryAndPictureTable(SuperSpaceBookmarkStartName, CompressImageFlag, _superSpaceListDamageSummary, ImageWidth, ImageHeight, CommentColumnInsertTable); progressModel.Content = "正在处理下部结构……"; progressModel.ProgressValue = 66; System.Threading.Thread.Sleep(500); InsertSummaryAndPictureTable(SubSpaceBookmarkStartName, CompressImageFlag, _subSpaceListDamageSummary, ImageWidth, ImageHeight, CommentColumnInsertTable); progressModel.ProgressValue = 99; progressModel.Content = "正在替换文档变量……"; ReplaceDocVariable(); //两次更新域,1次更新序号,1次更新序号对应的交叉引用 _doc.UpdateFields(); _doc.UpdateFields(); progressModel.ProgressValue = 100; progressModel.Content = "正在完成……"; }
private static void GenerateReport(GenerateReportSettings generateReportSettings, bool CommentColumnInsertTable, double ImageWidth, double ImageHeight, string templateFile, string outputFile, int CompressImageFlag, ObservableCollection <DamageSummary> _bridgeDeckListDamageSummary, ObservableCollection <DamageSummary> _superSpaceListDamageSummary, ObservableCollection <DamageSummary> _subSpaceListDamageSummary) { var w = new ProgressBarWindow(); w.Top = 0.4 * (App.ScreenHeight - w.Height); w.Left = 0.4 * (App.ScreenWidth - w.Width); var progressBarModel = new ProgressBarModel { ProgressValue = 0 }; w.progressBarNumberTextBlock.DataContext = progressBarModel; w.progressBar.DataContext = progressBarModel; w.progressBarContentTextBlock.DataContext = progressBarModel; var progressSleepTime = 500; //进度条停顿时间 List <DamageSummary> l1 = _bridgeDeckListDamageSummary.ToList(); List <DamageSummary> l2 = _superSpaceListDamageSummary.ToList(); List <DamageSummary> l3 = _subSpaceListDamageSummary.ToList(); DamageSummaryServices.InitListDamageSummary1(l1); DamageSummaryServices.InitListDamageSummary1(l2, 2_000_000); DamageSummaryServices.InitListDamageSummary1(l3, 3_000_000); var thread = new Thread(new ThreadStart(() => { //progressBarModel.ProgressValue = 0; //测试数据 //生成报告前先验证照片的有效性 int totalInvalidPictureCounts = PictureServices.ValidatePictures(l1, l2, l3, out List <string> bridgeDeckValidationResult, out List <string> superSpaceValidationResult, out List <string> subSpaceValidationResult); if (totalInvalidPictureCounts > 0) { try { WriteInvalidPicturesResultToTxt(totalInvalidPictureCounts, bridgeDeckValidationResult, superSpaceValidationResult, subSpaceValidationResult); MessageBox.Show($"存在无效照片,无法生成报告,共计{totalInvalidPictureCounts}张,详见根目录{App.InvalidPicturesStoreFile}"); return; } catch (Exception ex) { //MessageBox.Show(ex.Message); //throw; } } w.progressBar.Dispatcher.BeginInvoke((ThreadStart) delegate { w.Show(); }); Document doc = new Document(templateFile); var asposeService = new AsposeWordsServices(ref doc, generateReportSettings, l1, l2, l3); asposeService.GenerateReport(ref progressBarModel, CommentColumnInsertTable, ImageWidth, ImageHeight, CompressImageFlag); doc.Save(outputFile, SaveFormat.Docx); w.progressBar.Dispatcher.BeginInvoke((ThreadStart) delegate { w.Close(); }); w.progressBar.Dispatcher.BeginInvoke((ThreadStart) delegate { MessageBox.Show("成功生成报告!"); }); })); thread.Start(); }
public ProgressBarVM(ProgressBarModel model) { this.model = model; model.PropertyChanged += delegate(object sender, PropertyChangedEventArgs e) { NotifyPropertyChanged("VM_" + e.PropertyName); }; }
public IActionResult ModelExpressionDemoIndex() { var progressBarModel = new ProgressBarModel() { ProgressBarValue = 50, ProgressBarMax = 100, ProgressBarMin = 0 }; return(View(progressBarModel)); }
public void Init(bool isIndeterminate, string text = null) { model = new ProgressBarModel { IsIndeterminate = isIndeterminate }; if (!string.IsNullOrEmpty(text) && isIndeterminate) { model.Progress = text; } grid.DataContext = model; }
/// <summary> /// Создаёт массив "DateRates" и заполняет его с помощью .AsParsllel. Отображает процесс на прогрессбар. /// </summary> /// <param name="progressBar"></param> /// <param name="urls"></param> /// <returns></returns> public async Task <DateRates[]> GetRatesOnDatesAsync(ProgressBarModel progressBar, params UrlModel[] urls) { var pricesList = new DateRates[urls.Length]; await Task.WhenAll( urls.AsParallel().Select(async(url, index) => { var domDocument = await GetDomPageAsync(url.Link); pricesList[index] = GetDateRates(domDocument, url); progressBar.Value += 1; })); return(pricesList); }
public StatusViewModel() { // Commands status _canExecute = true; ProgressBar = new ProgressBarModel { Visibility = Visibility.Hidden, Content = "Ready" }; ButtonCancel = new ButtonModel { Visibility = Visibility.Hidden }; // Subscribe on progress bar event SearchViewModel.OnSearchProgress += UpdateProgressBar; ResultViewModel.OnProgress += UpdateProgressBar; }
private void UpdateProgressBar(ProgressBarModel pb) { ProgressBar.Value = pb.Value; ProgressBar.Content = pb.Content; ProgressBar.Visibility = pb.Visibility; if (ProgressBar.Visibility == Visibility.Visible) { OnTaskStarted?.Invoke(); } if (ProgressBar.Visibility == Visibility.Hidden) { OnTaskFinished?.Invoke(); } }
private static void GenerateReport(bool CommentColumnInsertTable, double ImageWidth, double ImageHeight, string templateFile, string outputFile, int CompressImageFlag, ObservableCollection <DamageSummary> _bridgeDeckListDamageSummary, ObservableCollection <DamageSummary> _superSpaceListDamageSummary, ObservableCollection <DamageSummary> _subSpaceListDamageSummary) { var w = new ProgressBarWindow(); w.Top = 0.4 * (App.ScreenHeight - w.Height); w.Left = 0.4 * (App.ScreenWidth - w.Width); var progressBarModel = new ProgressBarModel { ProgressValue = 0 }; w.progressBarNumberTextBlock.DataContext = progressBarModel; w.progressBar.DataContext = progressBarModel; w.progressBarContentTextBlock.DataContext = progressBarModel; var progressSleepTime = 500; //进度条停顿时间 List <DamageSummary> l1 = _bridgeDeckListDamageSummary.ToList(); List <DamageSummary> l2 = _superSpaceListDamageSummary.ToList(); List <DamageSummary> l3 = _subSpaceListDamageSummary.ToList(); DamageSummaryServices.InitListDamageSummary1(l1); DamageSummaryServices.InitListDamageSummary1(l2, 2_000_000); DamageSummaryServices.InitListDamageSummary1(l3, 3_000_000); var thread = new Thread(new ThreadStart(() => { w.progressBar.Dispatcher.BeginInvoke((ThreadStart) delegate { w.Show(); }); //progressBarModel.ProgressValue = 0; //测试数据 var doc = new Document(templateFile); var asposeService = new AsposeWordsServices(ref doc, l1, l2, l3); asposeService.GenerateSummaryTableAndPictureTable(ref progressBarModel, CommentColumnInsertTable, ImageWidth, ImageHeight, CompressImageFlag); //两次更新域,1次更新序号,1次更新序号对应的交叉引用 doc.UpdateFields(); doc.UpdateFields(); doc.Save(outputFile, SaveFormat.Docx); w.progressBar.Dispatcher.BeginInvoke((ThreadStart) delegate { w.Close(); }); w.progressBar.Dispatcher.BeginInvoke((ThreadStart) delegate { MessageBox.Show("成功生成报告!"); }); })); thread.Start(); }
public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output) { //Contextualize the html helper (htmlHelper as IViewContextAware).Contextualize(ViewContext); var progressBarModelObj = new ProgressBarModel() { ProgressBarValue = (int)this.ProgressBarValue.Model, ProgressBarMin = (int)this.ProgressBarMin.Model, ProgressBarMax = (int)this.ProgressBarMax.Model }; var content = await htmlHelper.PartialAsync("~/Views/Shared/_ProgressBarControl.cshtml", progressBarModelObj); output.Content.SetHtmlContent(content); //return base.ProcessAsync(context, output); }
public async Task <double> GetMaxCountCategoriesAsync(ProgressBarModel loadingStatus) { var urlPast6Month = UrlCreator.GetUrl(DateTime.Today.AddDays(180)); var ratesPast6Month = await Parser.GetRatesOnDateAsync(loadingStatus, urlPast6Month); double maxRatesCount = ratesPast6Month.Rates.Where(rate => rate.Category != null).Count(); if (maxRatesCount == 0) { if (App.UserSettings.IsSoundOn) { SystemSounds.Exclamation.Play(); } _ = Task.Run(() => PopUpMessageHandler?.Invoke(this, new PopUpMessageArgs("Максимальное количество категорий не определено.\n" + "Процентное соотношение не будет отображено.", "Error"))); } return(maxRatesCount); }
public async Task <Result <CoverSampleResult> > GetMatrix( FileData fileData, double low, double high, IGroupingMethod groupMethod, double paramInput, double step, ProgressBarModel progressBarModel, Task waitRun) { var both = GetLowsAndHighs(low, high, step).ToArray(); var lows = both.AsParallel().Select(x => x.Item1).ToArray(); var highs = both.AsParallel().Select(x => x.Item2).ToArray(); var matrices = (await ComputeForEvery2(fileData, groupMethod, paramInput, highs, lows, progressBarModel, waitRun)).OrderByDescending(y => y.Grade).ToList(); var max = matrices.First(); var testMatrixRows = _coverMatrixClassificator.Classify(fileData.TestObjects, max.AttributesCovers, max.HighZeroColumns, max.LowZeroColumns); max.TestMatrix = new Core.Common.Items.MatrixFeatures.Matrix(testMatrixRows); var dataMatrix = _matrixToGridMatrix.TransformToDataTable(max.DataMatrix); var testMatrix = _matrixToGridMatrix.TransformToDataTable(max.TestMatrix); var result = new CoverSampleResult(max, matrices, fileData.FileName) { SLOW = low, SHIGH = high, SelecteMethod = groupMethod.MethodName, SelecteMethodParam = paramInput, STEP = step }; max.DataMatrix.DataTable = dataMatrix; max.TestMatrix.DataTable = testMatrix; DataObject.SchemeObject = null; return(new Result <CoverSampleResult>(result)); }
/// <summary> /// 生成汇总表以及插入图片 /// </summary> /// <param name="progressModel">进度条数据绑定模型</param> /// <param name="ImageWidth"></param> /// <param name="ImageHeight"></param> /// <param name="CompressImageFlag"></param> public void GenerateSummaryTableAndPictureTable(ref ProgressBarModel progressModel, bool CommentColumnInsertTable, double ImageWidth = 224.25, double ImageHeight = 168.75, int CompressImageFlag = 70) { progressModel.ProgressValue = 0; InsertSummaryWords(); progressModel.Content = "正在处理桥面系……"; InsertSummaryAndPictureTable(BridgeDeckBookmarkStartName, CompressImageFlag, _bridgeDeckListDamageSummary, ImageWidth, ImageHeight, CommentColumnInsertTable); progressModel.Content = "正在处理上部结构……"; progressModel.ProgressValue = 33; System.Threading.Thread.Sleep(500); InsertSummaryAndPictureTable(SuperSpaceBookmarkStartName, CompressImageFlag, _superSpaceListDamageSummary, ImageWidth, ImageHeight, CommentColumnInsertTable); progressModel.Content = "正在处理下部结构……"; progressModel.ProgressValue = 66; System.Threading.Thread.Sleep(500); InsertSummaryAndPictureTable(SubSpaceBookmarkStartName, CompressImageFlag, _subSpaceListDamageSummary, ImageWidth, ImageHeight, CommentColumnInsertTable); progressModel.ProgressValue = 100; progressModel.Content = "正在完成……"; }
public ActionResult ProgressBar() { decimal total; string goalName = "Total"; using (OrganizationRepository) { decimal totalGoal; if (organization.YtdGoal.HasValue && organization.YtdGoal > 0) { total = organization.CalculateTotalDonationsYTD(); totalGoal = organization.YtdGoal.Value; goalName = "Total YTD"; } else { total = organization.CalculateTotalDonations(); totalGoal = organization.CalculateGoalTotal(); } var percent = 0; if (totalGoal > 0) { percent = (total > totalGoal) ? 100 : (int) ((total / totalGoal) * 100); } var model = new ProgressBarModel { Amount = total, GoalAmount = totalGoal, Percent = percent, GoalName = goalName, DisplayTooltip = true }; return View("ProgressBar", model); } }
private async Task <IEnumerable <CoverResult> > ComputeForEvery2(FileData fileData, IGroupingMethod groupMethod, double paramInput, double[] highs, double[] lows, ProgressBarModel progressBarModel, Task waitRun) { progressBarModel.Progress = 0; var all = ( from highl in highs from lowl in lows select(highl, lowl) ) .ToArray(); progressBarModel.Progress = 1; var step = 97.00 / all.Length; var list = new ConcurrentBag <Task <CoverResult> >(); //var listr = new ConcurrentBag<CoverResult>(); var listOfGroupsOfDataObjects = groupMethod.GroupElementsBy(fileData.DataObjects, fileData.Attributes, paramInput).ToArray(); CountPositiveDecisions(fileData, listOfGroupsOfDataObjects); //var stopwatch = new Stopwatch(); //stopwatch.Start(); all .AsParallel() .ForAll(pair => { if (waitRun.IsCompleted) { return; } var cover = Compute( fileData, pair.Item1, pair.Item2, listOfGroupsOfDataObjects, progressBarModel, step); list.Add(cover); }); var result = await Task.WhenAll(list); return(result); // stopwatch.Stop(); // Debug.WriteLine(stopwatch.ElapsedTicks); // progressBarModel.Progress = 1; // stopwatch.Restart(); // foreach (var pair in all.AsParallel()) // { // var cover = // Compute( // fileData, // pair.Item1, // pair.Item2, // listOfGroupsOfDataObjects, // progressBarModel, // step); // list.Add(cover); // }; // await Task.WhenAll(list); // stopwatch.Stop(); // Debug.WriteLine(stopwatch.ElapsedTicks); // progressBarModel.Progress = 1; // stopwatch.Restart(); // foreach (var pair in all.AsParallel()) // { // var cover = // Compute( // fileData, // pair.Item1, // pair.Item2, // listOfGroupsOfDataObjects, // progressBarModel, // step); // listr.Add(await cover); // } // stopwatch.Stop(); // Debug.WriteLine(stopwatch.ElapsedTicks); // progressBarModel.Progress = 1; // stopwatch.Restart(); // all.AsParallel().ForAll(async pair => // { // var cover = // Compute( // fileData, // pair.Item1, // pair.Item2, // listOfGroupsOfDataObjects, // progressBarModel, // step); // listr.Add(await cover); // }); // stopwatch.Stop(); // Debug.WriteLine(stopwatch.ElapsedTicks); // progressBarModel.Progress = 1; // stopwatch.Restart(); // await Task.WhenAll(GetCoverTasks(fileData, progressBarModel, all, listOfGroupsOfDataObjects, step)); // stopwatch.Stop(); // Debug.WriteLine(stopwatch.ElapsedTicks); // return listr; }
public ActionResult ProgressBar(int id) { ProgressBarModel model; using (campaignRepository) { var campaign = campaignRepository.GetCampaignByID(id); if (campaign == null) { return HttpNotFound("The campaign you are looking for could not be found."); } var total = campaign.CalculateTotalDonations(); var percent = total > campaign.GoalAmount ? 100 : (int) ((total / campaign.GoalAmount) * 100); model = new ProgressBarModel { Amount = total, GoalAmount = campaign.GoalAmount, Percent = percent, GoalName = "Raised so far", DisplayTooltip = false }; } return View("ProgressBar", model); }
public async Task <Result <IEnumerable <FileContentResult> > > GetCoverSampleResult(CoverInputData data) { var method = _groupingManager.Value.GetGroupingMethods().FirstOrDefault(x => x.MethodName.Equals(data.MethodName)); if (method is null) { return(new Result <IEnumerable <FileContentResult> >(NieOdnalezionoPodanejMetodyGrupujacej)); } var progressBarModel = new ProgressBarModel(); var step = string.IsNullOrEmpty(data.Step) ? 0 : Convert.ToDouble(data.Step); var waitRun = Task.Run(() => { while (!data.Token.IsCancellationRequested) { } data.Token.ThrowIfCancellationRequested(); }, data.Token); var result = await _coverMatrixManager.Value.GetMatrix(data.InputData, data.DataLow, data.DataHigh, method, data.GroupParameter, step, progressBarModel, waitRun); if (data.Token.IsCancellationRequested) { data.Token.ThrowIfCancellationRequested(); } var dataTxt = $"{DateTime.Now.ToFileTimeUtc()}DataMatrixTxt.txt"; var testTxt = $"{DateTime.Now.ToFileTimeUtc()}TestTxt.txt"; var dataMatrixStream = _txtExporter.Value.GetTxtStream(result.Value.CoverResult.DataMatrix.DataTable); var testMatrixStream = _txtExporter.Value.GetTxtStream(result.Value.CoverResult.TestMatrix.DataTable); var excelName = $"{result.Value.FileName.Replace(" ", "").Replace(".", "").Replace('-', '_').ToUpper()}_SLOW_{result.Value.SLOW}_SHIGH_{result.Value.SHIGH}_STEP_{result.Value.STEP}_METHOD_{result.Value.SelecteMethod.Replace(' ', '_').ToUpper().Replace('Ó', 'O').Replace('Ś', 'S').Replace('Ć', 'C')}_PARAM_{result.Value.SelecteMethodParam}_GRADE_{result.Value.CoverResult.Grade}.xlsx"; var excelStream = _excelWriter.Value.ExportToStream( result.Value, result.Value.CoverResult.DataMatrix.DataTable, result.Value.CoverResult.TestMatrix.DataTable); if (excelStream.HasErrors()) { return(new Result <IEnumerable <FileContentResult> >(excelStream.Error)); } progressBarModel.Progress = 100; var array = new[] { new FileContentResult(testMatrixStream, "application/txt") { FileDownloadName = testTxt }, new FileContentResult(dataMatrixStream, "application/txt") { FileDownloadName = dataTxt }, new FileContentResult(excelStream.Value, "application/xlsx") { FileDownloadName = excelName } }; return(new Result <IEnumerable <FileContentResult> >(array)); }
public async Task <DateRates[]> GetRatesOnDatesAsync(ProgressBarModel loadingStatus, DateTime[] Dates) { var urlsList = Dates.Select(date => UrlCreator.GetUrl(date)).ToArray(); return(await Parser.GetRatesOnDatesAsync(loadingStatus, urlsList)); }
public ProgressBarControl() { _model = new ProgressBarModel(); DataContext = _model; InitializeComponent(); }
private async Task <Result <IEnumerable <FileContentResult> > > GetCoverSampleResult(InputData inputData) { try { var method = _groupingManager.GetGroupingMethods().FirstOrDefault(x => x.MethodName.Equals(inputData.MethodName)); if (method is null) { return(new Result <IEnumerable <FileContentResult> >(NieOdnalezionoPodanejMetodyGrupujacej)); } Thread.CurrentThread.IsBackground = true; _thread = Thread.CurrentThread; var progressBarModel = new ProgressBarModel(); var step = inputData.Step.HasValue ? Convert.ToDouble(inputData.Step) : 0; var source = new CancellationTokenSource(); var token = source.Token; var waitRun = Task.Run(() => { while (!token.IsCancellationRequested) { } token.ThrowIfCancellationRequested(); }, token); var result = await _coverMatrixManager.GetMatrix(inputData.File, inputData.Low, inputData.High, method, inputData.ParamInput, step, progressBarModel, waitRun); var dataTxt = DateTime.Now.ToFileTimeUtc() + "DataMatrixTxt.txt"; var testTxt = DateTime.Now.ToFileTimeUtc() + "TestTxt.txt"; var dataMatrixStream = _txtExportert.GetTxtStream(result.Value.CoverResult.DataMatrix.DataTable); var testMatrixStream = _txtExportert.GetTxtStream(result.Value.CoverResult.TestMatrix.DataTable); var excelName = $"{result.Value.FileName.Replace(" ", "").Replace(".", "").Replace('-', '_').ToUpper()}_SLOW_{result.Value.SLOW}_SHIGH_{result.Value.SHIGH}_STEP_{result.Value.STEP}_METHOD_{result.Value.SelecteMethod.Replace(' ', '_').ToUpper().Replace('Ó', 'O').Replace('Ś', 'S').Replace('Ć', 'C')}_PARAM_{result.Value.SelecteMethodParam}_GRADE_{result.Value.CoverResult.Grade}.xlsx"; var excelStream = _excelWriter.ExportToStream( result.Value, result.Value.CoverResult.DataMatrix.DataTable, result.Value.CoverResult.TestMatrix.DataTable); if (excelStream.HasErrors()) { return(new Result <IEnumerable <FileContentResult> >(excelStream.Error)); } progressBarModel.Progress = 100; var array = new[] { File(testMatrixStream, "application/txt", testTxt), File(dataMatrixStream, "application/txt", dataTxt), File(excelStream.Value, "application/xlsx", excelName) }; return(new Result <IEnumerable <FileContentResult> >(array)); } catch (ThreadAbortException e) { return(new Result <IEnumerable <FileContentResult> >(e.Message)); } catch (OperationCanceledException e) { return(new Result <IEnumerable <FileContentResult> >(e.Message)); } catch (Exception e) { return(new Result <IEnumerable <FileContentResult> >(e.Message)); } finally { GC.Collect(); GC.WaitForPendingFinalizers(); } }