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);
        }
Пример #2
0
        public async Task <DateRates> GetRatesOnDateAsync(ProgressBarModel progressBar, UrlModel url)
        {
            var domDocument = await GetDomPageAsync(url.Link);

            progressBar.Value += 1;
            return(GetDateRates(domDocument, url));
        }
Пример #3
0
 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; };
 }
Пример #4
0
 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();
 }
Пример #6
0
        /// <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       = "正在完成……";
        }
Пример #7
0
        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();
        }
Пример #8
0
 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;
        }
Пример #11
0
        /// <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);
        }
Пример #12
0
 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;
 }
Пример #13
0
        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();
            }
        }
Пример #14
0
        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();
        }
Пример #15
0
        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);
        }
Пример #16
0
        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));
        }
Пример #18
0
        /// <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       = "正在完成……";
        }
Пример #19
0
        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;
        }
Пример #21
0
        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);
        }
Пример #22
0
        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));
        }
Пример #23
0
        public async Task <DateRates[]> GetRatesOnDatesAsync(ProgressBarModel loadingStatus, DateTime[] Dates)
        {
            var urlsList = Dates.Select(date => UrlCreator.GetUrl(date)).ToArray();

            return(await Parser.GetRatesOnDatesAsync(loadingStatus, urlsList));
        }
Пример #24
0
 public ProgressBarControl()
 {
     _model      = new ProgressBarModel();
     DataContext = _model;
     InitializeComponent();
 }
Пример #25
0
        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();
            }
        }