Ejemplo n.º 1
0
        public Task InsertLink(LinkModel link)
        {
            var sql = @"insert into links (url, name, description)
                values (@Url, @Name, @Description);";

            return(_db.SaveData(sql, link));
        }
Ejemplo n.º 2
0
        public void adjustLinkViewAtCurrentScript(LinkModel linkModel, bool isOutgoingLink)
        {
            ScriptTabPage tabPage      = (ScriptTabPage)scriptsTabControl.SelectedTab;
            ScriptCanvas  scriptCanvas = tabPage.TheScriptCanvas;

            scriptCanvas.setDataByLinkModel(linkModel, isOutgoingLink);
        }
Ejemplo n.º 3
0
        public void Insert(LinkModel link)
        {
            SqlConnection connection = new SqlConnection(GetConnectionString());

            try
            {
                connection.Open();

                SqlCommand command = new SqlCommand();
                command.Connection  = connection;
                command.CommandType = System.Data.CommandType.StoredProcedure;
                command.CommandText = "Links_Insert";
                command.Parameters.AddWithValue("@LinkAddress", link.linkAddress);
                command.Parameters.AddWithValue("@LinkName", link.linkName);
                command.Parameters.AddWithValue("@PLevel", link.pLevel);

                command.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
            }
            finally
            {
                connection.Close();
            }
        }
Ejemplo n.º 4
0
        public ActionResult EditLink(LinkModel link)
        {
            LinkEntity linkEntity       = (LinkEntity)link;
            LinkEntity editedLinkEntity = _linksRepository.Edit(linkEntity);

            return(Json(editedLinkEntity));
        }
Ejemplo n.º 5
0
        private SessionModel DecorateTopicsResponse(Session session)
        {
            var sessionModel    = new SessionModel();
            var collectionModel = new CollectionModel();
            var lstItemsModel   = new List <ItemsModel>();

            foreach (var topic in session.TopicDetails)
            {
                var itemModel = new ItemsModel
                {
                    Href = _linkGenerator.GetUriByRouteValues(HttpContext, "GetTopicById", new { id = topic.TopicId })
                };
                var lstDataModel = new List <DataModel>();
                var lstLinkModel = new List <LinkModel>();
                var datamodel    = new DataModel
                {
                    Name  = _appSettings.Title,
                    Value = topic.Details
                };
                lstDataModel.Add(datamodel);
                var linkmodel = new LinkModel
                {
                    Href = _linkGenerator.GetUriByRouteValues(HttpContext, "GetTopicforSession", new { id = topic.TopicId }),
                    Rel  = _appSettings.SesssionLink
                };
                lstLinkModel.Add(linkmodel);
                itemModel.Data  = lstDataModel;
                itemModel.Links = lstLinkModel;
                lstItemsModel.Add(itemModel);
            }
            collectionModel.Items   = lstItemsModel;
            collectionModel.Version = _appSettings.SupportedVersion;
            sessionModel.Collection = collectionModel;
            return(sessionModel);
        }
Ejemplo n.º 6
0
        public IActionResult Create(LinkModel model)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            if (!ModelState.IsValid)
            {
                ModelState.AddModelError("Error", "Invalid data");
                return(View(model));
            }
            model.Order = Database.Links.Count();

            if (Database.Links.Any(i => i.Name == model.Name))
            {
                ModelState.AddModelError("Error", $"Link '{model.Name}' is already exists");
                return(View(model));
            }

            Database.Links.Add(model);
            Database.SaveChanges();

            return(RedirectToAction("Index"));
        }
        public async Task <int> SaveLinkModel(LinkModel linkModel, string operationId)
        {
            LoggingService.Trace("Querying LinksDatabase.SaveLinkModel");

            var databaseConnection = await GetDatabaseConnection <LinkDatabaseModel>().ConfigureAwait(false);

            var dbLock = databaseConnection.GetConnection().Lock();

            try
            {
                var linkDatabaseModel = LinkDatabaseModel.ToLinkDatabaseModel(linkModel);
                linkDatabaseModel.OpId = operationId;

                databaseConnection.GetConnection().InsertOrReplaceWithChildren(linkDatabaseModel);

                return(0);
            }
            catch (Exception e)
            {
                LoggingService.Error(e, "Error Querying LinksDatabase.SaveLinkModel");

                return(1);
            }
            finally
            {
                dbLock.Dispose();
            }
        }
