Esempio n. 1
0
        public IActionResult Post([FromBody] Link link)
        {
            var getLink = db.Links.Where(x => x.LongLink == link.LongLink).FirstOrDefault();

            if (getLink == null)
            {
                //простейший прототип построения осмысленной короткой ссылки
                if (link.LongLink[0] == 'h')
                {
                    int firstChar = link.LongLink.IndexOf('/') + 1;
                    link.ShortLink = link.LongLink.Substring(firstChar + 1);
                    if (link.ShortLink.IndexOf('/') != -1)
                    {
                        link.ShortLink = link.ShortLink.Substring(0, link.ShortLink.IndexOf('/'));
                    }
                }
                if (link.ShortLink.IndexOf("www.") != -1)
                {
                    link.ShortLink = link.ShortLink.Substring(4);
                }
                link.ShortLink = link.ShortLink.Substring(0, link.ShortLink.LastIndexOf('.'));
                char newChar = link.ShortLink[0].ToString().ToUpper()[0];
                link.ShortLink = newChar + link.ShortLink.Substring(1);


                var newLink = new Link(link.LongLink, link.ShortLink, link.Tag, link.Discount);
                db.Add(newLink);
                db.SaveChanges();
                return(Ok(newLink));
            }
            else
            {
                return(Ok(getLink));
            }
        }