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); }
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()); }