public URL InsertNewURL(URL urldata)
        {
            if (IsAliasExistsForThisOriginalURL(urldata))
            {
                urldata.Status = Status.AliasExists;
            }
            else
            {
                if (IsAlreadyShortened(urldata))
                {
                    urldata.Status = Status.URLExists;
                    urldata.Id = GetIdByOriginalURL(urldata.Original).Id;
                }
                else
                {
                    urldata.Status = Status.NewURL;

                    if (urldata.Id == String.Empty)
                        urldata.Id = AlphabetTest.Encode(urlDataSet.GetNextId());

                    urlDataSet.PersistUrl(urldata);
                }
            }

            return urldata;
        }
        public bool AliasExists(URL urldata)
        {
            if (String.IsNullOrEmpty(urldata.Id))
                return false;

            return (from element in urlDataSet.Descendants("url")
                    where element.Attribute("id").Value == urldata.Id
                    select element.Attribute("id").Value).Count() > 0;
        }
 private bool IsAlreadyShortened(URL urldata)
 {
     return urlDataSet.OriginalUrlExists(urldata);
 }
 private bool IsAliasExistsForThisOriginalURL(URL urldata)
 {
     return urlDataSet.AliasExists(urldata);
 }
 public ActionResult Default(URL url)
 {
     return View(url);
 }
 public ActionResult Create(URL url)
 {
     return View(url);
 }
 public ActionResult Copy(URL url)
 {
     return View(url);
 }
        public void PersistUrl(URL urldata)
        {
            var doc = urlDataSet;
            var root = new XElement("url");
            root.Add(new XAttribute("original", urldata.Original));
            root.Add(new XAttribute("id", urldata.Id));
            root.Add(new XAttribute("created", urldata.Created));
            root.Add(new XAttribute("createdby", urldata.CreatedBy));
            root.Add(new XAttribute("hits", urldata.Hits));
            doc.Element("root").Add(root);

            var nextIdValue = GetNextId() + 1;
            doc.Root.SetAttributeValue("nextIdValue", nextIdValue);

            doc.Save(xmlFile);
        }
 public bool OriginalUrlExists(URL urldata)
 {
     return (from element in urlDataSet.Descendants("url")
             where element.Attribute("original").Value == urldata.Original
             select element.Attribute("original").Value).Count() > 0;
 }