Beispiel #1
0
        public async Task <HttpResponseMessage> GetWebScanResult([FromUri] string url = null, [FromUri] int threads = 1, [FromUri] string text = null, [FromUri] int pages = 10)
        {
            ScannerService scannerService = new ScannerService();

            try
            {
                if (string.IsNullOrEmpty(url))
                {
                    throw new ArgumentNullException(nameof(url));
                }

                if (string.IsNullOrEmpty(text))
                {
                    throw new ArgumentNullException(nameof(text));
                }
                if (pages > 100)
                {
                    throw new ArgumentNullException(nameof(pages));
                }
                var result = await Task.Run(() => scannerService.ScrapSite(url, threads, text, pages));

                return(Request.CreateResponse(HttpStatusCode.OK, result));
            }
            catch (ArgumentNullException ex)
            {
                return(ex.HandleException(HttpStatusCode.BadRequest));
            }
            catch (Exception ex)
            {
                return(ex.HandleException(HttpStatusCode.InternalServerError));
            }
        }