Example #1
0
        public void SetPostData(UrlForm form)
        {
            var postText =
                String.Join("&"
                            , form.Select(x => x.Key + "=" + x.Value));

            SetPostData(Encoding.ASCII.GetBytes(postText));
        }
Example #2
0
        public async Task <IActionResult> Edit(UrlForm url)
        {
            url.ShortUrl = GenerateShortURL();

            context.Form.Update(url);
            await context.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
Example #3
0
        public async Task <IActionResult> CheckURL(string url)
        {
            UrlForm form = await context.Form.FirstOrDefaultAsync(p => p.LongUrl == url);

            if (form != null)
            {
                return(Json(data: $"This URL: {url} already exists."));
            }
            return(Json(true));
        }
Example #4
0
        //generate new URL
        public UrlForm GenerateUrl(string longUrl)
        {
            UrlForm url = new UrlForm()
            {
                LongUrl      = longUrl,
                ShortUrl     = GenerateShortURL(),
                CreationDate = date,
                CountOfClics = 0
            };

            return(url);
        }
Example #5
0
        public async Task <IActionResult> ConfirmDelete(int?id)
        {
            if (id != null)
            {
                UrlForm form = await context.Form.FirstOrDefaultAsync(p => p.ID == id);

                if (form != null)
                {
                    return(View(form));
                }
            }
            return(NotFound());
        }
Example #6
0
        public async Task <IActionResult> CounterClickLink(int?id)
        {
            UrlForm form = await context.Form.FirstOrDefaultAsync(p => p.ID == id);

            if (form != null)
            {
                form.CountOfClics++;

                context.Form.Update(form);
                await context.SaveChangesAsync();
            }

            return(RedirectToAction("Index"));
        }
        public async Task <IActionResult> Path()
        {
            string link = $"{this.Request.Scheme}://{this.Request.Host}{Request.Path}";

            UrlForm form = await context.Form.FirstOrDefaultAsync(p => p.ShortUrl == link);

            if (form != null)
            {
                return(Redirect(form.LongUrl));
            }
            else
            {
                return(NotFound());
            }
        }
Example #8
0
        public async Task <IActionResult> Delete(int?id)
        {
            if (id != null)
            {
                UrlForm form = await context.Form.FirstOrDefaultAsync(p => p.ID == id);

                if (form != null)
                {
                    context.Form.Remove(form);
                    await context.SaveChangesAsync();

                    return(RedirectToAction("Index"));
                }
            }
            return(NotFound());
        }
Example #9
0
        public async Task <IActionResult> Create([Bind("LongUrl")] CreateForm url)
        {
            UrlForm form = await context.Form.FirstOrDefaultAsync(p => p.LongUrl == url.LongUrl);

            if (form != null)
            {
            }
            else if (ModelState.IsValid)
            {
                UrlForm newForm = GenerateUrl(url.LongUrl);

                context.Form.Add(newForm);
                await context.SaveChangesAsync();
            }
            return(RedirectToAction("Index"));
        }
Example #10
0
 public IActionResult GetDocumentByUrl([FromBody] UrlForm data)
 {
     try
     {
         var request = WebRequest.Create(data.Url);
         request.Method = "GET";
         using (var responce = request.GetResponse())
             using (var stream = responce.GetResponseStream())
                 using (var reader = new StreamReader(stream))
                 {
                     var content = reader.ReadToEnd();
                     var d       = _generator.ConvertJsonToPdf(content);
                     var id      = _storage.SaveDocument(d);
                     return(Ok(new
                     {
                         id,
                         error = (string)null
                     }));
                 }
     }
     catch (WebException e)
     {
         return(Ok(new
         {
             id = (string)null,
             error = "WebException"
         }));
     }
     catch (DocumentGenerationException e)
     {
         return(Ok(new
         {
             id = (string)null,
             error = "GenerationError"
         }));
     }
     catch (Exception e)
     {
         _log.Error("Unknown exception", e);
         return(Ok(new
         {
             id = (string)null,
             error = "UnknownException"
         }));
     }
 }