コード例 #1
0
        public async Task CancellingTest()
        {
            var cts = new CancellationTokenSource();

            cts.CancelAfter(10);
            var data = await ExportData.FromGoogleSheet <SamplesSetModel>("https://docs.google.com/spreadsheets/d/1c7c-mlEbANl0Fszxj1ITaTwexJb-Z9KbAWChX_1aCk8/edit#gid=0", cts.Token);
        }
コード例 #2
0
 public async Task LinkWoSharedAccessParsingTest()
 {
     var data = await ExportData.FromGoogleSheet <SamplesSetModel>("https://docs.google.com/spreadsheets/d/1c7c-mlEbANl0Fszxj1ITaTwexJb-Z9KbAWChX_1aCk8/edit#gid=0", new System.Threading.CancellationToken());
 }
コード例 #3
0
 public async Task EmptyLinkParsingTest()
 {
     var data = await ExportData.FromGoogleSheet <SamplesSetModel>("", new System.Threading.CancellationToken());
 }
コード例 #4
0
 public async Task WrongLinkParsingTest()
 {
     var data = await ExportData.FromGoogleSheet <SamplesSetModel>("https://regata.jinr.ru", new System.Threading.CancellationToken());
 }
コード例 #5
0
        private async void ExportFromGoogleButton_Click(object sender, EventArgs e)
        {
            FooterStatusProgressBar.Value = 0;
            FooterStatusLabel.Text        = _labels.GetLabel("InitialExport");

            if (Data.Any())
            {
                var res = MessageBox.Show(_labels.GetLabel("DeleteFromDB"), _labels.GetLabel("HelpCaptionPromt"), MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
                if (res == DialogResult.No)
                {
                    return;
                }
                _ic.Samples.RemoveRange(Data);
            }

            Data.Clear();
            var result = "";

            using (Prompt prompt = new Prompt(_labels.GetLabel("HelpMessagePromt"), _labels.GetLabel("HelpCaptionPromt")))
            {
                result = prompt.Result;
            }

            if (string.IsNullOrEmpty(result))
            {
                FooterStatusLabel.Text = "";
                return;
            }

            var _cancellationTokenSource = new CancellationTokenSource();

            _cancellationTokenSource.CancelAfter(TimeSpan.FromSeconds(TimeOutSeconds));

            try
            {
                var samples = await ExportData.FromGoogleSheet <Sample>(result, _cancellationTokenSource.Token);

                FooterStatusProgressBar.Maximum = samples.Length;
                foreach (var l in samples)
                {
                    if (string.IsNullOrEmpty(l.A_Client_Sample_ID))
                    {
                        break;
                    }
                    l.F_Country_Code     = SetKey.Split('-')[0];
                    l.F_Client_Id        = SetKey.Split('-')[1];
                    l.F_Year             = SetKey.Split('-')[2];
                    l.F_Sample_Set_Id    = SetKey.Split('-')[3];
                    l.F_Sample_Set_Index = SetKey.Split('-')[4];
                    l.A_Sample_ID        = (Array.IndexOf(samples, l) + 1).ToString("d2");
                    Data.Add(l);
                    FooterStatusProgressBar.Value++;
                }
                FooterStatusProgressBar.Value = FooterStatusProgressBar.Maximum;
                FooterStatusLabel.Text        = _labels.GetLabel("SuccessExport");
                await _ic.Samples.AddRangeAsync(Data);

                //await _ic.SaveChangesAsync();
            }
            catch (NullReferenceException nre)
            {
                MessageBoxTemplates.WrapExceptionToMessageBox(new ExceptionEventsArgs()
                {
                    exception = nre, Level = ExceptionLevel.Error
                });
            }
            catch (OperationCanceledException)
            {
                FooterStatusLabel.Text = _labels.GetLabel("ExportCancelledByTimeout");
            }
            catch (AggregateException ae)
            {
                foreach (var ie in ae.InnerExceptions)
                {
                    MessageBoxTemplates.WrapExceptionToMessageBox(new ExceptionEventsArgs()
                    {
                        exception = ie, Level = ExceptionLevel.Error
                    });
                }
            }
            catch (Exception ex)
            {
                MessageBoxTemplates.WrapExceptionToMessageBox(new ExceptionEventsArgs()
                {
                    exception = ex, Level = ExceptionLevel.Error
                });
            }
            finally
            {
                _cancellationTokenSource.Dispose();
            }
        }