public async Task <ActionResult> ParsePage(string url)
        {
            if (string.IsNullOrEmpty(url))
            {
                return(BadRequest("Invalid Argument Exception. Please, provide a link in the query string"));
            }

            ResponseHttp responseHttp;
            Uri          uri = new UriBuilder(url).Uri;

            try
            {
                responseHttp = await _httpRequest.SendAsync(uri);
            }
            catch (HttpRequestException ex)
            {
                return(BadRequest("The site cannot be reached"));
            }
            SiteDetails parsingResult;

            try
            {
                parsingResult = _parser.ParseHTML(responseHttp.Body);
            }
            catch (Exception ex)
            {
                return(BadRequest("Error was occurred when the site was parsed"));
            }

            ParsedSiteDTO result = new ParsedSiteDTO
            {
                Uri         = uri.AbsoluteUri,
                Title       = parsingResult.Title,
                Description = parsingResult.Description,
                HeadersH1   = parsingResult.HeadersH1,
                Images      = parsingResult.Images.imageLinksToAbsoluteLinks(responseHttp.ResponseUri),
                Links       = parsingResult.Links.RelativeToAbsoluteLinks(responseHttp.ResponseUri),

                ResponseTime   = responseHttp.TimeToFirstByte,
                ServerResponse = new ServerResponseDTO
                {
                    Code        = (int)responseHttp.Status.Code,
                    Description = responseHttp.Status.Description
                }
            };

            _parsedRepository.Add(result);
            //Notify client to update history
            await _socketManager.SendMessageToAllAsync(string.Format("{{event: ItemAdded, id: {0} }}", result.Id));

            return(Ok(result));
        }
        public async Task <ActionResult> Add([FromBody] ParsedSiteDTO data)
        {
            if (data == null)
            {
                return(BadRequest("Invalid argument exception"));
            }
            _parsedRepository.Add(data);

            //Notify client to update history
            await _socketManager.SendMessageToAllAsync(string.Format("{{event: ItemAdded, id: {0} }}", data.Id));

            return(Created($"/api/history/{data.Id}", data));
        }