public async Task <WebPageModel> DownloadWebPageAsync(string webPageUrl)
        {
            WebPageModel webPageModel = new WebPageModel();

            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();

            webPageModel.StartDate = DateTime.UtcNow;
            webPageModel.Url       = webPageUrl;

            try
            {
                HttpResponseMessage response = await _client.GetAsync(webPageUrl);

                string content = await response.Content.ReadAsStringAsync();

                webPageModel.DataLength            = content.Length;
                webPageModel.Content               = content;
                webPageModel.IsOperationSuccessful = true;
            }
            catch (HttpRequestException e)
            {
                webPageModel.IsOperationSuccessful = false;
                webPageModel.Error = e.Message;
            }

            stopwatch.Stop();
            webPageModel.ElapsedTime = stopwatch.ElapsedMilliseconds;
            webPageModel.EndDate     = webPageModel.StartDate.AddMilliseconds(webPageModel.ElapsedTime);

            return(webPageModel);
        }
예제 #2
0
        public void ReportWebPageInfoStringBuilder(WebPageModel data)
        {
            string content = data.Content;

            WrapperUI wrapperUI = new WrapperUI();

            try
            {
                if (content.Length < 30)
                {
                    content = data.Content?.Trim().Replace(Environment.NewLine, string.Empty).Substring(0, content.Length);
                }
                else
                {
                    content = data.Content?.Trim().Replace(Environment.NewLine, string.Empty).Substring(0, 30);
                }
            }
            catch (ArgumentOutOfRangeException e)
            {
                data.IsOperationSuccessful = false;
                data.Error = e.Message;
            }

            StringBuilder output = new StringBuilder();

            output.AppendLine("---------------------------------------------------------");
            output.AppendLine($" {data.Url}");
            output.AppendLine($" Data Length = {data.DataLength}");
            output.AppendLine($" Elapsed Time = {data.ElapsedTime}");
            output.AppendLine($" Task started and completed: {data.StartDate.ToString("HH:mm:ss.fff")}  -- {data.EndDate.ToString("HH:mm:ss.fff")}");

            if (data.IsOperationSuccessful == true)
            {
                output.AppendLine($" First 30 elements of content:\n{content}");
            }
            else
            {
                output.AppendLine($" Error Message = {data.Error}");
            }

            output.AppendLine("\n---------------------------------------------------------");
            wrapperUI.ShowMessage(output.ToString());
        }