This logic checks different method and adds links to response that is returned to a view. I there a better way to do this ?
[HttpGet]
[StandaloneResponseFilter]
public JsonResult GetMenuLinkList()
{
List<FlyoutMenuLinkItem> response = new List<FlyoutMenuLinkItem>();
try
{
var IsDisplayLink = ProfileHelpers.DisplayLink();
var IsGroupLink = ProfileHelpers.DisplayGroupLink();
var favoritePages = ProfileHelpers.GetFavoritePages();
if (IsDisplayLink){
FlyoutMenuLinkItem fmlMI = new FlyoutMenuLinkItem();
fmlMI.PageName = "Portal";
fmlMI.PageURL = "/members/portal";
fmlMI.PageSection = FlyoutMenuLinkItem.Section.MemberPortal;
response.Add(fmlMI);
}
if (IsGroupLink )
{
FlyoutMenuLinkItem fmlMD = new FlyoutMenuLinkItem();
fmlMD.PageName = "Group Link";
fmlMD.PageURL = "/meetings/disclosures";
fmlMD.PageSection = FlyoutMenuLinkItem.Section.MeetingsDisclosures;
response.Add(fmlMD);
}
if (favoritePages != null)
{
foreach (FavoritePage f in favoritePages)
{
FlyoutMenuLinkItem fmlFav = new FlyoutMenuLinkItem();
fmlFav.PageName = f.PageName;
fmlFav.PageURL = f.Url;
fmlFav.PageSection = FlyoutMenuLinkItem.Section.MyPages;
response.Add(fmlFav);
}
}
}
catch (Exception e)
{
Log.Write(e, ConfigurationPolicy.ErrorLog);
}
}
return Json(response, JsonRequestBehavior.AllowGet);
}