Ejemplo n.º 8
0
        public async Task <IActionResult> Create([Bind("Original")] LinkModel model)
        {
            if (ModelState.IsValid)
            {
                // User is logged in.
                IdentityUser user = await _userManager.GetUserAsync(User);

                if (user == null)
                {
                    return(View(model));
                }

                // Check if user already created this url.
                LinkModel link = _linkRepo.GetLinkByOriginalForUser(model.Original, user.Id);
                if (link != null)
                {
                    ModelState.AddModelError(String.Empty, "You have already created a Short link for this url.");
                    return(View(model));
                }

                model.OwnerId = user.Id;

                _linkRepo.Add(_random, model);
                return(RedirectToAction(nameof(Details), new { id = model.ID }));
            }
            return(View());
        }
Ejemplo n.º 9
0
        private static List <LinkModel> GenerateSubItems(HttpContextBase context)
        {
            List <LinkModel> result = new List <LinkModel>();
            var curPage             = context.Request.RawUrl;

            foreach (var url in StaticData.NavBarData.Keys)
            {
                LinkModel model = new LinkModel();
                model.Text    = StaticData.NavBarData[url];
                model.Url     = url;
                model.Active  = "";
                model.Enabled = "";
                if (url.Contains("appAddons"))
                {
                    model.Enabled = "disabled";
                    model.Url     = "";
                }
                if (curPage == url)
                {
                    model.Active = "active";
                }
                result.Add(model);
            }
            return(result);
        }
        public async Task <IHttpActionResult> Upload()
        {
            var file = HttpContext.Current.Request.Files.Count > 0 ? HttpContext.Current.Request.Files[0] : null;

            var upload = new UploadSong();

            if (file != null)
            {
                UploadSongResult result = await upload.UploadFileSong(file);

                if (!String.IsNullOrEmpty(result.Error))
                {
                    ModelState.AddModelError("Upload", result.Error);
                    return(BadRequest(ModelState));
                }

                var link = new LinkModel
                {
                    Id       = result.Id,
                    OwnerId  = User.Identity.GetUserId(),
                    MimeType = result.MimeType
                };
                return(Ok(link));
            }
            else
            {
                ModelState.AddModelError("FileError", "File was not received by the server");
                return(BadRequest(ModelState));
            }
        }
Ejemplo n.º 11
0
        public ActionResult LinkBlock()
        {
            var    links    = _linkService.Value.GetAllLinks(_services.WorkContext.WorkingLanguage.Id, _services.SiteContext.CurrentSite.Id, 0, 20);
            string cacheKey = ModelCacheEventConsumer.LINK_MODEL_KEY.FormatInvariant(_services.WorkContext.WorkingLanguage.Id, _services.SiteContext.CurrentSite.Id);

            var result = _services.Cache.Get(cacheKey, () =>
            {
                var model = new LinkModel();

                foreach (var item in links)
                {
                    var linkBlck     = new LinkBlockModel();
                    linkBlck.Name    = item.Name;
                    linkBlck.Intro   = item.Intro;
                    linkBlck.IsHome  = item.IsHome;
                    linkBlck.SortId  = item.SortId;
                    linkBlck.LogoUrl = item.LogoUrl;
                    linkBlck.LinkUrl = item.LinkUrl;
                    if (item.PictureId.HasValue)
                    {
                        linkBlck.DefaultPictureModel = new PictureModel()
                        {
                            PictureId        = item.PictureId.GetValueOrDefault(),
                            FullSizeImageUrl = _pictureService.Value.GetPictureUrl(item.PictureId.GetValueOrDefault()),
                            ImageUrl         = _pictureService.Value.GetPictureUrl(item.PictureId.GetValueOrDefault(), _mediaSettings.DetailsPictureSize),
                        };
                    }
                    model.LinkBlocks.Add(linkBlck);
                }
                return(model);
            });

            return(PartialView(result));
        }
