Exemple #1
0
        protected async Task HandleValidSubmit()
        {
            try
            {
                CalculationStatus = new CalculationStatusViewModel();
                IsCalculating     = true;

                var jobId = await CalculatorService.StartCalculation(CalculationRequest);

                await Task.Run(() => // TODO: make it cancelable !
                {
                    CalculationResponse statusObject;
                    do
                    {
                        statusObject               = CalculatorService.GetCalculationStatus(jobId).Result;
                        CalculationStatus.Status   = statusObject.Status.ToString();
                        CalculationStatus.Progress = $"{ statusObject.Progress } %";
                        InvokeAsync(() => StateHasChanged());
                    } while (statusObject.Status == Models.CalculationStatus.Running);

                    if (statusObject.Status == Models.CalculationStatus.Completed)
                    {
                        CalculationStatus.Outcome = statusObject.Outcome;
                    }
                });
            }
            finally
            {
                IsCalculating = false;
                StateHasChanged();
            }
        }
Exemple #2
0
 public CalculatorPageBase()
 {
     CalculationRequest = new CalculationRequest();
     CalculationStatus  = new CalculationStatusViewModel();
 }