Răsfoiți Sursa

refactor code.

Justin 1 an în urmă
părinte
comite
cf347825f6
1 a modificat fișierele cu 51 adăugiri și 39 ștergeri
  1. 51 39
      StationProbe/ProbeTask.cs

+ 51 - 39
StationProbe/ProbeTask.cs

@@ -449,40 +449,66 @@ namespace StationProbe
             }
         }
 
-        public override async Task<ElementCollection> ExecuteAsync(ElementCollection inputs)
+        private async Task<List<string>> GetImageUrlsAsync(IPage page)
         {
-            var page = inputs[ElementType.Page].As<IPage>();
-            //var frame = inputs[ElementType.Frame].As<IFrame>();
-            if (page != null) //&& frame != null)
+            //Get all image urls.
+            var imageUrls = new List<string>();
+            await using (var backButtonElement = await page.WaitForSelectorAsync("button[class=\"btn fix-item feedback-common-button\"]"))
             {
-                var examId = Guid.NewGuid().ToString("N");
-                //First time enter exam.
-                await EnterExamAsync(page);
-                //wait for page loaded.
-                await Task.Delay(1000);
-                //Get all image urls.
-                var imageUrls = new List<string>();
-                await using (var backButtonElement = await page.WaitForSelectorAsync("button[class=\"btn fix-item feedback-common-button\"]"))
+                var imageDivElements = await page.QuerySelectorAllAsync("div[class=\"bb-img is-preview\"]");
+                if (imageDivElements != null)
                 {
-                    var imageDivElements = await page.QuerySelectorAllAsync("div[class=\"bb-img is-preview\"]");
-                    if (imageDivElements != null)
+                    foreach (var imageDivElement in imageDivElements)
                     {
-                        foreach (var imageDivElement in imageDivElements)
+                        await using (var imageElement = await imageDivElement.QuerySelectorAsync("img"))
                         {
-                            await using (var imageElement = await imageDivElement.QuerySelectorAsync("img"))
+                            await using (var imageUrl = await imageElement.GetPropertyAsync("src"))
                             {
-                                await using (var imageUrl = await imageElement.GetPropertyAsync("src"))
-                                {
-                                    var url = await imageUrl.JsonValueAsync<string>();
-                                    imageUrls.Add(url);
-                                }
+                                var url = await imageUrl.JsonValueAsync<string>();
+                                imageUrls.Add(url);
                             }
-                            await imageDivElement.DisposeAsync();
                         }
+                        await imageDivElement.DisposeAsync();
+                    }
+                }
+            }
+            Logger.WriteLine($"Get image url count:{imageUrls.Count}");
+            return imageUrls;
+        }
+
+        private async Task<string> GetReportAsync(IPage page)
+        {
+            var report = "";
+            var reportElements = await page.QuerySelectorAllAsync("div[class=\"col\"]");
+            foreach (var reportElement in reportElements)
+            {
+                await using (var strong = await reportElement.QuerySelectorAsync("strong"))
+                {
+                    if (strong != null)
+                    {
+                        var content = await page.EvaluateFunctionAsync<string>("(element) => element.textContent", strong);
+                        report += " " + content;
                     }
                 }
-                Logger.WriteLine($"Get image url count:{imageUrls.Count}");
+                await reportElement.DisposeAsync();
+            }
+            Logger.WriteLine($"Get report:{report}");
+            return report;
+        }
 
+        public override async Task<ElementCollection> ExecuteAsync(ElementCollection inputs)
+        {
+            var page = inputs[ElementType.Page].As<IPage>();
+            //var frame = inputs[ElementType.Frame].As<IFrame>();
+            if (page != null) //&& frame != null)
+            {
+                var examId = Guid.NewGuid().ToString("N");
+                //First time enter exam.
+                await EnterExamAsync(page);
+                //wait for page loaded.
+                await Task.Delay(1000);
+                
+                var imageUrls = await GetImageUrlsAsync(page);
                 for (var i = 0; i < imageUrls.Count; i++)
                 {
                     await SaveExamImageAsync(page, examId, i, imageUrls[i]);
@@ -501,21 +527,7 @@ namespace StationProbe
                 var patientAge = 0;
                 //var examDate = DateTime.Now;
 
-                var report = "";
-                var reportElements = await page.QuerySelectorAllAsync("div[class=\"col\"]");
-                foreach (var reportElement in reportElements)
-                {
-                    await using (var strong = await reportElement.QuerySelectorAsync("strong"))
-                    {
-                        if (strong != null)
-                        {
-                            var content = await page.EvaluateFunctionAsync<string>("(element) => element.textContent", strong);
-                            report += " " + content;
-                        }
-                    }
-                    await reportElement.DisposeAsync();
-                }
-                Logger.WriteLine($"Get report:{report}");
+                var report = await GetReportAsync(page);
 
                 //Save exam.
                 var exam = new Exam()
@@ -534,7 +546,7 @@ namespace StationProbe
                 };
                 _examStore.AddExam(exam);
 
-                //Back to page.
+                //Back to examl list page.
                 await ExitExamAsync(page);
 
                 if (DebugMode)