Ejemplo n.º 12
0
        private void InitializeDiagram()
        {
            var node1 = NewNode(50, 80);
            var node2 = NewNode(200, 350);
            var node3 = NewNode(400, 100);

            _diagram.Nodes.Add(new[] { node1, node2, node3 });

            var link1 = new LinkModel(node1.GetPort(PortAlignment.Right), node2.GetPort(PortAlignment.Left))
            {
                PathGenerator = PathGenerators.Straight,
                Segmentable   = true
            };

            link1.Labels.Add(new LinkLabelModel(link1, "Content"));
            link1.Vertices.Add(new LinkVertexModel(link1, new Point(221, 117)));
            link1.Vertices.Add(new LinkVertexModel(link1, new Point(111, 291)));

            var link2 = new LinkModel(node2.GetPort(PortAlignment.Right), node3.GetPort(PortAlignment.Left))
            {
                PathGenerator = PathGenerators.Smooth, // default
                Segmentable   = true
            };

            link2.Labels.Add(new LinkLabelModel(link2, "Content"));
            link2.Vertices.Add(new LinkVertexModel(link2, new Point(400, 324)));
            link2.Vertices.Add(new LinkVertexModel(link2, new Point(326, 180)));

            _diagram.Links.Add(new[] { link1, link2 });
        }
Ejemplo n.º 13
0
        private void AddNodeToMatrix(string key)
        {
            var values = new ObservableCollection <LinkModel>();

            foreach (NodeModel node in myDiagram.Model.NodesSource)
            {
                var linkModel = new LinkModel(key, node.Key, "")
                {
                    model = myDiagram.Model as GraphLinksModel <NodeModel, string, string, LinkModel>
                };
                //linkModel.LinkChangedHandler += LinkChanged;
                values.Add(linkModel);
            }

            foreach (var line in matrixData)
            {
                line.Values.Add(new LinkModel(line.Heading, key, "")
                {
                    model = myDiagram.Model as GraphLinksModel <NodeModel, string, string, LinkModel>
                });
            }

            matrixData.Add(new Line()
            {
                Heading  = key,
                Values   = values,
                Position = getNodeIndex(key, myDiagram.Model.NodesSource)
            });
        }
Ejemplo n.º 14
0
        protected void btnSave_Click(object sender, EventArgs e)
        {
            if (this.Action == "add")
            {
                LinkModel info = new LinkModel();
                info.possymbol  = possymbol;
                info.includepic = this.txtincludepic.Text.Trim();
                info.linkurl    = this.txtlinkurl.Text.Trim();
                info.orderno    = Int32.Parse(this.txtorderno.Text.Trim());
                info.linkname   = this.txttitle.Text.Trim();
                info.createtime = DateTime.Now;

                LinkFactory.Add(info);

                ClientScript.RegisterStartupScript(this.GetType(), "AddEditTips", "<script language=\"javascript\">alert('添加成功!');window.location='linklist.aspx?pb=" + possymbol + "';</script>");
            }
            else if (this.Action == "edit")
            {
                int       linkid = HYRequest.GetInt("linkid", 0);
                LinkModel info   = LinkFactory.Get(linkid);

                info.includepic = this.txtincludepic.Text.Trim();
                info.linkurl    = this.txtlinkurl.Text.Trim();
                info.orderno    = Int32.Parse(this.txtorderno.Text.Trim());
                info.linkname   = this.txttitle.Text.Trim();

                LinkFactory.Update(info);
                ClientScript.RegisterStartupScript(this.GetType(), "AddEditTips", "<script language=\"javascript\">alert('修改成功!');window.location='linklist.aspx?pb=" + possymbol + "';</script>");
            }
        }
Ejemplo n.º 15
0
        private LinkModel GetPreviousLink()
        {
            if (_pagedRequestModel.Skip == 0 || _pagedResponseModel.Total <= _pagedRequestModel.Skip)
            {
                return(null);
            }

            var skipToPrevious = Math.Max(_pagedRequestModel.Skip - _pagedRequestModel.Take, 0);

            if (skipToPrevious <= 0)
            {
                return(GetFirstLink());
            }

            var pagedRequestModel = _pagedRequestModel.Clone();

            pagedRequestModel.Skip = skipToPrevious;

            var routeValueDictionary = new RouteValueDictionary(pagedRequestModel);

            var link = new LinkModel
            {
                Method = _method,

                Url = GetUrlWithQueries(_endpoint, routeValueDictionary),

                Data = routeValueDictionary
            };

            return(link);
        }
Ejemplo n.º 16
0
        private void RefreshLinkExecuted(LinkModel linkModel)
        {
            if (IsLoading || Elements.IsNullOrEmpty() || Operation == null)
            {
                return;
            }

            LoggingService.Trace("Executing ChecklistViewModel.RefreshLinkExecuted");

            try
            {
                var toRemove = Elements.Where(x => x.Link != null).FirstOrDefault(assignment => assignment.Link !.Id.Equals(linkModel.Id));
                if (toRemove != null)
                {
                    var index         = Elements.IndexOf(toRemove);
                    var newAssignment = CreateLinkAssignmentData(linkModel);

                    Elements.ReplaceRange(new [] { newAssignment }, index, 1);
                }
            }
            catch (Exception e)
            {
                LoggingService.Error(e, "Error Executing ChecklistViewModel.RefreshLinkExecuted");
            }
            finally
            {
                IsLoading = false;
            }
        }
Ejemplo n.º 17
0
        private LinkModel GetNextLink()
        {
            var skipToNext = _pagedRequestModel.Skip + _pagedRequestModel.Take;

            if (skipToNext >= _pagedResponseModel.Total)
            {
                return(null);
            }

            var pagedRequestModel = _pagedRequestModel.Clone();

            pagedRequestModel.Skip = skipToNext;

            var routeValueDictionary = new RouteValueDictionary(pagedRequestModel);

            var link = new LinkModel
            {
                Method = _method,

                Url = GetUrlWithQueries(_endpoint, routeValueDictionary),

                Data = routeValueDictionary
            };

            return(link);
        }
        private void InitializeDiagram()
        {
            var node1 = NewNode(50, 80);
            var node2 = NewNode(300, 350);
            var node3 = NewNode(400, 100);

            _diagram.Nodes.Add(new[] { node1, node2, node3 });

            var link1 = new LinkModel(node1.GetPort(PortAlignment.Right), node2.GetPort(PortAlignment.Left))
            {
                Router        = Routers.Normal,
                PathGenerator = PathGenerators.Straight
            };

            link1.Labels.Add(new LinkLabelModel(link1, "Straight"));

            var link2 = new LinkModel(node2.GetPort(PortAlignment.Right), node3.GetPort(PortAlignment.Left))
            {
                Router        = Routers.Normal,
                PathGenerator = PathGenerators.Smooth
            };

            link2.Labels.Add(new LinkLabelModel(link2, "Smooth"));

            _diagram.Links.Add(new[] { link1, link2 });
        }
Ejemplo n.º 19
0
        private LinkModel GetLastLink()
        {
            if (_pagedResponseModel.Total <= _pagedRequestModel.Take)
            {
                return(null);
            }

            var skipToNext = _pagedRequestModel.Skip + _pagedRequestModel.Take;

            if (skipToNext >= _pagedResponseModel.Total)
            {
                return(null);
            }

            var skipToLast =
                (int)(Math.Ceiling((_pagedResponseModel.Total - (double)_pagedRequestModel.Take) /
                                   _pagedRequestModel.Take) * _pagedRequestModel.Take);

            var pagedRequestModel = _pagedRequestModel.Clone();

            pagedRequestModel.Skip = skipToLast;

            var routeValueDictionary = new RouteValueDictionary(pagedRequestModel);

            var link = new LinkModel
            {
                Method = _method,

                Url = GetUrlWithQueries(_endpoint, routeValueDictionary),

                Data = routeValueDictionary
            };

            return(link);
        }
Ejemplo n.º 20
0
        public IActionResult Delete(LinkModel model)
        {
            Database.Links.Remove(model);
            Database.SaveChanges();

            return(RedirectToAction("Index"));
        }
        private void Diagram_LinkAttached(LinkModel link)
        {
            var sourceCol = (link.SourcePort as ColumnPort).Column;
            var targetCol = (link.TargetPort as ColumnPort).Column;

            (sourceCol.Primary ? targetCol : sourceCol).Refresh();
        }
Ejemplo n.º 22
0
        public static string GenerateCurvedPath(this LinkModel link)
        {
            var    sX = link.GetMiddleSourceX();
            var    sY = link.GetMiddleSourceY();
            double tX, tY;

            if (link.IsAttached)
            {
                tX = link.GetMiddleTargetX();
                tY = link.GetMiddleTargetY();
            }
            else
            {
                tX = link.OnGoingPosition !.X;
                tY = link.OnGoingPosition.Y;
            }

            var cX = (sX + tX) / 2;
            var cY = (sY + tY) / 2;

            var curvePointA = GetCurvePoint(sX, sY, cX, cY, link.SourcePort.Alignment);
            var curvePointB = GetCurvePoint(tX, tY, cX, cY, link.TargetPort?.Alignment);

            return(FormattableString.Invariant($"M {sX} {sY} C {curvePointA}, {curvePointB}, {tX} {tY}"));
        }
Ejemplo n.º 23
0
        public List <LinkModel> GetLinkFromContent(string content)
        {
            List <LinkModel> returnList = new List <LinkModel>();

            HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();

            doc.LoadHtml(content);

            var linkedPages = doc.DocumentNode.Descendants("a")
                              .Select(a => a.GetAttributeValue("href", null))
                              .Where(u => !String.IsNullOrEmpty(u));

            if (linkedPages != null)
            {
                foreach (string link in linkedPages)
                {
                    var newItem = new LinkModel
                    {
                        Name = link
                               //,
                               //Path = link.XPath
                    };
                    returnList.Add(newItem);
                }
            }
            return(returnList);
        }
Ejemplo n.º 24
0
        public ActionResult AddLink(LinkModel link)
        {
            LinkEntity linkEntity      = (LinkEntity)link;
            LinkEntity addedLinkEntity = _linksRepository.Add(linkEntity);

            return(Json(addedLinkEntity));
        }
Ejemplo n.º 25
0
        // select the object in cbb: link
        public void selectExistedObject(LinkModel link)
        {
            if (link is null ||
                cbbExistedLinks is null ||
                cbbExistedLinks.Items is null ||
                scriptsTabControl is null ||
                scriptsTabControl.SelectedTab is null)
            {
                return;
            }

            cbbExistedLinks.SelectedIndex = cbbExistedLinks.Items.IndexOf(link);

            ScriptCanvas canvas = ((ScriptTabPage)scriptsTabControl.SelectedTab).TheScriptCanvas;

            if (canvas is null)
            {
                return;
            }

            LinkView linkView = canvas.getLinkViewById(link.Id);

            if (linkView is null)
            {
                return;
            }

            ModelManager.showInfoPanel(linkView);
        }
Ejemplo n.º 26
0
        public static void Update(LinkModel model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("update odnshop_link set ");
            strSql.Append("linkname=?linkname,");
            strSql.Append("linkurl=?linkurl,");
            strSql.Append("includepic=?includepic,");
            strSql.Append("possymbol=?possymbol,");
            strSql.Append("createtime=?createtime,");
            strSql.Append("orderno=?orderno");
            strSql.Append(" where linkid=?linkid");

            MySqlParameter[] parameters =
            {
                new MySqlParameter("?linkname",   MySqlDbType.VarChar,    45),
                new MySqlParameter("?linkurl",    MySqlDbType.VarChar,   200),
                new MySqlParameter("?includepic", MySqlDbType.VarChar,   200),
                new MySqlParameter("?possymbol",  MySqlDbType.VarChar,    45),
                new MySqlParameter("?createtime", MySqlDbType.Datetime),
                new MySqlParameter("?orderno",    MySqlDbType.Int32,      11),
                new MySqlParameter("?linkid",     MySqlDbType.Int32, 11)
            };

            parameters[0].Value = model.linkname;
            parameters[1].Value = model.linkurl;
            parameters[2].Value = model.includepic;
            parameters[3].Value = model.possymbol;
            parameters[4].Value = model.createtime;
            parameters[5].Value = model.orderno;
            parameters[6].Value = model.linkid;

            MySqlDbHelper.ExecuteSql(strSql.ToString(), parameters);
        }
Ejemplo n.º 27
0
    //add or edit
    protected void Button3_Click(object sender, EventArgs e)
    {
        id = BasePage.GetRequestId(Request.QueryString["id"]);
        LinkModel model = new LinkModel();

        model.LinkName  = txtName.Text;
        model.LinkUrl   = txtUrl.Text;
        model.LinkLogo  = txtClassPic.Text;
        model.Px        = int.Parse(txtpx.Text);
        model.LinkType  = int.Parse(txtTypelink.SelectedValue);
        model.LinkIntro = txtIntro.Text;
        model.Hide      = int.Parse(txthide.SelectedValue);
        model.Hits      = int.Parse(txthide.Text);
        model.AddTime   = DateTime.Now;
        model.id        = id;
        if (id == 0)
        {
            int i = new Linkll().Add(model);
            if (i > 0)
            {
                BasePage.JscriptPrint(Page, "添加成功!", "Link.aspx");
            }
        }
        else
        {
            bool bb = new Linkll().Update(model);
            if (bb)
            {
                BasePage.JscriptPrint(Page, "修改成功!", "Link.aspx");
            }
        }
    }
Ejemplo n.º 28
0
        public static void Add(LinkModel model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into odnshop_link(");
            strSql.Append("linkname,linkurl,includepic,possymbol,createtime,orderno)");
            strSql.Append(" values (");
            strSql.Append("?linkname,?linkurl,?includepic,?possymbol,?createtime,?orderno)");

            MySqlParameter[] parameters =
            {
                new MySqlParameter("?linkname",   MySqlDbType.VarChar,    45),
                new MySqlParameter("?linkurl",    MySqlDbType.VarChar,   200),
                new MySqlParameter("?includepic", MySqlDbType.VarChar,   200),
                new MySqlParameter("?possymbol",  MySqlDbType.VarChar,    45),
                new MySqlParameter("?createtime", MySqlDbType.Datetime),
                new MySqlParameter("?orderno",    MySqlDbType.Int32, 11)
            };

            parameters[0].Value = model.linkname;
            parameters[1].Value = model.linkurl;
            parameters[2].Value = model.includepic;
            parameters[3].Value = model.possymbol;
            parameters[4].Value = model.createtime;
            parameters[5].Value = model.orderno;

            MySqlDbHelper.ExecuteSql(strSql.ToString(), parameters);
        }
Ejemplo n.º 29
0
        public IHttpActionResult Post([FromBody] LinkModel link)
        {
            try
            {
                if (link == null)
                {
                    return(BadRequest("Product Cannont be null"));
                }
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                var savedLink = new LinksRepository().Save(link);
                if (savedLink == null)
                {
                    return(Conflict());
                }
                return(Created <LinkModel>(Request.RequestUri + savedLink.Id.ToString(), savedLink));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
Ejemplo n.º 30
0
        // PUT api/links/5
        public IHttpActionResult Put(int id, [FromBody] LinkModel link)
        {
            new LinksRepository().Save(id, link);

            try
            {
                if (link == null)
                {
                    return(BadRequest("Product Cannont be null"));
                }
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                var savedLink = new LinksRepository().Save(id, link);
                if (savedLink == null)
                {
                    return(NotFound());
                }
                return(Ok());
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
Ejemplo n.º 31
0
        public ActionResult Links()
        {
            var prefix = Request["prefix"] ?? "/start/msusa/store/";
            var kind = Request["kind"] ?? "";
            var model = new List<LinkModel>();

            var xr = _repository as XmlContentItemRepository;
            if (xr != null)
            {
                IEnumerable<ListofLinksItem> list = xr.AllContentItems.OfType<ListofLinksItem>();
                foreach (var link in list)
                {
                    if (link.Path.StartsWith(prefix))
                        continue;

                    if (link.SuppressLinks)
                        continue;

                    var lm = new LinkModel
                    {
                        Source = link.Path,
                        Caption = string.IsNullOrEmpty(link.LinkText) ? link.Title : link.LinkText,
                        Url = link.GetUrl(_linkGenerator),
                        Clazz = link.GetType().Name
                    };
                    try
                    {
                        if (lm.IsExternal())
                        {   // resolve internal target
                            var data = _parser.FindPath(lm.Url);
                            if (data != null)
                                lm.Target = data.CurrentPage.Path;
                        }
                    }
                    catch (Exception ex)
                    {
                        lm.Target = "***";
                        lm.Error = ex.Message;
                    }

                    if (lm.IsExternal()) model.Add(lm);
                }
            }

            // render
            var text = new StringBuilder();
            text.AppendLine("LINKS");
            foreach (var linkModel in model)
            {
                text.AppendLine(linkModel.ToString());
            }

            return Content(text.ToString(), "text/plain");
        }